V5:
1. Add ASSERT to indicate this assumption that environment is 32 bit mode.
2. Add description in INF about this driver's expected result
in different environment.
V4:
Only disable paging when it is enabled.
V3 changes:
No need to change inf file.
V2 changes:
Only disable paging in 32 bit mode, no matter it is enable or not.
V1 changes:
PEI Stack Guard needs to enable paging. This might cause #GP if code
trying to write CR3 register with PML4 page table while the processor
is enabled with PAE paging.
Simply disabling paging before updating CR3 can solve this conflict.
It's an regression caused by change: 0a0d5296e4
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=1232
Cc: Ruiyu Ni <ruiyu.ni@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Cc: Jian J Wang <jian.j.wang@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com>
Regression-tested-by: Laszlo Ersek <lersek@redhat.com>
109 lines
3.5 KiB
INI
109 lines
3.5 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 - 2018, Intel Corporation. All rights reserved.<BR>
|
|
# Copyright (c) 2017, AMD Incorporated. All rights reserved.<BR>
|
|
#
|
|
# This program and the accompanying materials are
|
|
# licensed and made available under the terms and conditions of the BSD License
|
|
# which accompanies this distribution. The full text of the license may be found at
|
|
# http://opensource.org/licenses/bsd-license.php
|
|
#
|
|
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|
#
|
|
##
|
|
|
|
[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
|
|
|
|
[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
|
|
|
|
[Ppis]
|
|
gEfiPeiS3Resume2PpiGuid ## PRODUCES
|
|
gPeiSmmAccessPpiGuid ## SOMETIMES_CONSUMES
|
|
gPeiPostScriptTablePpiGuid ## SOMETIMES_PRODUCES
|
|
gEfiEndOfPeiSignalPpiGuid ## SOMETIMES_PRODUCES
|
|
gEfiPeiSmmCommunicationPpiGuid ## SOMETIMES_CONSUMES
|
|
|
|
[FeaturePcd]
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode ## CONSUMES
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdFrameworkCompatibilitySupport ## CONSUMES
|
|
|
|
[Pcd]
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdUse1GPageTable ## SOMETIMES_CONSUMES
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdPteMemoryEncryptionAddressOrMask ## CONSUMES
|
|
|
|
[Depex]
|
|
TRUE
|
|
|
|
[UserExtensions.TianoCore."ExtraFiles"]
|
|
S3Resume2PeiExtra.uni
|