* OvmfPkg XenPkg: X64 DEBUG GCC5 -DDEBUG_ON_SERIAL_PORT=TRUE build is broken @ 2020-04-14 18:01 Rebecca Cran 2020-04-15 14:04 ` Laszlo Ersek 0 siblings, 1 reply; 5+ messages in thread From: Rebecca Cran @ 2020-04-14 18:01 UTC (permalink / raw) To: devel, Anthony Perard, Julien Grall, Laszlo Ersek, Ard Biesheuvel I was trying to build OvmfPkg/XenPkg -a X64 -t GCC5 -b DEBUG -DDEBUG_ON_SERIAL_PORT=TRUE, but the build fails. Both plain DEBUG and RELEASE builds without trying to put the debug output on the serial port work. [bcran@smic ~/src/tmp/edk2]$ build -p OvmfPkg/OvmfXen.dsc -a X64 -t GCC5 -b DEBUG -DDEBUG_ON_SERIAL_PORT=TRUE Build environment: FreeBSD-13.0-CURRENT-amd64-64bit-ELF Build start time: 11:59:24, Apr.14 2020 WORKSPACE = /home/bcran/src/tmp/edk2 EDK_TOOLS_PATH = /home/bcran/src/tmp/edk2/BaseTools CONF_PATH = /home/bcran/src/tmp/edk2/Conf PYTHON_COMMAND = /usr/local/bin/python3 Processing meta-data . Architecture(s) = X64 Build target = DEBUG Toolchain = GCC5 Active Platform = /home/bcran/src/tmp/edk2/OvmfPkg/OvmfXen.dsc . build.py... /home/bcran/src/tmp/edk2/OvmfPkg/OvmfXen.dsc(...): error F002: Library [/home/bcran/src/tmp/edk2/MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf] with constructors has a cycle consumed by /home/bcran/src/tmp/edk2/MdePkg/Library/UefiLib/UefiLib.inf consumed by /home/bcran/src/tmp/edk2/MdePkg/Library/UefiDevicePathLibDevicePathProtocol/UefiDevicePathLibDevicePathProtocol.inf - Failed - Build end time: 11:59:25, Apr.14 2020 Build total time: 00:00:02 -- Rebecca Cran ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: OvmfPkg XenPkg: X64 DEBUG GCC5 -DDEBUG_ON_SERIAL_PORT=TRUE build is broken 2020-04-14 18:01 OvmfPkg XenPkg: X64 DEBUG GCC5 -DDEBUG_ON_SERIAL_PORT=TRUE build is broken Rebecca Cran @ 2020-04-15 14:04 ` Laszlo Ersek 2020-04-15 14:20 ` Rebecca Cran 2020-04-20 12:38 ` Anthony PERARD 0 siblings, 2 replies; 5+ messages in thread From: Laszlo Ersek @ 2020-04-15 14:04 UTC (permalink / raw) To: Rebecca Cran, devel, Anthony Perard, Julien Grall, Ard Biesheuvel On 04/14/20 20:01, Rebecca Cran wrote: > I was trying to build OvmfPkg/XenPkg -a X64 -t GCC5 -b DEBUG > -DDEBUG_ON_SERIAL_PORT=TRUE, but the build fails. Both plain DEBUG and > RELEASE builds without trying to put the debug output on the serial > port work. > > > [bcran@smic ~/src/tmp/edk2]$ build -p OvmfPkg/OvmfXen.dsc -a X64 -t > GCC5 -b DEBUG -DDEBUG_ON_SERIAL_PORT=TRUE > Build environment: FreeBSD-13.0-CURRENT-amd64-64bit-ELF > Build start time: 11:59:24, Apr.14 2020 > > WORKSPACE = /home/bcran/src/tmp/edk2 > EDK_TOOLS_PATH = /home/bcran/src/tmp/edk2/BaseTools > CONF_PATH = /home/bcran/src/tmp/edk2/Conf > PYTHON_COMMAND = /usr/local/bin/python3 > > > Processing meta-data . > Architecture(s) = X64 > Build target = DEBUG > Toolchain = GCC5 > > Active Platform = /home/bcran/src/tmp/edk2/OvmfPkg/OvmfXen.dsc > . > > build.py... > /home/bcran/src/tmp/edk2/OvmfPkg/OvmfXen.dsc(...): error F002: Library > [/home/bcran/src/tmp/edk2/MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf] > with constructors has a cycle > consumed by > /home/bcran/src/tmp/edk2/MdePkg/Library/UefiLib/UefiLib.inf > consumed by > /home/bcran/src/tmp/edk2/MdePkg/Library/UefiDevicePathLibDevicePathProtocol/UefiDevicePathLibDevicePathProtocol.inf From commit 05480e2fd4ff ("OvmfPkg/PlatformBootManagerLib: Use a Xen console for ConOut/ConIn", 2019-08-21), we have: > diff --git a/OvmfPkg/OvmfXen.dsc b/OvmfPkg/OvmfXen.dsc > index 54ac910d8eed..e719a168f81e 100644 > --- a/OvmfPkg/OvmfXen.dsc > +++ b/OvmfPkg/OvmfXen.dsc > @@ -586,6 +586,10 @@ [Components] > OvmfPkg/XenIoPciDxe/XenIoPciDxe.inf > OvmfPkg/XenBusDxe/XenBusDxe.inf > OvmfPkg/XenPvBlkDxe/XenPvBlkDxe.inf > + MdeModulePkg/Universal/SerialDxe/SerialDxe.inf { > + <LibraryClasses> > + SerialPortLib|OvmfPkg/Library/XenConsoleSerialPortLib/XenConsoleSerialPortLib.inf > + } > MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf > MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf > MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf If you run the "build" command with the "-v" option added, the last part (just preceding the error message above) is: > Library instances of module [MdeModulePkg/Universal/SerialDxe/SerialDxe.inf] [X64]: > UefiDriverEntryPoint : MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf > UefiBootServicesTableLib : MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf > DebugLib : MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf > PcdLib : MdePkg/Library/DxePcdLib/DxePcdLib.inf > SerialPortLib : OvmfPkg/Library/XenConsoleSerialPortLib/XenConsoleSerialPortLib.inf > BaseLib : MdePkg/Library/BaseLib/BaseLib.inf > XenHypercallLib : OvmfPkg/Library/XenHypercallLib/XenHypercallLib.inf > HobLib : MdePkg/Library/DxeHobLib/DxeHobLib.inf > BaseMemoryLib : MdePkg/Library/BaseMemoryLibRepStr/BaseMemoryLibRepStr.inf > UefiLib : MdePkg/Library/UefiLib/UefiLib.inf > PrintLib : MdePkg/Library/BasePrintLib/BasePrintLib.inf > MemoryAllocationLib : MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf > DevicePathLib : MdePkg/Library/UefiDevicePathLibDevicePathProtocol/UefiDevicePathLibDevicePathProtocol.inf > UefiRuntimeServicesTableLib : MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf > DebugPrintErrorLevelLib : MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib.inf The dependency loop is formed by: DebugLib : BaseDebugLibSerialPort -> SerialPortLib : XenConsoleSerialPortLib -> XenHypercallLib : XenHypercallLib -> DebugLib where all the library instances BaseDebugLibSerialPort, XenConsoleSerialPortLib, XenHypercallLib have constructors. Note that XenConsoleSerialPortLib *itself* is careful to avoid a DebugLib dependency; from "XenConsoleSerialPortLib.c": > // > // We can't use DebugLib due to a constructor dependency cycle between DebugLib > // and ourselves. > // > #define ASSERT(Expression) \ > do { \ > if (!(Expression)) { \ > CpuDeadLoop (); \ > } \ > } while (FALSE) However, XenConsoleSerialPortLib still inherits a DebugLib dependency through XenHypercallLib -- but only on IA32/X64, not on ARM/AARCH64! See "XenHypercallLib.inf": > [LibraryClasses.IA32, LibraryClasses.X64] > BaseLib > HobLib > DebugLib There is no issue without specifying DEBUG_ON_SERIAL_PORT, because OvmfXen resolves DebugLib to PlatformDebugLibIoPort then, which does not depend on SerialPortLib (thus the cycle is severed). Now, I think there may not be a simple solution for this, because, as the message on commit 05480e2fd4ff says, "On a Xen PVH guest, none of the existing serial or console interface works". So even if we eliminated the constructor cycle for this module -- i.e., SerialDxe -- somehow [1], the larger DEBUG_ON_SERIAL_PORT feature might not be feasible for *some* module types in OvmfXen. Because, XenConsoleSerialPortLib ultimately depends on hypercalls, and I'm unsure if those could be used as early as in SEC / PEI. [1] For breaking up just this one constructor cycle, I guess we could remove the DebugLib dependency from XenHypercallLib even on IA32/X64. In other words, I'm not sure if you could send any DEBUG messages *at all* to the Xen serial port as early as in SEC or PEI. Meaning that even if DEBUG_ON_SERIAL_PORT didn't break the build, it still wouldn't (comprehensively) do what its name says. I figure you attempted the DEBUG_ON_SERIAL_PORT build because without it you get no debug output at all (due to the default PlatformDebugLibIoPort resolution, which produces no logs on Xen). For a start, I would recommend removing DEBUG_ON_SERIAL_PORT altogether from OvmfXen (to decrease confusion and to eliminate the build breakage), and then filing a feature request in the TianoCore bugzilla for "some" kind of debug logging in OvmfXen, if the latter is possible. Thanks Laszlo ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: OvmfPkg XenPkg: X64 DEBUG GCC5 -DDEBUG_ON_SERIAL_PORT=TRUE build is broken 2020-04-15 14:04 ` Laszlo Ersek @ 2020-04-15 14:20 ` Rebecca Cran 2020-04-16 16:52 ` [edk2-devel] " Laszlo Ersek 2020-04-20 12:38 ` Anthony PERARD 1 sibling, 1 reply; 5+ messages in thread From: Rebecca Cran @ 2020-04-15 14:20 UTC (permalink / raw) To: Laszlo Ersek, devel, Anthony Perard, Julien Grall, Ard Biesheuvel On 4/15/2020 8:04 AM, Laszlo Ersek wrote: > > I figure you attempted the DEBUG_ON_SERIAL_PORT build because without it > you get no debug output at all (due to the default > PlatformDebugLibIoPort resolution, which produces no logs on Xen). I just attempted the DEBUG_ON_SERIAL_PORT build because that's how I do the other DEBUG OVMF builds and was running the following basic build script to make sure my bhyve changes weren't breaking things. build -p OvmfPkg/OvmfPkgX64.dsc -a X64 -t GCC5 -b RELEASE build -p OvmfPkg/OvmfPkgX64.dsc -a X64 -t GCC5 -b DEBUG -DDEBUG_ON_SERIAL_PORT=TRUE build -p OvmfPkg/OvmfPkgX64.dsc -a X64 -t GCC5 -b NOOPT build -p OvmfPkg/OvmfPkgIa32.dsc -a IA32 -t GCC5 -b RELEASE build -p OvmfPkg/OvmfPkgIa32.dsc -a IA32 -t GCC5 -b DEBUG -DDEBUG_ON_SERIAL_PORT=TRUE build -p OvmfPkg/OvmfPkgIa32.dsc -a IA32 -t GCC5 -b NOOPT build -p OvmfPkg/OvmfPkgIa32X64.dsc -a IA32 -a X64 -t GCC5 -b RELEASE build -p OvmfPkg/OvmfPkgIa32X64.dsc -a IA32 -a X64 -t GCC5 -b DEBUG -DDEBUG_ON_SERIAL_PORT=TRUE build -p OvmfPkg/OvmfPkgIa32X64.dsc -a IA32 -a X64 -t GCC5 -b NOOPT build -p OvmfPkg/OvmfXen.dsc -a X64 -t GCC5 -b RELEASE build -p OvmfPkg/OvmfXen.dsc -a X64 -t GCC5 -b DEBUG -DDEBUG_ON_SERIAL_PORT=TRUE build -p OvmfPkg/OvmfXen.dsc -a X64 -t GCC5 -b NOOPT build -p BhyvePkg/BhyvePkgX64.dsc -a X64 -t GCC5 -b RELEASE build -p BhyvePkg/BhyvePkgX64.dsc -a X64 -t GCC5 -b DEBUG -DDEBUG_ON_SERIAL_PORT=TRUE build -p BhyvePkg/BhyvePkgX64.dsc -a X64 -t GCC5 -b NOOPT -- Rebecca Cran ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [edk2-devel] OvmfPkg XenPkg: X64 DEBUG GCC5 -DDEBUG_ON_SERIAL_PORT=TRUE build is broken 2020-04-15 14:20 ` Rebecca Cran @ 2020-04-16 16:52 ` Laszlo Ersek 0 siblings, 0 replies; 5+ messages in thread From: Laszlo Ersek @ 2020-04-16 16:52 UTC (permalink / raw) To: devel, rebecca, Anthony Perard, Julien Grall, Ard Biesheuvel On 04/15/20 16:20, Rebecca Cran wrote: > On 4/15/2020 8:04 AM, Laszlo Ersek wrote: >> >> I figure you attempted the DEBUG_ON_SERIAL_PORT build because without it >> you get no debug output at all (due to the default >> PlatformDebugLibIoPort resolution, which produces no logs on Xen). > > I just attempted the DEBUG_ON_SERIAL_PORT build because that's how I do > the other DEBUG OVMF builds and was running the following basic build > script to make sure my bhyve changes weren't breaking things. > > > build -p OvmfPkg/OvmfPkgX64.dsc -a X64 -t GCC5 -b RELEASE > build -p OvmfPkg/OvmfPkgX64.dsc -a X64 -t GCC5 -b DEBUG > -DDEBUG_ON_SERIAL_PORT=TRUE > build -p OvmfPkg/OvmfPkgX64.dsc -a X64 -t GCC5 -b NOOPT > build -p OvmfPkg/OvmfPkgIa32.dsc -a IA32 -t GCC5 -b RELEASE > build -p OvmfPkg/OvmfPkgIa32.dsc -a IA32 -t GCC5 -b DEBUG > -DDEBUG_ON_SERIAL_PORT=TRUE > build -p OvmfPkg/OvmfPkgIa32.dsc -a IA32 -t GCC5 -b NOOPT > build -p OvmfPkg/OvmfPkgIa32X64.dsc -a IA32 -a X64 -t GCC5 -b RELEASE > build -p OvmfPkg/OvmfPkgIa32X64.dsc -a IA32 -a X64 -t GCC5 -b DEBUG > -DDEBUG_ON_SERIAL_PORT=TRUE > build -p OvmfPkg/OvmfPkgIa32X64.dsc -a IA32 -a X64 -t GCC5 -b NOOPT > build -p OvmfPkg/OvmfXen.dsc -a X64 -t GCC5 -b RELEASE > build -p OvmfPkg/OvmfXen.dsc -a X64 -t GCC5 -b DEBUG > -DDEBUG_ON_SERIAL_PORT=TRUE > build -p OvmfPkg/OvmfXen.dsc -a X64 -t GCC5 -b NOOPT > build -p BhyvePkg/BhyvePkgX64.dsc -a X64 -t GCC5 -b RELEASE > build -p BhyvePkg/BhyvePkgX64.dsc -a X64 -t GCC5 -b DEBUG > -DDEBUG_ON_SERIAL_PORT=TRUE > build -p BhyvePkg/BhyvePkgX64.dsc -a X64 -t GCC5 -b NOOPT > Thanks. Then the suggestion to remove DEBUG_ON_SERIAL_PORT from OvmfXen (maybe as a first step only?) would fit your use case too, I think. Laszlo ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: OvmfPkg XenPkg: X64 DEBUG GCC5 -DDEBUG_ON_SERIAL_PORT=TRUE build is broken 2020-04-15 14:04 ` Laszlo Ersek 2020-04-15 14:20 ` Rebecca Cran @ 2020-04-20 12:38 ` Anthony PERARD 1 sibling, 0 replies; 5+ messages in thread From: Anthony PERARD @ 2020-04-20 12:38 UTC (permalink / raw) To: Laszlo Ersek; +Cc: Rebecca Cran, devel, Julien Grall, Ard Biesheuvel On Wed, Apr 15, 2020 at 04:04:35PM +0200, Laszlo Ersek wrote: > On 04/14/20 20:01, Rebecca Cran wrote: > > I was trying to build OvmfPkg/XenPkg -a X64 -t GCC5 -b DEBUG > > -DDEBUG_ON_SERIAL_PORT=TRUE, but the build fails. Both plain DEBUG and > > RELEASE builds without trying to put the debug output on the serial > > port work. > > > > > > [bcran@smic ~/src/tmp/edk2]$ build -p OvmfPkg/OvmfXen.dsc -a X64 -t > > GCC5 -b DEBUG -DDEBUG_ON_SERIAL_PORT=TRUE > > Build environment: FreeBSD-13.0-CURRENT-amd64-64bit-ELF > > Build start time: 11:59:24, Apr.14 2020 > > > > WORKSPACE = /home/bcran/src/tmp/edk2 > > EDK_TOOLS_PATH = /home/bcran/src/tmp/edk2/BaseTools > > CONF_PATH = /home/bcran/src/tmp/edk2/Conf > > PYTHON_COMMAND = /usr/local/bin/python3 > > > > > > Processing meta-data . > > Architecture(s) = X64 > > Build target = DEBUG > > Toolchain = GCC5 > > > > Active Platform = /home/bcran/src/tmp/edk2/OvmfPkg/OvmfXen.dsc > > . > > > > build.py... > > /home/bcran/src/tmp/edk2/OvmfPkg/OvmfXen.dsc(...): error F002: Library > > [/home/bcran/src/tmp/edk2/MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf] > > with constructors has a cycle > > consumed by > > /home/bcran/src/tmp/edk2/MdePkg/Library/UefiLib/UefiLib.inf > > consumed by > > /home/bcran/src/tmp/edk2/MdePkg/Library/UefiDevicePathLibDevicePathProtocol/UefiDevicePathLibDevicePathProtocol.inf > > From commit 05480e2fd4ff ("OvmfPkg/PlatformBootManagerLib: Use a Xen > console for ConOut/ConIn", 2019-08-21), we have: > > > diff --git a/OvmfPkg/OvmfXen.dsc b/OvmfPkg/OvmfXen.dsc > > index 54ac910d8eed..e719a168f81e 100644 > > --- a/OvmfPkg/OvmfXen.dsc > > +++ b/OvmfPkg/OvmfXen.dsc > > @@ -586,6 +586,10 @@ [Components] > > OvmfPkg/XenIoPciDxe/XenIoPciDxe.inf > > OvmfPkg/XenBusDxe/XenBusDxe.inf > > OvmfPkg/XenPvBlkDxe/XenPvBlkDxe.inf > > + MdeModulePkg/Universal/SerialDxe/SerialDxe.inf { > > + <LibraryClasses> > > + SerialPortLib|OvmfPkg/Library/XenConsoleSerialPortLib/XenConsoleSerialPortLib.inf > > + } > > MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf > > MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf > > MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf > > If you run the "build" command with the "-v" option added, the last part > (just preceding the error message above) is: > > > Library instances of module [MdeModulePkg/Universal/SerialDxe/SerialDxe.inf] [X64]: > > UefiDriverEntryPoint : MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf > > UefiBootServicesTableLib : MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf > > DebugLib : MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf > > PcdLib : MdePkg/Library/DxePcdLib/DxePcdLib.inf > > SerialPortLib : OvmfPkg/Library/XenConsoleSerialPortLib/XenConsoleSerialPortLib.inf > > BaseLib : MdePkg/Library/BaseLib/BaseLib.inf > > XenHypercallLib : OvmfPkg/Library/XenHypercallLib/XenHypercallLib.inf > > HobLib : MdePkg/Library/DxeHobLib/DxeHobLib.inf > > BaseMemoryLib : MdePkg/Library/BaseMemoryLibRepStr/BaseMemoryLibRepStr.inf > > UefiLib : MdePkg/Library/UefiLib/UefiLib.inf > > PrintLib : MdePkg/Library/BasePrintLib/BasePrintLib.inf > > MemoryAllocationLib : MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf > > DevicePathLib : MdePkg/Library/UefiDevicePathLibDevicePathProtocol/UefiDevicePathLibDevicePathProtocol.inf > > UefiRuntimeServicesTableLib : MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf > > DebugPrintErrorLevelLib : MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib.inf > > The dependency loop is formed by: > > DebugLib : BaseDebugLibSerialPort -> > SerialPortLib : XenConsoleSerialPortLib -> > XenHypercallLib : XenHypercallLib -> > DebugLib > > where all the library instances BaseDebugLibSerialPort, > XenConsoleSerialPortLib, XenHypercallLib have constructors. > > Note that XenConsoleSerialPortLib *itself* is careful to avoid a > DebugLib dependency; from "XenConsoleSerialPortLib.c": > > > // > > // We can't use DebugLib due to a constructor dependency cycle between DebugLib > > // and ourselves. > > // > > #define ASSERT(Expression) \ > > do { \ > > if (!(Expression)) { \ > > CpuDeadLoop (); \ > > } \ > > } while (FALSE) > > However, XenConsoleSerialPortLib still inherits a DebugLib dependency > through XenHypercallLib -- but only on IA32/X64, not on ARM/AARCH64! See > "XenHypercallLib.inf": > > > [LibraryClasses.IA32, LibraryClasses.X64] > > BaseLib > > HobLib > > DebugLib > > There is no issue without specifying DEBUG_ON_SERIAL_PORT, because > OvmfXen resolves DebugLib to PlatformDebugLibIoPort then, which does not > depend on SerialPortLib (thus the cycle is severed). > > > Now, I think there may not be a simple solution for this, because, as > the message on commit 05480e2fd4ff says, "On a Xen PVH guest, none of > the existing serial or console interface works". > > So even if we eliminated the constructor cycle for this module -- i.e., > SerialDxe -- somehow [1], the larger DEBUG_ON_SERIAL_PORT feature might > not be feasible for *some* module types in OvmfXen. Because, > XenConsoleSerialPortLib ultimately depends on hypercalls, and I'm unsure > if those could be used as early as in SEC / PEI. > > [1] For breaking up just this one constructor cycle, I guess we could > remove the DebugLib dependency from XenHypercallLib even on > IA32/X64. > > In other words, I'm not sure if you could send any DEBUG messages *at > all* to the Xen serial port as early as in SEC or PEI. Meaning that even > if DEBUG_ON_SERIAL_PORT didn't break the build, it still wouldn't > (comprehensively) do what its name says. > > I figure you attempted the DEBUG_ON_SERIAL_PORT build because without it > you get no debug output at all (due to the default > PlatformDebugLibIoPort resolution, which produces no logs on Xen). > > For a start, I would recommend removing DEBUG_ON_SERIAL_PORT altogether > from OvmfXen (to decrease confusion and to eliminate the build > breakage), and then filing a feature request in the TianoCore bugzilla > for "some" kind of debug logging in OvmfXen, if the latter is possible. Thanks Laszlo for the investigation. I usually use DebugLib to debug OVMF under Xen, I just need to enable the debug port of QEMU. And for when QEMU isn't available (when running Xen PVH guest), I have a local patch that I haven't send upstream yet. It's a hacked version of PlatformDebugLibIoPort which sends logs to Xen's debug port, and doesn't check if the port is open. I'll prepare a patch to remove DEBUG_ON_SERIAL_PORT support from OvmfXen and send my other patch. Thanks, -- Anthony PERARD ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2020-04-20 12:38 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2020-04-14 18:01 OvmfPkg XenPkg: X64 DEBUG GCC5 -DDEBUG_ON_SERIAL_PORT=TRUE build is broken Rebecca Cran 2020-04-15 14:04 ` Laszlo Ersek 2020-04-15 14:20 ` Rebecca Cran 2020-04-16 16:52 ` [edk2-devel] " Laszlo Ersek 2020-04-20 12:38 ` Anthony PERARD
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox