]> git.proxmox.com Git - mirror_edk2.git/commitdiff
OvmfPkg: enable Xen specific path
authorWei Liu <wei.liu2@citrix.com>
Sun, 8 Dec 2013 01:36:25 +0000 (01:36 +0000)
committerjljusten <jljusten@6f19259b-4bc3-4df7-8a09-765794883524>
Sun, 8 Dec 2013 01:36:25 +0000 (01:36 +0000)
This patch sets PcdPciDisableBusEnumeration to true then makes use of
PublishPeiMemory and XenMemMapInitialization to construct memory map for
Xen guest.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14946 6f19259b-4bc3-4df7-8a09-765794883524

OvmfPkg/OvmfPkgIa32.dsc
OvmfPkg/OvmfPkgIa32X64.dsc
OvmfPkg/OvmfPkgX64.dsc
OvmfPkg/PlatformPei/Platform.c
OvmfPkg/PlatformPei/PlatformPei.inf

index 3660b48af84a20302bd71ba5b98649cf7dbeaece..6647302a0e125a80b9d5a44c53f5ca1356451dd8 100644 (file)
   gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64|0\r
   gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase|0\r
   gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase|0\r
+  gEfiMdeModulePkgTokenSpaceGuid.PcdPciDisableBusEnumeration|FALSE\r
 \r
 \r
 ################################################################################\r
   UefiCpuPkg/CpuDxe/CpuDxe.inf\r
   PcAtChipsetPkg/8254TimerDxe/8254Timer.inf\r
   PcAtChipsetPkg/PciHostBridgeDxe/PciHostBridgeDxe.inf\r
-  MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf\r
+  MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf {\r
+    <LibraryClasses>\r
+      PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf\r
+  }\r
   PcAtChipsetPkg/KbcResetDxe/Reset.inf\r
   MdeModulePkg/Universal/Metronome/Metronome.inf {\r
     <LibraryClasses>\r
index b529cb6137c4100cd0030c1a27bfa54da5a112d9..7d521b14e33d3a556a751f23f10a4c3af1c2c457 100644 (file)
   gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64|0\r
   gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase|0\r
   gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase|0\r
+  gEfiMdeModulePkgTokenSpaceGuid.PcdPciDisableBusEnumeration|FALSE\r
 \r
 \r
 ################################################################################\r
   UefiCpuPkg/CpuDxe/CpuDxe.inf\r
   PcAtChipsetPkg/8254TimerDxe/8254Timer.inf\r
   PcAtChipsetPkg/PciHostBridgeDxe/PciHostBridgeDxe.inf\r
-  MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf\r
+  MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf {\r
+    <LibraryClasses>\r
+      PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf\r
+  }\r
   PcAtChipsetPkg/KbcResetDxe/Reset.inf\r
   MdeModulePkg/Universal/Metronome/Metronome.inf {\r
     <LibraryClasses>\r
index 1bbbebe2b3f0d8f11888d68c0399bc10e705c031..7c232c4d8e4ba795da30612716c049d0381c06e3 100644 (file)
   gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64|0\r
   gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase|0\r
   gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase|0\r
+  gEfiMdeModulePkgTokenSpaceGuid.PcdPciDisableBusEnumeration|FALSE\r
 \r
 \r
 ################################################################################\r
   UefiCpuPkg/CpuDxe/CpuDxe.inf\r
   PcAtChipsetPkg/8254TimerDxe/8254Timer.inf\r
   PcAtChipsetPkg/PciHostBridgeDxe/PciHostBridgeDxe.inf\r
-  MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf\r
+  MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf {\r
+    <LibraryClasses>\r
+      PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf\r
+  }\r
   PcAtChipsetPkg/KbcResetDxe/Reset.inf\r
   MdeModulePkg/Universal/Metronome/Metronome.inf {\r
     <LibraryClasses>\r
index 3dc30973fc060cb991edad15aa0d3aace7f11fc2..7363702beecb2f0d0d55276a5a17f302ca36d052 100644 (file)
@@ -412,13 +412,20 @@ InitializePlatform (
   EFI_PHYSICAL_ADDRESS  TopOfMemory;\r
   UINT32 XenLeaf;\r
 \r
+  TopOfMemory = 0;\r
+\r
   DEBUG ((EFI_D_ERROR, "Platform PEIM Loaded\n"));\r
 \r
   DebugDumpCmos ();\r
 \r
   XenLeaf = XenDetect ();\r
 \r
-  TopOfMemory = MemDetect ();\r
+  if (XenLeaf != 0) {\r
+    PublishPeiMemory ();\r
+    PcdSetBool (PcdPciDisableBusEnumeration, TRUE);\r
+  } else {\r
+    TopOfMemory = MemDetect ();\r
+  }\r
 \r
   if (XenLeaf != 0) {\r
     DEBUG ((EFI_D_INFO, "Xen was detected\n"));\r
@@ -429,7 +436,11 @@ InitializePlatform (
 \r
   PeiFvInitialization ();\r
 \r
-  MemMapInitialization (TopOfMemory);\r
+  if (XenLeaf != 0) {\r
+    XenMemMapInitialization ();\r
+  } else {\r
+    MemMapInitialization (TopOfMemory);\r
+  }\r
 \r
   MiscInitialization ();\r
 \r
index 3d5cbbbc2b59dd1bcd3629ff89e5378d3cb61156..7fe9d471cb8f816be7cd03499ed213215cb4e954 100644 (file)
@@ -65,6 +65,7 @@
   gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize\r
   gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize\r
   gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved\r
+  gEfiMdeModulePkgTokenSpaceGuid.PcdPciDisableBusEnumeration\r
   gUefiCpuPkgTokenSpaceGuid.PcdCpuLocalApicBaseAddress\r
 \r
 [Ppis]\r