<------------------------------+ | |\r
Permament Stack (0x20 Pages = 128K) | |\r
<- Phit.EfiMemoryTop ----------+-----------+---------------+\r
- DxeCore |\r
- DxeCore\r
- DxeIpl |\r
- <----------------------------------------------------------+\r
- NvFV + FtwFV |\r
+ NvFV (64K) |\r
MMIO\r
- BFV |\r
- <- Top of Free Memory reported by E820 --------------------+\r
+ FtwFV (128K) | \r
+ <----------------------------------------------------------+<---------+\r
+ DxeCore | |\r
+ DxeCore |\r
+ DxeIpl | Allocated in EfiLdr\r
+ <----------------------------------------------------------+ |\r
+ BFV MMIO |\r
+ <- Top of Free Memory reported by E820 --------------------+<---------+\r
ACPINVS or\r
ACPIReclaim or\r
Reserved\r
IN VOID *PageTable\r
);\r
\r
-VOID\r
-WaitForKey ()\r
-{\r
- PrintString("Press Enter to continue ...\n");\r
- _asm {\r
- mov al, 20h\r
- out 64h, al\r
- AGAIN: in al, 60h\r
- cmp al, 1ch\r
- jnz AGAIN\r
- }\r
-}\r
-\r
VOID\r
DxeInit (\r
IN EFILDRHANDOFF *Handoff\r
PrintString(" Length = ");\r
PrintValue64(gHob->NvFtwFvb.FvbInfo.Entries[0].Length);\r
PrintString("\n");\r
+ PrintString("BfvResource = ");\r
+ PrintValue64(gHob->BfvResource.PhysicalStart);\r
+ PrintString(" Length = ");\r
+ PrintValue64(gHob->BfvResource.ResourceLength);\r
+ PrintString("\n");\r
+ PrintString("NvStorageFvResource = ");\r
+ PrintValue64(gHob->NvStorageFvResource.PhysicalStart);\r
+ PrintString(" Length = ");\r
+ PrintValue64(gHob->NvStorageFvResource.ResourceLength);\r
+ PrintString("\n");\r
+ PrintString("NvStorage = ");\r
+ PrintValue64(gHob->NvStorage.FvbInfo.Entries[0].Base);\r
+ PrintString(" Length = ");\r
+ PrintValue64(gHob->NvStorage.FvbInfo.Entries[0].Length);\r
+ PrintString("\n");\r
+ PrintString("NvFtwFvResource = ");\r
+ PrintValue64(gHob->NvFtwFvResource.PhysicalStart);\r
+ PrintString(" Length = ");\r
+ PrintValue64(gHob->NvFtwFvResource.ResourceLength);\r
+ PrintString("\n");\r
+ PrintString("NvFtwWorking = ");\r
+ PrintValue64(gHob->NvFtwWorking.FvbInfo.Entries[0].Base);\r
+ PrintString(" Length = ");\r
+ PrintValue64(gHob->NvFtwWorking.FvbInfo.Entries[0].Length);\r
+ PrintString("\n");\r
+ PrintString("NvFtwSpare = ");\r
+ PrintValue64(gHob->NvFtwSpare.FvbInfo.Entries[0].Base);\r
+ PrintString(" Length = ");\r
+ PrintValue64(gHob->NvFtwSpare.FvbInfo.Entries[0].Length);\r
+ PrintString("\n");\r
PrintString("Stack = "); \r
PrintValue64(gHob->Stack.AllocDescriptor.MemoryBaseAddress);\r
PrintString(" StackLength = "); \r
PrintValue64(gHob->Stack.AllocDescriptor.MemoryLength);\r
PrintString("\n"); \r
+ PrintString("PageTable = "); \r
+ PrintValue64((UINTN)PageTableBase);\r
+ PrintString("\n"); \r
PrintString("MemoryFreeUnder1MB = "); \r
PrintValue64(gHob->MemoryFreeUnder1MB.PhysicalStart);\r
PrintString(" MemoryFreeUnder1MBLength = "); \r
PrintString("\n"); \r
EFI_DEADLOOP();\r
*/\r
- WaitForKey ();\r
+\r
ClearScreen();\r
PrintString("\n\n\n\n\n\n\n\n\n\n");\r
PrintString(" WELCOME TO EFI WORLD!\n");\r
\r
EnterDxeMain (StackTop, Handoff->DxeCoreEntryPoint, gHob, PageTableBase);\r
- \r
+ \r
PrintString("Fail to enter DXE main!\n");\r
//\r
// Should never get here\r