Oh!  Sweet!  Finally some debug output!

On Thu, Apr 11, 2013 at 10:31 AM, Laszlo Ersek <[email protected]> wrote:

>
> (i) the "-D DEBUG_ON_SERIAL_PORT" edk2 build option,
>
> (ii) the DEBUG_VERBOSE bit in
> OvmfPkgX64.dsc::gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel,
>
> (iii) the "-debugcon file:debug.log" and "-global
> isa-debugcon.iobase=0x402" qemu command line options
>


> ....
> So, what happens if you drop (i), and keep (ii) and (iii)?
>

(ii) and (iii) produce output in debug.log  I guess I always had either -D
DEBUG_ON_SERIAL_PORT on or DEBUG_VERBOSE off.


So, here's some hopefully relavant output from debug.log:

Loading driver 9622E42C-8E38-4A08-9E8F-54F784652F6B
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 3F8A3A40
    PDB =
/home/duanev/efi/edk2/Build/OvmfX64/DEBUG_GCC46/X64/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe/DEBUG/AcpiTableDxe.dll
Loading driver at 0x0003FA6B000 EntryPoint=0x0003FA6B2AF AcpiTableDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 3F8A2398
InstallProtocolInterface: FFE06BDD-6107-46A6-7BB2-5A9C7EC5275C 3F984B28
...
Loading driver 49970331-E3FA-4637-9ABC-3B7868676970
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 3F883840
    PDB =
/home/duanev/efi/edk2/Build/OvmfX64/DEBUG_GCC46/X64/OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe/DEBUG/AcpiPlatform.dll
Loading driver at 0x0003F9C9000 EntryPoint=0x0003F9C92AF AcpiPlatform.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 3F86D618
Select Item: 0x0
FW CFG Signature: 0x554D4551
Select Item: 0x1
FW CFG Revision: 0x1
QemuFwCfg interface is supported.
Select Item: 0x5
Select Item: 0x19
Select Item: 0x21
ACPI S3 value: 1
ACPI S4 value: 2
ACPI PciWindow32: Base=0x40000000 End=0xFEEFFFFF Length=0xBEF00000
ACPI PciWindow64: Base=0x00000000 End=0x00000000 Length=0x00000000
...
Loading driver 38A0EC22-FBE7-4911-8BC1-176E0D6C1DBD
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 3EC35640
    PDB =
/home/duanev/efi/edk2/Build/OvmfX64/DEBUG_GCC46/X64/PcAtChipsetPkg/IsaAcpiDxe/IsaAcpi/DEBUG/IsaAcpi.dll
Loading driver at 0x0003E5F6000 EntryPoint=0x0003E5F62AF IsaAcpi.efi
...
    PDB =
/home/jljusten/dev/edk2/Build/OvmfX64/RELEASE_GCC44/X64/OptionRomPkg/CirrusLogic5430Dxe/CirrusLogic5430Dxe/DEBUG/CirrusLogic5430Dxe.dll
Loading driver at 0x0003E552000 EntryPoint=0x0003E5522AF
CirrusLogic5430Dxe.efi
...
Found Mass Storage device: PciRoot(0x0)/Pci(0x1,0x1)
...
 BlockSize : 2048
 LastBlock : 0
PlatformBdsGetDriverOption
Boot Mode:0
Found LPC Bridge device
BdsPlatform.c+218: COM1 DevPath:
PciRoot(0x0)/Pci(0x1,0x0)/Serial(0x0)/Uart(115200,8,N,1)/VenPcAnsi()
BdsPlatform.c+245: COM2 DevPath:
PciRoot(0x0)/Pci(0x1,0x0)/Serial(0x1)/Uart(115200,8,N,1)/VenPcAnsi()
Found PCI VGA device
InstallProtocolInterface: 09576E91-6D3F-11D2-8E39-00A0C969723B 3EAEA098

So it is hanging while loading the VGA driver.  Also grepping debug.log
gives the driver load map (yea!!):

$ grep "Loading driver at" debug.log | sort
Loading driver at 0x0003E552000 EntryPoint=0x0003E5522AF
CirrusLogic5430Dxe.efi
Loading driver at 0x0003E559000 EntryPoint=0x0003E5592AF QemuVideoDxe.efi
Loading driver at 0x0003E569000 EntryPoint=0x0003E5692AF
UsbMassStorageDxe.efi
Loading driver at 0x0003E575000 EntryPoint=0x0003E5752AF UsbBusDxe.efi
Loading driver at 0x0003E587000 EntryPoint=0x0003E5872AF EhciDxe.efi
Loading driver at 0x0003E59D000 EntryPoint=0x0003E59D2AF UsbKbDxe.efi
Loading driver at 0x0003E5AB000 EntryPoint=0x0003E5AB2AF UhciDxe.efi
...

which confirms the address range where the hang occurs (0x3e557749) is in
the Cirrus driver.  This is quite odd - does the Cirrus driver assume an
ACPI device and use the timer for delays?

But also, where does CirrusLogic5430Dxe.efi come from?  I see no .efi or
.obj in my Build tree!  There is a hint in the GdbSyms.py output:

...
add-symbol-file
/home/duanev/efi/edk2/Build/OvmfX64/DEBUG_GCC46/X64/OvmfPkg/QemuVideoDxe/QemuVideoDxe/DEBUG/QemuVideoDxe.debug
0x3e559260
add symbol table from file
"/home/duanev/efi/edk2/Build/OvmfX64/DEBUG_GCC46/X64/OvmfPkg/QemuVideoDxe/QemuVideoDxe/DEBUG/QemuVideoDxe.debug"
at
        .text_addr = 0x3e559260
add-symbol-file
/home/jljusten/dev/edk2/Build/OvmfX64/RELEASE_GCC44/X64/OptionRomPkg/CirrusLogic5430Dxe/CirrusLogic5430Dxe/DEBUG/CirrusLogic5430Dxe.debug
0x3e552260
add symbol table from file
"/home/jljusten/dev/edk2/Build/OvmfX64/RELEASE_GCC44/X64/OptionRomPkg/CirrusLogic5430Dxe/CirrusLogic5430Dxe/DEBUG/CirrusLogic5430Dxe.debug"
at
        .text_addr = 0x3e552260
Python Exception <class 'gdb.error'>
/home/jljusten/dev/edk2/Build/OvmfX64/RELEASE_GCC44/X64/OptionRomPkg/CirrusLogic5430Dxe/CirrusLogic5430Dxe/DEBUG/CirrusLogic5430Dxe.debug:
No such file or directory.


Every driver up to the Cirrus has a path that uses my workspace
(/home/duanev/efi/edk2) but the Cirrus path (pulled from an object or
executable file debug data field) uses /home/jljustin/dev/edk2.  I've never
built OptionRomPkg trusting that all the dependencies for OvmfPkg were
coded in the dsc/inf/etc. files.  Do I need to build OptionRomPkg?

Even if I do, where is the Cirrus .efi that is getting used now coming
from?  (And wasn't the Cirrus driver recently disabled?)
------------------------------------------------------------------------------
Precog is a next-generation analytics platform capable of advanced
analytics on semi-structured data. The platform includes APIs for building
apps and a phenomenal toolset for data science. Developers can use
our toolset for easy data analysis & visualization. Get a free account!
http://www2.precog.com/precogplatform/slashdotnewsletter
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to