[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH v6 05/15] emul/ns16x50: implement SCR register
From: Denis Mukhin <dmukhin@xxxxxxxx> Add SCR register emulation to the I/O port handler. Firmware (e.g. OVMF) may use SCR during the guest OS boot. Signed-off-by: Denis Mukhin <dmukhin@xxxxxxxx> --- Changes since v5: - moved earlier in the series to simplify I/O handler population in the follow on patches - Link to v5: https://lore.kernel.org/xen-devel/20250828235409.2835815-11-dmukhin@xxxxxxxx/ --- xen/common/emul/vuart/ns16x50.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/xen/common/emul/vuart/ns16x50.c b/xen/common/emul/vuart/ns16x50.c index 7f479a5be4a2..51ec85e57627 100644 --- a/xen/common/emul/vuart/ns16x50.c +++ b/xen/common/emul/vuart/ns16x50.c @@ -103,6 +103,20 @@ static int ns16x50_io_write8( if ( ns16x50_dlab_get(vdev) && (reg == UART_DLL || reg == UART_DLM) ) regs[NS16X50_REGS_NUM + reg] = val; + else + { + switch ( reg ) + { + /* NB: Firmware (e.g. OVMF) may rely on SCR presence. */ + case UART_SCR: + regs[UART_SCR] = val; + break; + + default: + rc = -EINVAL; + break; + } + } return rc; } @@ -165,6 +179,19 @@ static int ns16x50_io_read8( if ( ns16x50_dlab_get(vdev) && (reg == UART_DLL || reg == UART_DLM) ) val = regs[NS16X50_REGS_NUM + reg]; + else + { + switch ( reg ) + { + case UART_SCR: + val = regs[UART_SCR]; + break; + + default: + rc = -EINVAL; + break; + } + } *data = val; -- 2.51.0
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |