qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] 6b99a1: hw/char/escc: Lower irq when transmit


From: Peter Maydell
Subject: [Qemu-commits] [qemu/qemu] 6b99a1: hw/char/escc: Lower irq when transmit buffer is fi...
Date: Fri, 17 May 2019 08:17:02 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 6b99a110c7f377edd194fe0cc4d3c44b11cf62d8
      
https://github.com/qemu/qemu/commit/6b99a110c7f377edd194fe0cc4d3c44b11cf62d8
  Author: Stephen Checkoway <address@hidden>
  Date:   2019-05-17 (Fri, 17 May 2019)

  Changed paths:
    M hw/char/escc.c

  Log Message:
  -----------
  hw/char/escc: Lower irq when transmit buffer is filled

The SCC/ESCC will briefly stop asserting an interrupt when the
transmit FIFO is filled.

This code doesn't model the transmit FIFO/shift register so the
pending transmit interrupt is never deasserted which means that an
edge-triggered interrupt controller will never see the low-to-high
transition it needs to raise another interrupt. The practical
consequence of this is that guest firmware with an interrupt service
routine for the ESCC that does not send all of the data it has
immediately will stop sending data if the following sequence of
events occurs:
1. Disable processor interrupts
2. Write a character to the ESCC
3. Add additional characters to a buffer which is drained by the ISR
4. Enable processor interrupts

In this case, the first character will be sent, the interrupt will
fire and the ISR will output the second character. Since the pending
transmit interrupt remains asserted, no additional interrupts will
ever fire.

This behavior was triggered by firmware for an embedded system with a
Z85C30 which necessitated this patch.

This patch fixes that situation by explicitly lowering the IRQ when a
character is written to the buffer and no other interrupts are currently
pending.

Signed-off-by: Stephen Checkoway <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Signed-off-by: Mark Cave-Ayland <address@hidden>


  Commit: bd30132cd87001af51640d5f1b5754a5dc7fbbe6
      
https://github.com/qemu/qemu/commit/bd30132cd87001af51640d5f1b5754a5dc7fbbe6
  Author: KONRAD Frederic <address@hidden>
  Date:   2019-05-17 (Fri, 17 May 2019)

  Changed paths:
    M hw/sparc/leon3.c

  Log Message:
  -----------
  leon3: fix the error message when no bios are provided

The leon3 board is looking for u-boot.bin by default (LEON3_PROM_FILENAME)..
But in the case this file is not found and no other file are given on the
command line we get the following error:

  $ ./qemu-system-sparc -M leon3_generic
  qemu-system-sparc: Can't read bios image (null)

So use LEON3_PROM_FILENAME instead of filename in case it is NULL to get a
less cryptic message:

  $ ./qemu-system-sparc -M leon3_generic
  qemu-system-sparc: Can't read bios image 'u-boot.bin'

Suggested-by: Mark Cave-Ayland <address@hidden>
Signed-off-by: KONRAD Frederic <address@hidden>
Signed-off-by: Mark Cave-Ayland <address@hidden>


  Commit: ea005daec3b15f172d991f705b3526427461e15d
      
https://github.com/qemu/qemu/commit/ea005daec3b15f172d991f705b3526427461e15d
  Author: KONRAD Frederic <address@hidden>
  Date:   2019-05-17 (Fri, 17 May 2019)

  Changed paths:
    M hw/intc/grlib_irqmp.c
    M hw/sparc/leon3.c
    M include/hw/sparc/grlib.h

  Log Message:
  -----------
  grlib, irqmp: get rid of the old-style create function

Suggested-by: Mark Cave-Ayland <address@hidden>
Signed-off-by: KONRAD Frederic <address@hidden>
Signed-off-by: Mark Cave-Ayland <address@hidden>


  Commit: 948caec873131584ec343892bb88b6544cd867e4
      
https://github.com/qemu/qemu/commit/948caec873131584ec343892bb88b6544cd867e4
  Author: KONRAD Frederic <address@hidden>
  Date:   2019-05-17 (Fri, 17 May 2019)

  Changed paths:
    M hw/sparc/leon3.c
    M hw/timer/grlib_gptimer.c
    M include/hw/sparc/grlib.h

  Log Message:
  -----------
  grlib, gptimer: get rid of the old-style create function

Suggested-by: Mark Cave-Ayland <address@hidden>
Signed-off-by: KONRAD Frederic <address@hidden>
Signed-off-by: Mark Cave-Ayland <address@hidden>


  Commit: b70447aaeacc6d85f29138baf020000312914f6e
      
