From: julia <[email protected]> I don't want to admit how many hours I spent trying to figure out why nothing was being printed (as the enable-ing code hadn't yet run, even thought it existed).
Signed-off-by: julia <[email protected]> Reviewed-by: Philippe Mathieu-Daudé <[email protected]> Message-id: 20251217-cmsdk-uart-disabled-warning2-v1-1-847de4884...@trainwit.ch Signed-off-by: Peter Maydell <[email protected]> --- hw/char/cmsdk-apb-uart.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/hw/char/cmsdk-apb-uart.c b/hw/char/cmsdk-apb-uart.c index bf891081dc..edb80f6181 100644 --- a/hw/char/cmsdk-apb-uart.c +++ b/hw/char/cmsdk-apb-uart.c @@ -159,6 +159,10 @@ static uint64_t uart_read(void *opaque, hwaddr offset, unsigned size) switch (offset) { case A_DATA: r = s->rxbuf; + if (!(s->ctrl & R_CTRL_RX_EN_MASK)) { + qemu_log_mask(LOG_GUEST_ERROR, + "CMSDK APB UART: receive data read with Rx disabled\n"); + } s->state &= ~R_STATE_RXFULL_MASK; cmsdk_apb_uart_update(s); qemu_chr_fe_accept_input(&s->chr); @@ -248,6 +252,10 @@ static void uart_write(void *opaque, hwaddr offset, uint64_t value, switch (offset) { case A_DATA: s->txbuf = value; + if (!(s->ctrl & R_CTRL_TX_EN_MASK)) { + qemu_log_mask(LOG_GUEST_ERROR, + "CMSDK APB UART: transmit data write with Tx disabled\n"); + } if (s->state & R_STATE_TXFULL_MASK) { /* Buffer already full -- note the overrun and let the * existing pending transmit callback handle the new char. -- 2.47.3
