diff --git a/OvmfPkg/PlatformPei/Platform.c b/OvmfPkg/PlatformPei/Platform.c index 0b11275157..6735b50d70 100644 --- a/OvmfPkg/PlatformPei/Platform.c +++ b/OvmfPkg/PlatformPei/Platform.c @@ -22,6 +22,7 @@ // // The Library classes this module consumes // +#include #include #include #include @@ -461,6 +462,27 @@ DebugDumpCmos ( } +VOID +S3Verification ( + VOID + ) +{ +#if defined (MDE_CPU_X64) + if (FeaturePcdGet (PcdSmmSmramRequire) && mS3Supported) { + DEBUG ((EFI_D_ERROR, + "%a: S3Resume2Pei doesn't support X64 PEI + SMM yet.\n", __FUNCTION__)); + DEBUG ((EFI_D_ERROR, + "%a: Please disable S3 on the QEMU command line (see the README),\n", + __FUNCTION__)); + DEBUG ((EFI_D_ERROR, + "%a: or build OVMF with \"OvmfPkgIa32X64.dsc\".\n", __FUNCTION__)); + ASSERT (FALSE); + CpuDeadLoop (); + } +#endif +} + + /** Perform Platform PEI initialization. @@ -488,6 +510,7 @@ InitializePlatform ( mS3Supported = TRUE; } + S3Verification (); BootModeInitialization (); AddressWidthInitialization (); diff --git a/OvmfPkg/PlatformPei/PlatformPei.inf b/OvmfPkg/PlatformPei/PlatformPei.inf index dc7729309b..11b3865292 100644 --- a/OvmfPkg/PlatformPei/PlatformPei.inf +++ b/OvmfPkg/PlatformPei/PlatformPei.inf @@ -47,6 +47,7 @@ gEfiXenInfoGuid [LibraryClasses] + BaseLib DebugLib HobLib IoLib diff --git a/OvmfPkg/README b/OvmfPkg/README index 0f70fa7359..e6137ddc1f 100644 --- a/OvmfPkg/README +++ b/OvmfPkg/README @@ -170,11 +170,6 @@ can be used on Windows. -global ICH9-LPC.disable_s3=1 \ -Dependent on the development status of the -"UefiCpuPkg/Universal/Acpi/S3Resume2Pei" module, S3 resume may not work in -OvmfPkg/OvmfPkgX64.dsc builds. In such cases, OvmfPkg/OvmfPkgIa32X64.dsc is -recommended for running X64 guests. - === Network Support === OVMF provides a UEFI network stack by default. Its lowest level driver is the