On Tue, Jun 16, 2020 at 10:31:17PM -0400, Jason Andryuk wrote: > xen_preinit() runs early and changes DebugOutputPort. qemu_preinit() runs > soon after. inb on DebugOutputPort doesn't work on Xen, so the check > will always fail and DebugOutputPort will be cleared to 0 disabling > output. > > Quick exit the function when running on Xen to preserve the modified > DebugOutputPort. > > Signed-off-by: Jason Andryuk <jandr...@gmail.com> > --- > src/hw/serialio.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/src/hw/serialio.c b/src/hw/serialio.c > index 3163344..c6297bc 100644 > --- a/src/hw/serialio.c > +++ b/src/hw/serialio.c > @@ -106,6 +106,10 @@ u16 DebugOutputPort VARFSEG = 0x402; > void > qemu_debug_preinit(void) > { > + /* Xen already overrode DebugOutputPort in xen_preinit(). */ > + if (runningOnXen()) > + return;
Thanks. The code looks fine to me. However, I find the comment confusing as this function only checks if output is enabled - it doesn't check the validity of the port itself. Perhaps a comment like "Xen doesn't support checking if debug output is active". -Kevin > + > /* Check if the QEMU debug output port is active */ > if (CONFIG_DEBUG_IO && > inb(GET_GLOBAL(DebugOutputPort)) != QEMU_DEBUGCON_READBACK) > -- > 2.25.1 > _______________________________________________ > SeaBIOS mailing list -- seabios@seabios.org > To unsubscribe send an email to seabios-le...@seabios.org _______________________________________________ SeaBIOS mailing list -- seabios@seabios.org To unsubscribe send an email to seabios-le...@seabios.org