https://github.com/qemu/qemu/commit/b70447aaeacc6d85f29138baf020000312914f6e
  Author: KONRAD Frederic <address@hidden>
  Date:   2019-05-17 (Fri, 17 May 2019)

  Changed paths:
    M hw/char/grlib_apbuart.c
    M hw/sparc/leon3.c
    M include/hw/sparc/grlib.h

  Log Message:
  -----------
  grlib, apbuart: get rid of the old-style create function

Suggested-by: Mark Cave-Ayland <address@hidden>
Signed-off-by: KONRAD Frederic <address@hidden>
Signed-off-by: Mark Cave-Ayland <address@hidden>


  Commit: dbed0d2d2adb0df7532783e8a3439856e4218b17
      
https://github.com/qemu/qemu/commit/dbed0d2d2adb0df7532783e8a3439856e4218b17
  Author: KONRAD Frederic <address@hidden>
  Date:   2019-05-17 (Fri, 17 May 2019)

  Changed paths:
    M hw/sparc/leon3.c

  Log Message:
  -----------
  leon3: add a little bootloader

This adds a little bootloader to the leon3_machine when a ram image is
given through the kernel parameter and no bios are provided:
  * The UART transmiter is enabled.
  * The TIMER is initialized.

Reviewed-by: Fabien Chouteau <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Signed-off-by: KONRAD Frederic <address@hidden>
Signed-off-by: Mark Cave-Ayland <address@hidden>


  Commit: 162abf1a83ddd06ce1618666f84f88ba4dbffe10
      
https://github.com/qemu/qemu/commit/162abf1a83ddd06ce1618666f84f88ba4dbffe10
  Author: KONRAD Frederic <address@hidden>
  Date:   2019-05-17 (Fri, 17 May 2019)

  Changed paths:
    M MAINTAINERS
    M hw/misc/Makefile.objs
    A hw/misc/grlib_ahb_apb_pnp.c
    M hw/sparc/leon3.c
    A include/hw/misc/grlib_ahb_apb_pnp.h

  Log Message:
  -----------
  leon3: introduce the plug and play mechanism

This adds the AHB and APB plug and play devices.
They are scanned during the linux boot to discover the various peripheral.

Reviewed-by: Fabien Chouteau <address@hidden>
Signed-off-by: KONRAD Frederic <address@hidden>
Signed-off-by: Mark Cave-Ayland <address@hidden>


  Commit: 918b8adeb20d9635b16ffde7a413b15f6761b7f3
      
https://github.com/qemu/qemu/commit/918b8adeb20d9635b16ffde7a413b15f6761b7f3
  Author: KONRAD Frederic <address@hidden>
  Date:   2019-05-17 (Fri, 17 May 2019)

  Changed paths:
    M MAINTAINERS

  Log Message:
  -----------
  MAINTAINERS: add myself for leon3

Reviewed-by: Fabien Chouteau <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Reviewed-by: Mark Cave-Ayland <address@hidden>
Signed-off-by: KONRAD Frederic <address@hidden>
Signed-off-by: Mark Cave-Ayland <address@hidden>


  Commit: f2a930ad8c433c5583e28ec803c8ca7cb2f31ab5
      
https://github.com/qemu/qemu/commit/f2a930ad8c433c5583e28ec803c8ca7cb2f31ab5
  Author: Peter Maydell <address@hidden>
  Date:   2019-05-17 (Fri, 17 May 2019)

  Changed paths:
    M MAINTAINERS
    M hw/char/escc.c
    M hw/char/grlib_apbuart.c
    M hw/intc/grlib_irqmp.c
    M hw/misc/Makefile.objs
    A hw/misc/grlib_ahb_apb_pnp.c
    M hw/sparc/leon3.c
    M hw/timer/grlib_gptimer.c
    A include/hw/misc/grlib_ahb_apb_pnp.h
    M include/hw/sparc/grlib.h

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/mcayland/tags/qemu-sparc-20190517' into 
staging

qemu-sparc queue

# gpg: Signature made Fri 17 May 2019 10:30:54 BST
# gpg:                using RSA key CC621AB98E82200D915CC9C45BC2C56FAE0F321F
# gpg:                issuer "address@hidden"
# gpg: Good signature from "Mark Cave-Ayland <address@hidden>" [full]
# Primary key fingerprint: CC62 1AB9 8E82 200D 915C  C9C4 5BC2 C56F AE0F 321F

* remotes/mcayland/tags/qemu-sparc-20190517:
  MAINTAINERS: add myself for leon3
  leon3: introduce the plug and play mechanism
  leon3: add a little bootloader
  grlib, apbuart: get rid of the old-style create function
  grlib, gptimer: get rid of the old-style create function
  grlib, irqmp: get rid of the old-style create function
  leon3: fix the error message when no bios are provided
  hw/char/escc: Lower irq when transmit buffer is filled

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/e48a748fc899...f2a930ad8c43



reply via email to

[Prev in Thread] Current Thread [Next in Thread]