We will not be running DXE on S3 resume, so we don't need to do these initialization items: * Reserve EMU Variable memory range * Declare Firmware volumes * Add memory HOBs * MiscInitialization: - Disable A20 Mask - Build CPU hob - Set Power Management Base Address register
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jordan Justen <[email protected]> --- OvmfPkg/PlatformPei/MemDetect.c | 16 ++++++++++------ OvmfPkg/PlatformPei/Platform.c | 18 ++++++++++-------- 2 files changed, 20 insertions(+), 14 deletions(-) diff --git a/OvmfPkg/PlatformPei/MemDetect.c b/OvmfPkg/PlatformPei/MemDetect.c index bf67d7c..bd666c5 100644 --- a/OvmfPkg/PlatformPei/MemDetect.c +++ b/OvmfPkg/PlatformPei/MemDetect.c @@ -147,18 +147,22 @@ MemDetect ( LowerMemorySize = GetSystemMemorySizeBelow4gb (); UpperMemorySize = GetSystemMemorySizeAbove4gb (); - // - // Create memory HOBs - // - AddMemoryRangeHob (BASE_1MB, LowerMemorySize); - AddMemoryRangeHob (0, BASE_512KB + BASE_128KB); + if (mBootMode != BOOT_ON_S3_RESUME) { + // + // Create memory HOBs + // + AddMemoryRangeHob (BASE_1MB, LowerMemorySize); + AddMemoryRangeHob (0, BASE_512KB + BASE_128KB); + } MtrrSetMemoryAttribute (BASE_1MB, LowerMemorySize - BASE_1MB, CacheWriteBack); MtrrSetMemoryAttribute (0, BASE_512KB + BASE_128KB, CacheWriteBack); if (UpperMemorySize != 0) { - AddUntestedMemoryBaseSizeHob (BASE_4GB, UpperMemorySize); + if (mBootMode != BOOT_ON_S3_RESUME) { + AddUntestedMemoryBaseSizeHob (BASE_4GB, UpperMemorySize); + } MtrrSetMemoryAttribute (BASE_4GB, UpperMemorySize, CacheWriteBack); } diff --git a/OvmfPkg/PlatformPei/Platform.c b/OvmfPkg/PlatformPei/Platform.c index 6a40616..b28f6d6 100644 --- a/OvmfPkg/PlatformPei/Platform.c +++ b/OvmfPkg/PlatformPei/Platform.c @@ -443,17 +443,19 @@ InitializePlatform ( InitializeXen (XenLeaf); } - ReserveEmuVariableNvStore (); + if (mBootMode != BOOT_ON_S3_RESUME) { + ReserveEmuVariableNvStore (); - PeiFvInitialization (); + PeiFvInitialization (); - if (XenLeaf != 0) { - XenMemMapInitialization (); - } else { - MemMapInitialization (TopOfMemory); - } + if (XenLeaf != 0) { + XenMemMapInitialization (); + } else { + MemMapInitialization (TopOfMemory); + } - MiscInitialization (); + MiscInitialization (); + } return EFI_SUCCESS; } -- 1.8.5.2 ------------------------------------------------------------------------------ CenturyLink Cloud: The Leader in Enterprise Cloud Services. Learn Why More Businesses Are Choosing CenturyLink Cloud For Critical Workloads, Development Environments & Everything In Between. Get a Quote or Start a Free Trial Today. http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk _______________________________________________ edk2-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/edk2-devel
