VOID *MemoryDescriptor;\r
VOID *NvStorageBase;\r
CHAR8 PrintBuffer[256];\r
-\r
+ \r
+ ClearScreen();\r
PrintString("Enter DxeIpl ...\n");\r
+ \r
/*\r
ClearScreen();\r
PrintString("handoff:\n");\r
// * Don't report FV as physical memory\r
// * MemoryAllocation Hob should only cover physical memory\r
// * Use ResourceDescriptor Hob to report physical memory or Firmware Device and they shouldn't be overlapped\r
- \r
+ PrintString("Prepare Cpu HOB information ...\n");\r
PrepareHobCpu ();\r
+\r
//\r
// 1. BFV\r
//\r
+ PrintString("Prepare BFV HOB information ...\n");\r
PrepareHobBfv (Handoff->BfvBase, Handoff->BfvSize);\r
\r
//\r
// 2. Updates Memory information, and get the top free address under 4GB\r
//\r
+ PrintString("Prepare Memory HOB information ...\n");\r
MemoryTopOnDescriptor = PrepareHobMemory (Handoff->MemDescCount, Handoff->MemDesc);\r
-\r
+ \r
//\r
// 3. Put [NV], [Stack], [PageTable], [MemDesc], [HOB] just below the [top free address under 4GB]\r
//\r
\r
// 3.1 NV data\r
+ PrintString("Prepare NV Storage information ...\n");\r
NvStorageBase = PrepareHobNvStorage (MemoryTopOnDescriptor);\r
AsciiSPrint (PrintBuffer, 256, "NV Storage Base=0x%x\n", (UINTN)NvStorageBase);\r
PrintString (PrintBuffer);\r
-\r
+ \r
// 3.2 Stack\r
StackTop = NvStorageBase;\r
StackBottom = PrepareHobStack (StackTop);\r
//\r
// 4. Register the memory occupied by DxeCore and DxeIpl together as DxeCore\r
//\r
+ PrintString("Prepare DxeCore memory Hob ...\n");\r
PrepareHobDxeCore (\r
Handoff->DxeCoreEntryPoint,\r
(EFI_PHYSICAL_ADDRESS)(UINTN)Handoff->DxeCoreImageBase,\r
);\r
\r
PrepareHobLegacyTable (gHob);\r
+ \r
PreparePpisNeededByDxeCore (gHob);\r
\r
CompleteHobGeneration ();\r
PrintString("\n"); \r
EFI_DEADLOOP();\r
*/\r
+\r
ClearScreen();\r
PrintString("\n\n\n\n\n\n\n\n\n\n");\r
PrintString(" WELCOME TO EFI WORLD!\n");\r
-\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
//\r
CpuDeadLoop ();\r
}\r
\r
+EFI_STATUS\r
+EFIAPI\r
+_ModuleEntryPoint (\r
+ IN EFILDRHANDOFF *Handoff\r
+ )\r
+{\r
+ DxeInit(Handoff);\r
+ return EFI_SUCCESS;\r
+}\r