summaryrefslogtreecommitdiff
path: root/OvmfPkg/AcpiS3SaveDxe/AcpiS3SaveDxe.inf
diff options
context:
space:
mode:
authorLaszlo Ersek <lersek@redhat.com>2014-03-04 08:03:31 +0000
committerjljusten <jljusten@6f19259b-4bc3-4df7-8a09-765794883524>2014-03-04 08:03:31 +0000
commit600c74bcd2c7be0d2d3e59364e3b676aa1e0ef7f (patch)
treef06172ba2ee2798e0e88a3d6094ce7ac7875835b /OvmfPkg/AcpiS3SaveDxe/AcpiS3SaveDxe.inf
parent6a7cba79b7b6d58f79a01bf29c900cb3ca6b5187 (diff)
downloadedk2-platforms-600c74bcd2c7be0d2d3e59364e3b676aa1e0ef7f.tar.xz
OvmfPkg: S3 Suspend: import specialized copy of AcpiS3SaveDxe
"IntelFrameworkModulePkg/Universal/Acpi/AcpiS3SaveDxe/AcpiS3SaveDxe.inf" currently specifies a DepEx on gEfiMpServiceProtocolGuid (MP Services). The justification is the following code sequence: InstallAcpiS3Save() if PcdFrameworkCompatibilitySupport is set: InstallAcpiS3SaveThunk() if EFI_MP_SERVICES_PROTOCOL is available: GetVariable(ACPI_GLOBAL_VARIABLE) In English, the AcpiS3SaveDxe driver insists on the presence of MP Services *unconditionally* because, - if PcdFrameworkCompatibilitySupport is set (the default is false), - and MP Services are available (which is constant true under the above condition), then the AcpiS3SaveDxe driver would like to get the ACPI_GLOBAL_VARIABLE variable from the MP Services driver, rather than setting it itself. The DepEx prevents AcpiS3SaveDxe from loading under OvmfPkg, since we provide no MP Services implementation. This is particularly broken since the default PcdFrameworkCompatibilitySupport value is FALSE, making the entire code that would look at EFI_MP_SERVICES_PROTOCOL dead. Copy AcpiS3SaveDxe to OvmfPkg, substitute PcdFrameworkCompatibilitySupport with constant FALSE, and remove all code that becomes dead, including the DepEx. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15302 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'OvmfPkg/AcpiS3SaveDxe/AcpiS3SaveDxe.inf')
-rw-r--r--OvmfPkg/AcpiS3SaveDxe/AcpiS3SaveDxe.inf76
1 files changed, 76 insertions, 0 deletions
diff --git a/OvmfPkg/AcpiS3SaveDxe/AcpiS3SaveDxe.inf b/OvmfPkg/AcpiS3SaveDxe/AcpiS3SaveDxe.inf
new file mode 100644
index 0000000000..169e400c70
--- /dev/null
+++ b/OvmfPkg/AcpiS3SaveDxe/AcpiS3SaveDxe.inf
@@ -0,0 +1,76 @@
+## @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
+
+[LibraryClasses]
+ PcdLib
+ UefiRuntimeServicesTableLib
+ UefiBootServicesTableLib
+ UefiDriverEntryPoint
+ BaseMemoryLib
+ HobLib
+ UefiLib
+ LockBoxLib
+ DebugLib
+ DxeServicesLib
+
+[Guids]
+ gEfiAcpiVariableGuid # ALWAYS_CONSUMED
+ gEfiAcpiS3ContextGuid # ALWAYS_CONSUMED
+ gEfiAcpi20TableGuid # ALWAYS_CONSUMED System Table
+ gEfiAcpi10TableGuid # ALWAYS_CONSUMED System Table
+
+[Protocols]
+ gEfiAcpiS3SaveProtocolGuid # PROTOCOL ALWAYS_PRODUCED
+ gEfiLegacyBiosProtocolGuid # PROTOCOL ALWAYS_CONSUMED
+ gEfiLegacyRegion2ProtocolGuid # PROTOCOL SOMETIMES_CONSUMED
+ gFrameworkEfiMpServiceProtocolGuid # PROTOCOL SOMETIMES_CONSUMED
+
+[FeaturePcd]
+ gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdPlatformCsmSupport ## CONSUMES
+ gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode
+
+[Pcd]
+ gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdS3AcpiReservedMemorySize ## CONSUMES
+ gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdS3BootScriptStackSize ## CONSUMES
+ gEfiMdeModulePkgTokenSpaceGuid.PcdUse1GPageTable
+
+[Depex]
+ gEfiVariableArchProtocolGuid AND gEfiVariableWriteArchProtocolGuid