diff options
author | jljusten <jljusten@6f19259b-4bc3-4df7-8a09-765794883524> | 2012-09-12 07:19:28 +0000 |
---|---|---|
committer | jljusten <jljusten@6f19259b-4bc3-4df7-8a09-765794883524> | 2012-09-12 07:19:28 +0000 |
commit | 0e20a1864fa2d236e8d932c52a2f300180d2d459 (patch) | |
tree | c1c84c3c52a2901555fd158a248f793c443a69f8 /OvmfPkg/PlatformPei | |
parent | 931a0c74ed405a9b61afaa7ce1796f3e656d90b9 (diff) | |
download | edk2-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/PlatformPei')
-rw-r--r-- | OvmfPkg/PlatformPei/Platform.c | 16 |
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 ();
|