qemu/include/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.h include/: spelling fixes 2023-09-08 13:08:52 +03:00
bcm2835_aux.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
cadence_uart.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
cmsdk-apb-uart.h hw/char/cmsdk-apb-uart: Open-code cmsdk_apb_uart_create() 2023-02-27 13:27:05 +00:00
digic-uart.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
escc.h hw/char/escc: convert Sun mouse to use QemuInputHandler 2024-09-13 20:11:13 +02:00
goldfish_tty.h include: Include headers where needed 2023-01-08 01:54:22 -05:00
grlib_uart.h hw/sparc/grlib: split out the headers for each peripherals 2024-02-15 16:58:46 +01:00
ibex_uart.h include/hw: Do not include "hw/registerfields.h" in headers that don't need it 2023-02-14 09:02:42 +01:00
imx_serial.h hw/char/imx_serial: Implement receive FIFO and ageing timer 2024-01-26 11:34:21 +00:00
mchp_pfsoc_mmuart.h hw/char: Extract serial-mm 2024-10-03 19:33:23 +02:00
nrf51_uart.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
parallel-isa.h hw/char/parallel-isa: Implement relocation and enabling/disabling for TYPE_ISA_PARALLEL 2024-02-14 06:09:32 -05:00
parallel.h hw/char/parallel: Move portio_list from ParallelState to ISAParallelState 2024-02-14 06:09:32 -05:00
pl011.h hw/char/pl011: Remove unused 'readbuff' field 2024-09-13 20:11:13 +02:00
renesas_sci.h Use DECLARE_*CHECKER* macros 2020-09-09 09:27:09 -04:00
riscv_htif.h hw/riscv: Add signature dump function for spike to run ACT tests 2023-05-05 10:49:50 +10:00
serial-isa.h hw/char/serial.h: Extract serial-isa.h 2024-10-03 19:33:23 +02:00
serial-mm.h hw/char: Extract serial-mm 2024-10-03 19:33:23 +02:00
serial.h * pc: Add a description for the i8042 property 2024-10-04 19:28:37 +01:00
shakti_uart.h hw/char: Add Shakti UART emulation 2021-05-11 20:02:05 +10:00
sifive_uart.h hw/char: sifive_uart: Print uart characters async 2024-10-30 11:22:08 +10:00
stm32f2xx_usart.h hw/char/stm32f2xx_usart: Add more definitions for CR1 register 2023-11-02 13:36:45 +00:00
stm32l4x5_usart.h hw/char/stm32l4x5_usart: Enable serial read and write 2024-04-25 10:21:59 +01:00
xilinx_uartlite.h hw/char/xilinx_uartlite: Open-code xilinx_uartlite_create() 2023-02-27 13:27:05 +00:00