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
This commit is contained in:
jljusten 2012-09-12 07:19:28 +00:00
parent 931a0c74ed
commit 0e20a1864f
1 changed files with 9 additions and 7 deletions

View File

@ -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 ();