]> git.proxmox.com Git - mirror_edk2.git/blobdiff - OvmfPkg/PlatformPei/MemDetect.c
OVMF: Update OVMF FD/FV build to minimize ROM size
[mirror_edk2.git] / OvmfPkg / PlatformPei / MemDetect.c
index daa83a00141795b65a38dec68b00b86735563d8b..30ee2b1772afa79c2d1261588bf7a000eb95ccc6 100644 (file)
@@ -27,6 +27,7 @@ Module Name:
 #include <Library/DebugLib.h>\r
 #include <Library/HobLib.h>\r
 #include <Library/IoLib.h>\r
+#include <Library/PcdLib.h>\r
 #include <Library/PeimEntryPoint.h>\r
 #include <Library/ResourcePublicationLib.h>\r
 \r
@@ -79,8 +80,15 @@ MemDetect (
   //\r
   TotalMemorySize = (UINT64)GetSystemMemorySize ();\r
 \r
-  MemoryBase = 0x800000;\r
-  MemorySize = TotalMemorySize - MemoryBase - 0x100000;\r
+  //\r
+  // Determine the range of memory to use during PEI\r
+  //\r
+  MemoryBase = PcdGet32 (PcdOvmfMemFvBase) + PcdGet32 (PcdOvmfMemFvSize);\r
+  MemorySize = TotalMemorySize - MemoryBase;\r
+  if (MemorySize > SIZE_16MB) {\r
+    MemoryBase = TotalMemorySize - SIZE_16MB;\r
+    MemorySize = SIZE_16MB;\r
+  }\r
 \r
   //\r
   // Publish this memory to the PEI Core\r
@@ -92,8 +100,8 @@ MemDetect (
   // Create memory HOBs\r
   //\r
   AddMemoryBaseSizeHob (MemoryBase, MemorySize);\r
-  AddMemoryRangeHob (0x100000, 0x800000);\r
-  AddMemoryRangeHob (0x000000, 0x0A0000);\r
+  AddMemoryRangeHob (BASE_1MB, MemoryBase);\r
+  AddMemoryRangeHob (0, BASE_512KB + BASE_128KB);\r
 \r
   return EFI_SUCCESS;\r
 }\r