]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkModulePkg/Core/Pei/Memory/MemoryServices.c
Add debug info when decompress failed in DxeIpl and allocate pages failed in PeiMain.
[mirror_edk2.git] / EdkModulePkg / Core / Pei / Memory / MemoryServices.c
index 48b2b3818cd65bd4b38e62a4020f298484ca05c2..277f60b26d2927fa587087800fa0f5081de88120 100644 (file)
@@ -65,10 +65,10 @@ Returns:
     SizeOfCarHeap = (UINT64) PeiStartupDescriptor->SizeOfCacheAsRam;\r
     SizeOfCarHeap = RShiftU64 (SizeOfCarHeap, 1);\r
  \r
-    DEBUG_CODE (\r
-        PrivateData->SizeOfCacheAsRam = PeiStartupDescriptor->SizeOfCacheAsRam;\r
-        PrivateData->MaxTopOfCarHeap  = (VOID *) ((UINTN) PrivateData->BottomOfCarHeap + (UINTN) SizeOfCarHeap);\r
-    );\r
+    DEBUG_CODE_BEGIN ();\r
+      PrivateData->SizeOfCacheAsRam = PeiStartupDescriptor->SizeOfCacheAsRam;\r
+      PrivateData->MaxTopOfCarHeap  = (VOID *) ((UINTN) PrivateData->BottomOfCarHeap + (UINTN) SizeOfCarHeap);\r
+    DEBUG_CODE_END ();\r
 \r
     PrivateData->HobList.Raw = PrivateData->BottomOfCarHeap;\r
     \r
@@ -243,6 +243,9 @@ Returns:
   //\r
   if (Hob.HandoffInformationTable->EfiFreeMemoryTop - ((Pages * EFI_PAGE_SIZE) + sizeof (EFI_HOB_MEMORY_ALLOCATION)) < \r
       Hob.HandoffInformationTable->EfiFreeMemoryBottom) {\r
+    DEBUG ((EFI_D_ERROR, "AllocatePages failed: No 0x%x Pages is available.\n", Pages));\r
+    DEBUG ((EFI_D_ERROR, "There is only left 0x%x pages memory resource to be allocated.\n", \\r
+    (Hob.HandoffInformationTable->EfiFreeMemoryTop - Hob.HandoffInformationTable->EfiFreeMemoryBottom)/EFI_PAGE_SIZE));\r
     return  EFI_OUT_OF_RESOURCES;\r
   } else {\r
     //\r
@@ -301,8 +304,12 @@ Returns:
   EFI_STATUS               Status;\r
   EFI_HOB_MEMORY_POOL      *Hob;\r
 \r
-\r
-  Status = PeiCoreCreateHob (\r
+ //\r
+ // If some "post-memory" PEIM wishes to allocate larger pool,\r
+ // it should use AllocatePages service instead.\r
+ //\r
+ ASSERT (Size < 0x10000 - sizeof (EFI_HOB_MEMORY_POOL));\r
+ Status = PeiServicesCreateHob (\r
              EFI_HOB_TYPE_PEI_MEMORY_POOL,\r
              (UINT16)(sizeof (EFI_HOB_MEMORY_POOL) + Size),\r
              (VOID **)&Hob\r