diff options
Diffstat (limited to 'OvmfPkg')
-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 ();
|