The previous patch ensures that the LockBox is protected during DXE (but the OS can still drop it) if S3 is unsupported or disabled. However, S3 related drivers not only save data in the lockbox, they allocate objects with Reserved and AcpiNVS memory types too, which the OS can't (must not) release. This is a waste when S3 is unsupported or disabled. In OVMF a good "choke point" for these drivers is the entry point of AcpiS3SaveDxe. The messages of the following commits are relevant to the data and control flow: - SVN r15290 (git commit 8f5ca05b) - SVN r15305 (git commit 5a217a06) - SVN r15306 (git commit d4ba06df) Prevent AcpiS3SaveDxe from loading when S3 is unsupported or disabled. This should keep away (most of the) dependent drivers too. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Tested-by: Matt Fleming <matt.fleming@intel.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15419 6f19259b-4bc3-4df7-8a09-765794883524
82 lines
2.9 KiB
INI
82 lines
2.9 KiB
INI
## @file
|
|
# Component description file for AcpiS3Save module.
|
|
#
|
|
# This is an implementation of the ACPI S3 Save protocol.
|
|
# Copyright (c) 2006 - 2011, Intel Corporation. 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 = AcpiS3SaveDxe
|
|
FILE_GUID = 6B79BBC0-26B9-4FE9-B631-551D8AB078C6
|
|
MODULE_TYPE = DXE_DRIVER
|
|
VERSION_STRING = 1.0
|
|
|
|
ENTRY_POINT = InstallAcpiS3Save
|
|
|
|
#
|
|
# The following information is for reference only and not required by the build tools.
|
|
#
|
|
# VALID_ARCHITECTURES = IA32 X64
|
|
#
|
|
|
|
[Sources]
|
|
AcpiS3Save.h
|
|
AcpiS3Save.c
|
|
|
|
[Packages]
|
|
MdePkg/MdePkg.dec
|
|
MdeModulePkg/MdeModulePkg.dec
|
|
IntelFrameworkPkg/IntelFrameworkPkg.dec
|
|
IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec
|
|
OvmfPkg/OvmfPkg.dec
|
|
|
|
[LibraryClasses]
|
|
PcdLib
|
|
UefiRuntimeServicesTableLib
|
|
UefiBootServicesTableLib
|
|
UefiDriverEntryPoint
|
|
BaseMemoryLib
|
|
HobLib
|
|
UefiLib
|
|
LockBoxLib
|
|
DebugLib
|
|
DxeServicesLib
|
|
QemuFwCfgLib
|
|
|
|
[Guids]
|
|
gEfiAcpiVariableGuid # ALWAYS_CONSUMED
|
|
gEfiAcpiS3ContextGuid # ALWAYS_CONSUMED
|
|
gEfiAcpi20TableGuid # ALWAYS_CONSUMED System Table
|
|
gEfiAcpi10TableGuid # ALWAYS_CONSUMED System Table
|
|
|
|
[Protocols]
|
|
gEfiAcpiS3SaveProtocolGuid # PROTOCOL ALWAYS_PRODUCED
|
|
gEfiLockBoxProtocolGuid # PROTOCOL ALWAYS_PRODUCED
|
|
gEfiLegacyBiosProtocolGuid # PROTOCOL ALWAYS_CONSUMED
|
|
gEfiLegacyRegion2ProtocolGuid # PROTOCOL SOMETIMES_CONSUMED
|
|
gFrameworkEfiMpServiceProtocolGuid # PROTOCOL SOMETIMES_CONSUMED
|
|
gEfiS3SaveStateProtocolGuid # PROTOCOL ALWAYS_CONSUMED
|
|
gEfiDxeSmmReadyToLockProtocolGuid # PROTOCOL ALWAYS_CONSUMED
|
|
|
|
[FeaturePcd]
|
|
gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdPlatformCsmSupport ## CONSUMES
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode
|
|
|
|
[Pcd]
|
|
gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdS3AcpiReservedMemorySize ## CONSUMES
|
|
gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdS3BootScriptStackSize ## CONSUMES
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdUse1GPageTable
|
|
|
|
[Depex]
|
|
gEfiVariableArchProtocolGuid AND gEfiVariableWriteArchProtocolGuid AND gEfiS3SaveStateProtocolGuid
|