]> www.infradead.org Git - users/dwmw2/qemu.git/commit
hw/char: sifive_uart: Print uart characters async
authorAlistair Francis <alistair.francis@wdc.com>
Thu, 15 Aug 2024 00:57:28 +0000 (10:57 +1000)
committerAlistair Francis <alistair.francis@wdc.com>
Wed, 30 Oct 2024 01:22:08 +0000 (11:22 +1000)
commit53c1557b230986ab6320a58e1b2c26216ecd86d5
tree9121bd92b12914638f9d03d7aab4cbba8d52429f
parent4a0e8ca322d2a5ec9bdd9409cb02d4c08a07bef6
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>
hw/char/sifive_uart.c
include/hw/char/sifive_uart.h