summaryrefslogtreecommitdiffstats
path: root/OvmfPkg
diff options
context:
space:
mode:
authorjljusten <jljusten@6f19259b-4bc3-4df7-8a09-765794883524>2012-09-12 07:19:28 +0000
committerjljusten <jljusten@6f19259b-4bc3-4df7-8a09-765794883524>2012-09-12 07:19:28 +0000
commit0e20a1864fa2d236e8d932c52a2f300180d2d459 (patch)
treec1c84c3c52a2901555fd158a248f793c443a69f8 /OvmfPkg
parent931a0c74ed405a9b61afaa7ce1796f3e656d90b9 (diff)
downloadedk2-0e20a1864fa2d236e8d932c52a2f300180d2d459.tar.gz
edk2-0e20a1864fa2d236e8d932c52a2f300180d2d459.tar.bz2
edk2-0e20a1864fa2d236e8d932c52a2f300180d2d459.zip
OvmfPkg: key PMBA setup in Platform PEI off of PMREGMISC/PMIOSE, not Xen
This matches the logic in AcpiTimerLib. 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@13723 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'OvmfPkg')
-rw-r--r--OvmfPkg/PlatformPei/Platform.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/OvmfPkg/PlatformPei/Platform.c b/OvmfPkg/PlatformPei/Platform.c
index ce149e4f97..e7486b7b73 100644
--- a/OvmfPkg/PlatformPei/Platform.c
+++ b/OvmfPkg/PlatformPei/Platform.c
@@ -214,7 +214,7 @@ MemMapInitialization (
VOID
MiscInitialization (
- BOOLEAN Xen
+ VOID
)
{
//
@@ -227,7 +227,12 @@ MiscInitialization (
//
BuildCpuHob (36, 16);
- if (!Xen) {
+ //
+ // If PMREGMISC/PMIOSE is set, assume the ACPI PMBA has been configured (for
+ // example by Xen) and skip the setup here. This matches the logic in
+ // AcpiTimerLibConstructor ().
+ //
+ if ((PciRead8 (PCI_LIB_ADDRESS (0, 1, 3, 0x80)) & 0x01) == 0) {
//
// The PEI phase should be exited with fully accessibe PIIX4 IO space:
// 1. set PMBA
@@ -331,9 +336,7 @@ InitializePlatform (
IN CONST EFI_PEI_SERVICES **PeiServices
)
{
- EFI_STATUS Status;
EFI_PHYSICAL_ADDRESS TopOfMemory;
- BOOLEAN Xen;
DEBUG ((EFI_D_ERROR, "Platform PEIM Loaded\n"));
@@ -341,8 +344,7 @@ InitializePlatform (
TopOfMemory = MemDetect ();
- Status = InitializeXen ();
- Xen = EFI_ERROR (Status) ? FALSE : TRUE;
+ InitializeXen ();
ReserveEmuVariableNvStore ();
@@ -350,7 +352,7 @@ InitializePlatform (
MemMapInitialization (TopOfMemory);
- MiscInitialization (Xen);
+ MiscInitialization ();
BootModeInitialization ();