qemu/hw/char
Alistair Francis 53c1557b23 hw/char: sifive_uart: Print uart characters async
The current approach of using qemu_chr_fe_write() and ignoring the
return values results in dropped characters [1].

Let's update the SiFive UART to use a async sifive_uart_xmit() function
to transmit the characters and apply back pressure to the guest with
the SIFIVE_UART_TXFIFO_FULL status.

This should avoid dropped characters and more realisticly model the
hardware.

1: https://gitlab.com/qemu-project/qemu/-/issues/2114

Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
Reviewed-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
Tested-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-ID: <20240910045419.1252277-3-alistair.francis@wdc.com>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
2024-10-30 11:22:08 +10:00
..
avr_usart.c hw/char: replace assert(0) with g_assert_not_reached() 2024-09-13 20:12:16 +02:00
bcm2835_aux.c
cadence_uart.c
cmsdk-apb-uart.c
debugcon.c
digic-uart.c
escc.c
exynos4210_uart.c
goldfish_tty.c
grlib_apbuart.c
ibex_uart.c
imx_serial.c
ipoctal232.c
Kconfig hw/char: Extract serial-mm 2024-10-03 19:33:23 +02:00
mcf_uart.c
mchp_pfsoc_mmuart.c
meson.build hw/char: Extract serial-mm 2024-10-03 19:33:23 +02:00
nrf51_uart.c
omap_uart.c * pc: Add a description for the i8042 property 2024-10-04 19:28:37 +01:00
parallel-isa.c
parallel.c
pl011.c hw/char/pl011: Use correct masks for IBRD and FBRD 2024-10-15 15:16:17 +01:00
renesas_sci.c
riscv_htif.c hw/char: riscv_htif: Use blocking qemu_chr_fe_write_all 2024-10-30 11:22:08 +10:00
sclpconsole-lm.c
sclpconsole.c
serial-isa.c hw/char/serial.h: Extract serial-isa.h 2024-10-03 19:33:23 +02:00
serial-mm.c hw/char: Extract serial-mm 2024-10-03 19:33:23 +02:00
serial-pci-multi.c
serial-pci.c
serial.c * pc: Add a description for the i8042 property 2024-10-04 19:28:37 +01:00
sh_serial.c
shakti_uart.c
sifive_uart.c hw/char: sifive_uart: Print uart characters async 2024-10-30 11:22:08 +10:00
spapr_vty.c
stm32f2xx_usart.c
stm32l4x5_usart.c hw/char/stm32l4x5_usart.c: Enable USART ACK bit response 2024-09-19 12:58:58 +01:00
terminal3270.c
trace-events
trace.h
virtio-console.c
virtio-serial-bus.c
xen_console.c
xilinx_uartlite.c