2014-05-20 4:00 GMT+02:00 Fan, Jeff <jeff....@intel.com>: > X64 Exception Type - 000000000000000E means Page Fault exception > RIP - 0000000006BA58DE means in > MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe. > (ImageBase=0000000006B9F000) > CR2 - FFFFFFFFFFFFFFF0 means Page Fault > exception occurred at address 0xFFFFFFFFFFFFFFF0 > > So, the code in ConsplitterDxe try to access 0xFFFFFFFFFFFFFFF0 that is > invalid address without page table entry. Maybe Some memory is crashed. > > In general, DEBUG does not involve ConsplitterDxe. But Print() does involve > ConspliteterDxe to print message on console devices. > > You may try comment all Print() and only test DEBUG to see if it could work > well. > > // Print(L"a\n"); > DEBUG(( D_INFO, (CHAR8 *)"D_INFO\r\n")); > //Print(L"b\n"); > DEBUG(( D_ERROR, (CHAR8 *)"D_ERROR\r\n")); > //Print(L"c\n");
With the Print() calls commented out I do not see any log displayed in the serial console. The "D_ERROR" message is no more displayed. But I still have a crash of qemu: qemu: fatal: Trying to execute code outside RAM or ROM at 0x00000000000b0000 RAX=0000000000000000 RBX=0000000080000000 RCX=0000000000000000 RDX=0000000000000007 RSI=000000000000000e RDI=0000000007dd0c30 RBP=0000000007f94560 RSP=0000000007f94518 R8 =0000000000000000 R9 =0000000007fb95df R10=0000000007f94690 R11=0000000006eb2f30 R12=0000000000000005 R13=0000000000000000 R14=0000000000000000 R15=0000000000000000 RIP=00000000000affae RFL=00000202 [-------] CPL=0 II=0 A20=1 SMM=0 HLT=0 ES =0008 0000000000000000 ffffffff 00cf9300 DPL=0 DS [-WA] CS =0028 0000000000000000 ffffffff 00af9b00 DPL=0 CS64 [-RA] SS =0008 0000000000000000 ffffffff 00cf9300 DPL=0 DS [-WA] DS =0008 0000000000000000 ffffffff 00cf9300 DPL=0 DS [-WA] FS =0008 0000000000000000 ffffffff 00cf9300 DPL=0 DS [-WA] GS =0008 0000000000000000 ffffffff 00cf9300 DPL=0 DS [-WA] LDT=0000 0000000000000000 0000ffff 00008200 DPL=0 LDT TR =0000 0000000000000000 0000ffff 00008b00 DPL=0 TSS64-busy GDT= 0000000007f1ed98 0000003f IDT= 000000000747f018 00000fff CR0=80000033 CR2=0000000000000000 CR3=0000000007f33000 CR4=00000668 DR0=0000000000000000 DR1=0000000000000000 DR2=0000000000000000 DR3=0000000000000000 DR6=00000000ffff0ff0 DR7=0000000000000400 CCS=0000000000000000 CCD=0000000000000000 CCO=ADDB EFER=0000000000000500 FCW=037f FSW=0000 [ST=0] FTW=00 MXCSR=00001f80 FPR0=0000000000000000 0000 FPR1=0000000000000000 0000 FPR2=0000000000000000 0000 FPR3=0000000000000000 0000 FPR4=0000000000000000 0000 FPR5=0000000000000000 0000 FPR6=0000000000000000 0000 FPR7=0000000000000000 0000 XMM00=00000000000000000000000000000000 XMM01=00000000000000000000000000000000 XMM02=00000000000000000000000000000000 XMM03=00000000000000000000000000000000 XMM04=00000000000000000000000000000000 XMM05=00000000000000000000000000000000 XMM06=00000000000000000000000000000000 XMM07=00000000000000000000000000000000 XMM08=00000000000000000000000000000000 XMM09=00000000000000000000000000000000 XMM10=00000000000000000000000000000000 XMM11=00000000000000000000000000000000 XMM12=00000000000000000000000000000000 XMM13=00000000000000000000000000000000 XMM14=00000000000000000000000000000000 XMM15=00000000000000000000000000000000 $ qemu -version QEMU emulator version 1.1.2 (Debian 1.1.2+dfsg-6a+deb7u3), Copyright (c) 2003-2008 Fabrice Bellard Using my own build OVMF (edk2 revision 15538) I do not get any display in the serial console and the qemu is consuming 100% CPU untill I kill it. If I uncomment the 1st Print() call I have: Print(L"a\n"); DEBUG(( D_INFO, (CHAR8 *)"D_INFO\r\n")); //Print(L"b\n"); DEBUG(( D_ERROR, (CHAR8 *)"D_ERROR\r\n")); //Print(L"c\n"); And the serial output is: FS0:\> debug1.efi a !!!! X64 Exception Type - 000000000000000E CPU Apic ID - 00000000 !!!! RIP - 0000000006BA58DE, CS - 0000000000000028, RFLAGS - 0000000000000287 ExceptionData - 0000000000000000 RAX - FFFFFFFFFFFFFFF0, RCX - 0000000000000000, RDX - 0000000000000007 RBX - 0000000080000000, RSP - 0000000007F6A4F0, RBP - 0000000007F6A530 RSI - 000000000000000E, RDI - 0000000006BAA790 R8 - 0000000000000000, R9 - 0000000007F69EA7, R10 - 00000000069A169D R11 - 0000000000000040, R12 - 0000000000000005, R13 - 0000000000000000 R14 - 0000000000000000, R15 - 0000000000000000 DS - 0000000000000008, ES - 0000000000000008, FS - 0000000000000008 GS - 0000000000000008, SS - 0000000000000008 CR0 - 0000000080000033, CR2 - FFFFFFFFFFFFFFF0, CR3 - 0000000007F09000 CR4 - 0000000000000668, CR8 - 0000000000000000 DR0 - 0000000000000000, DR1 - 0000000000000000, DR2 - 0000000000000000 DR3 - 0000000000000000, DR6 - 00000000FFFF0FF0, DR7 - 0000000000000400 GDTR - 0000000007EF2D98 000000000000003F, LDTR - 0000000000000000 IDTR - 0000000007C1E018 0000000000000FFF, TR - 0000000000000000 FXSAVE_STATE - 0000000007F6A150 !!!! Find PE image /home/lroussea/Documents/UEFI/edk2/Build/OvmfX64/DEBUG_GCC47/X64/MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe/DEBUG/ConSplitterDxe.dll (ImageBase=0000000006B9F000, EntryPoint=0000000006B9F2AF) !!!! Attached is a gzip compressed version of my /home/lroussea/Documents/UEFI/edk2/Build/OvmfX64/DEBUG_GCC47/X64/MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe/DEBUG/ConSplitterDxe.dll file. I hope that is OK for the mailing list. Thanks -- Dr. Ludovic Rousseau
ConSplitterDxe.dll.gz
Description: GNU Zip compressed data
------------------------------------------------------------------------------ Learn Graph Databases - Download FREE O'Reilly Book "Graph Databases" is the definitive new guide to graph databases and their applications. Written by three acclaimed leaders in the field, this first edition is now available. Download your free book today! http://p.sf.net/sfu/NeoTech
_______________________________________________ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel