mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-03 15:53:54 -06:00
hw/char/pl011: Warn when using disabled receiver
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.henderson@linaro.org> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Luc Michel <luc.michel@amd.com> Message-Id: <20250220092903.3726-2-philmd@linaro.org>
This commit is contained in:
parent
92988c4501
commit
abf2b6a028
1 changed files with 9 additions and 0 deletions
|
@ -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;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue