X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=OvmfPkg%2FPlatformPei%2FPlatform.c;h=11b4cb7a14800aa75e3f69ba6977092546dfb331;hp=a74d353fd3a3fccc789922f85c59f87499a1bc37;hb=bd386eaf86f1f55dd28d2c5b26a8c80b2a9002a8;hpb=8f5ca05b0d423de6da0208979aa82ccacfa9ce01 diff --git a/OvmfPkg/PlatformPei/Platform.c b/OvmfPkg/PlatformPei/Platform.c index a74d353fd3..11b4cb7a14 100644 --- a/OvmfPkg/PlatformPei/Platform.c +++ b/OvmfPkg/PlatformPei/Platform.c @@ -30,6 +30,7 @@ #include #include #include +#include #include #include #include @@ -59,6 +60,11 @@ EFI_PEI_PPI_DESCRIPTOR mPpiBootMode[] = { }; +EFI_BOOT_MODE mBootMode = BOOT_WITH_FULL_CONFIGURATION; + +BOOLEAN mS3Supported = FALSE; + + VOID AddIoMemoryBaseSizeHob ( EFI_PHYSICAL_ADDRESS MemoryBase, @@ -269,16 +275,13 @@ BootModeInitialization ( VOID ) { - EFI_BOOT_MODE BootMode; EFI_STATUS Status; if (CmosRead8 (0xF) == 0xFE) { - BootMode = BOOT_ON_S3_RESUME; - } else { - BootMode = BOOT_WITH_FULL_CONFIGURATION; + mBootMode = BOOT_ON_S3_RESUME; } - Status = PeiServicesSetBootMode (BootMode); + Status = PeiServicesSetBootMode (mBootMode); ASSERT_EFI_ERROR (Status); Status = PeiServicesInstallPpi (mPpiBootMode); @@ -356,6 +359,11 @@ InitializePlatform ( XenDetect (); + if (QemuFwCfgS3Enabled ()) { + DEBUG ((EFI_D_INFO, "S3 support was detected on QEMU\n")); + mS3Supported = TRUE; + } + BootModeInitialization (); PublishPeiMemory (); @@ -367,11 +375,13 @@ InitializePlatform ( InitializeXen (); } - ReserveEmuVariableNvStore (); + if (mBootMode != BOOT_ON_S3_RESUME) { + ReserveEmuVariableNvStore (); - PeiFvInitialization (); + PeiFvInitialization (); - MemMapInitialization (); + MemMapInitialization (); + } MiscInitialization ();