]> git.proxmox.com Git - mirror_edk2.git/commitdiff
OvmfPkg: clean up memory map
authorjljusten <jljusten@6f19259b-4bc3-4df7-8a09-765794883524>
Tue, 31 Jul 2012 18:17:37 +0000 (18:17 +0000)
committerjljusten <jljusten@6f19259b-4bc3-4df7-8a09-765794883524>
Tue, 31 Jul 2012 18:17:37 +0000 (18:17 +0000)
Fix IO-APIC range size.
Add HPET.
Take LAPIC base from PCD and fix range size.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13572 6f19259b-4bc3-4df7-8a09-765794883524

OvmfPkg/PlatformPei/Platform.c
OvmfPkg/PlatformPei/PlatformPei.inf

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
index db5ed31a6dcf0171b6a9ac6c8dc14b51a241755a..8742008c0d409c1f9b7b84920a8b43f936bd1159 100644 (file)
@@ -55,6 +55,7 @@
   PeiServicesTablePointerLib\r
   PeimEntryPoint\r
   MtrrLib\r
+  PcdLib\r
 \r
 [Pcd]\r
   gUefiOvmfPkgTokenSpaceGuid.PcdOvmfMemFvBase\r
@@ -63,6 +64,7 @@
   gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize\r
   gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize\r
   gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved\r
+  gUefiCpuPkgTokenSpaceGuid.PcdCpuLocalApicBaseAddress\r
 \r
 [Ppis]\r
   gEfiPeiMasterBootModePpiGuid\r