mirror of
https://github.com/acidanthera/audk.git
synced 2025-08-19 00:28:11 +02:00
In this commit, S3Resume.c wakeup all Aps to run LoadMtrrData for all cpu before transfer to CpuS3.c in smm cpu driver. The MtrrSetting table can be restored by gEdkiiS3MtrrSettingGuid which is saved by lockbox in PEI phase. This can avoid waking up APs in CpuS3.c. Signed-off-by: Dun Tan <dun.tan@intel.com> Reviewed-by: Ray Ni <ray.ni@intel.com> Cc: Rahul Kumar <rahul1.kumar@intel.com> Cc: Gerd Hoffmann <kraxel@redhat.com> Reviewed-by: Jiaxin Wu <jiaxin.wu@intel.com>
105 lines
3.1 KiB
INI
105 lines
3.1 KiB
INI
## @file
|
|
# S3 Resume Module installs EFI_PEI_S3_RESUME2_PPI.
|
|
#
|
|
# This module works with StandAloneBootScriptExecutor to S3 resume to OS.
|
|
# This module will excute the boot script saved during last boot and after that,
|
|
# control is passed to OS waking up handler.
|
|
#
|
|
# Copyright (c) 2010 - 2024, Intel Corporation. All rights reserved.<BR>
|
|
# Copyright (c) 2017, AMD Incorporated. All rights reserved.<BR>
|
|
#
|
|
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
#
|
|
##
|
|
|
|
[Defines]
|
|
INF_VERSION = 0x00010005
|
|
BASE_NAME = S3Resume2Pei
|
|
MODULE_UNI_FILE = S3Resume2Pei.uni
|
|
FILE_GUID = 89E549B0-7CFE-449d-9BA3-10D8B2312D71
|
|
MODULE_TYPE = PEIM
|
|
VERSION_STRING = 1.0
|
|
ENTRY_POINT = PeimS3ResumeEntryPoint
|
|
|
|
#
|
|
# The following information is for reference only and not required by the build tools.
|
|
#
|
|
# VALID_ARCHITECTURES = IA32 X64
|
|
#
|
|
|
|
#
|
|
# This module is not always workable in IA32 and X64 mode. It has below result:
|
|
# when it works with SMM mode:
|
|
# ===============================
|
|
# SMM:used SMM:unused
|
|
# PEI:IA32 works works
|
|
# PEI:X64 fails works
|
|
# ===============================
|
|
#
|
|
|
|
[Sources]
|
|
S3Resume.c
|
|
|
|
[Sources.IA32]
|
|
Ia32/AsmFuncs.nasm
|
|
|
|
[Sources.X64]
|
|
X64/AsmFuncs.nasm
|
|
|
|
[Packages]
|
|
MdePkg/MdePkg.dec
|
|
MdeModulePkg/MdeModulePkg.dec
|
|
UefiCpuPkg/UefiCpuPkg.dec
|
|
|
|
[LibraryClasses]
|
|
PeiServicesTablePointerLib
|
|
PerformanceLib
|
|
HobLib
|
|
PeiServicesLib
|
|
PeimEntryPoint
|
|
BaseLib
|
|
DebugLib
|
|
PcdLib
|
|
IoLib
|
|
BaseMemoryLib
|
|
MemoryAllocationLib
|
|
DebugAgentLib
|
|
LocalApicLib
|
|
ReportStatusCodeLib
|
|
LockBoxLib
|
|
MtrrLib
|
|
|
|
[Guids]
|
|
gEfiBootScriptExecutorVariableGuid ## SOMETIMES_CONSUMES ## UNDEFINED # LockBox
|
|
gEfiBootScriptExecutorContextGuid ## SOMETIMES_CONSUMES ## UNDEFINED # LockBox
|
|
## SOMETIMES_CONSUMES ## HOB
|
|
## SOMETIMES_CONSUMES ## UNDEFINED # LockBox
|
|
gEfiAcpiVariableGuid
|
|
gEfiAcpiS3ContextGuid ## SOMETIMES_CONSUMES ## UNDEFINED # LockBox
|
|
gEdkiiEndOfS3ResumeGuid ## SOMETIMES_CONSUMES ## UNDEFINED # Used to do smm communication
|
|
## SOMETIMES_PRODUCES ## UNDEFINED # Install PPI
|
|
## SOMETIMES_CONSUMES ## UNDEFINED # Used to do smm communication
|
|
gEdkiiS3SmmInitDoneGuid
|
|
gEdkiiS3MtrrSettingGuid
|
|
|
|
[Ppis]
|
|
gEfiPeiS3Resume2PpiGuid ## PRODUCES
|
|
gPeiSmmAccessPpiGuid ## SOMETIMES_CONSUMES
|
|
gPeiPostScriptTablePpiGuid ## SOMETIMES_PRODUCES
|
|
gEfiEndOfPeiSignalPpiGuid ## SOMETIMES_PRODUCES
|
|
gEfiPeiSmmCommunicationPpiGuid ## SOMETIMES_CONSUMES
|
|
gEdkiiPeiMpServices2PpiGuid ## SOMETIMES_CONSUMES
|
|
|
|
[FeaturePcd]
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode ## CONSUMES
|
|
|
|
[Pcd]
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdUse1GPageTable ## SOMETIMES_CONSUMES
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdPteMemoryEncryptionAddressOrMask ## CONSUMES
|
|
|
|
[Depex]
|
|
TRUE
|
|
|
|
[UserExtensions.TianoCore."ExtraFiles"]
|
|
S3Resume2PeiExtra.uni
|