]> git.proxmox.com Git - mirror_edk2.git/blobdiff - OvmfPkg/PlatformPei/Platform.c
OvmfPkg: clean up memory map
[mirror_edk2.git] / OvmfPkg / PlatformPei / Platform.c
index d395bc191ad1db81e9db55701a1d8f1eaa92ac0d..6ea9ae31990f083fa99c5201ebcbb821a33e077a 100644 (file)
@@ -189,28 +189,24 @@ MemMapInitialization (
     );\r
 \r
   //\r
-  // Add PCI MMIO space available to PCI resource allocations\r
-  //\r
-  if (TopOfMemory < BASE_2GB) {\r
-    AddIoMemoryBaseSizeHob (BASE_2GB, 0xFC000000 - BASE_2GB);\r
-  } else {\r
-    AddIoMemoryBaseSizeHob (TopOfMemory, 0xFC000000 - TopOfMemory);\r
-  }\r
-\r
-  //\r
-  // Local APIC range\r
-  //\r
-  AddIoMemoryBaseSizeHob (0xFEC80000, SIZE_512KB);\r
-\r
-  //\r
-  // I/O APIC range\r
+  // Video memory + Legacy BIOS region\r
   //\r
-  AddIoMemoryBaseSizeHob (0xFEC00000, SIZE_512KB);\r
+  AddIoMemoryRangeHob (0x0A0000, BASE_1MB);\r
 \r
   //\r
-  // Video memory + Legacy BIOS region\r
+  // address       purpose   size\r
+  // ------------  --------  -------------------------\r
+  // max(top, 2g)  PCI MMIO  0xFEC00000 - max(top, 2g)\r
+  // 0xFEC00000    IO-APIC                        4 KB\r
+  // 0xFEC01000    gap                         1020 KB\r
+  // 0xFED00000    HPET                           1 KB\r
+  // 0xFED00400    gap                         1023 KB\r
+  // 0xFEE00000    LAPIC                          1 MB\r
   //\r
-  AddIoMemoryRangeHob (0x0A0000, BASE_1MB);\r
+  AddIoMemoryRangeHob (TopOfMemory < BASE_2GB ? BASE_2GB : TopOfMemory, 0xFEC00000);\r
+  AddIoMemoryBaseSizeHob (0xFEC00000, SIZE_4KB);\r
+  AddIoMemoryBaseSizeHob (0xFED00000, SIZE_1KB);\r
+  AddIoMemoryBaseSizeHob (PcdGet32(PcdCpuLocalApicBaseAddress), SIZE_1MB);\r
 }\r
 \r
 \r