On 10:28 Thu 20 Feb , Philippe Mathieu-Daudé wrote: > We shouldn't receive characters when the full UART or its > receiver is disabled. However we don't want to break the > possibly incomplete "my first bare metal assembly program"s, > so we choose to simply display a warning when this occurs. > > Reviewed-by: Richard Henderson <richard.hender...@linaro.org> > Signed-off-by: Philippe Mathieu-Daudé <phi...@linaro.org>
Reviewed-by: Luc Michel <luc.mic...@amd.com> > --- > hw/char/pl011.c | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/hw/char/pl011.c b/hw/char/pl011.c > index 06ce851044d..12a2d4bc7bd 100644 > --- a/hw/char/pl011.c > +++ b/hw/char/pl011.c > @@ -85,6 +85,7 @@ DeviceState *pl011_create(hwaddr addr, qemu_irq irq, > Chardev *chr) > #define CR_OUT1 (1 << 12) > #define CR_RTS (1 << 11) > #define CR_DTR (1 << 10) > +#define CR_RXE (1 << 9) > #define CR_TXE (1 << 8) > #define CR_LBE (1 << 7) > #define CR_UARTEN (1 << 0) > @@ -487,6 +488,14 @@ static int pl011_can_receive(void *opaque) > PL011State *s = (PL011State *)opaque; > int r; > > + if (!(s->cr & CR_UARTEN)) { > + qemu_log_mask(LOG_GUEST_ERROR, > + "PL011 receiving data on disabled UART\n"); > + } > + if (!(s->cr & CR_RXE)) { > + qemu_log_mask(LOG_GUEST_ERROR, > + "PL011 receiving data on disabled RX UART\n"); > + } > r = s->read_count < pl011_get_fifo_depth(s); > trace_pl011_can_receive(s->lcr, s->read_count, r); > return r; > -- > 2.47.1 > --