summaryrefslogtreecommitdiff
path: root/MdeModulePkg/Universal/Acpi/S3SaveStateDxe/S3SaveState.c
diff options
context:
space:
mode:
authorStar Zeng <star.zeng@intel.com>2016-04-07 18:19:26 +0800
committerLaszlo Ersek <lersek@redhat.com>2016-04-07 17:32:03 +0200
commitbd890a737bc1731103f6c7856220b4b5139d30ac (patch)
tree8f4819f819663a25d242edc69da0edcd7f74c17e /MdeModulePkg/Universal/Acpi/S3SaveStateDxe/S3SaveState.c
parent125e093876414028582132147dc1372ae420dbff (diff)
downloadedk2-platforms-bd890a737bc1731103f6c7856220b4b5139d30ac.tar.xz
MdeModulePkg S3SaveStateDxe: Move S3Ready() functional code from AcpiS3SaveDxe
The S3Ready() functional code in AcpiS3SaveDxe of IntelFrameworkModulePkg is to do ACPI S3 Context save. In fact, that is not really related to Intel framework ACPI S3 protocol. IntelFrameworkModulePkg will be deprecated step by step, so move the functional code to MdeModulePkg and S3SaveStateDxe is a good place. The ACPI global variable related code is leaved as is in IntelFrameworkModulePkg AcpiS3SaveDxe for compatibility. PcdS3BootScriptStackSize is also moved from IntelFrameworkModulePkg. The functional code need to get ACPI FACS table and consume LockBoxLib, so need to be before DxeSmmReadyToLock that will shut down SMM lock box interface, EndOfDxe is a good point (OVMF AcpiS3SaveDxe has the reference implementation). Cc: Jiewen Yao <jiewen.yao@intel.com> Cc: Feng Tian <feng.tian@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Star Zeng <star.zeng@intel.com> Reviewed-by: Jiewen Yao <jiewen.yao@intel.com> Tested-by: Laszlo Ersek <lersek@redhat.com>
Diffstat (limited to 'MdeModulePkg/Universal/Acpi/S3SaveStateDxe/S3SaveState.c')
-rw-r--r--MdeModulePkg/Universal/Acpi/S3SaveStateDxe/S3SaveState.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/MdeModulePkg/Universal/Acpi/S3SaveStateDxe/S3SaveState.c b/MdeModulePkg/Universal/Acpi/S3SaveStateDxe/S3SaveState.c
index ddf856ec48..e86d39e678 100644
--- a/MdeModulePkg/Universal/Acpi/S3SaveStateDxe/S3SaveState.c
+++ b/MdeModulePkg/Universal/Acpi/S3SaveStateDxe/S3SaveState.c
@@ -906,11 +906,23 @@ InitializeS3SaveState (
IN EFI_SYSTEM_TABLE *SystemTable
)
{
+ EFI_STATUS Status;
+ EFI_EVENT EndOfDxeEvent;
if (!PcdGetBool (PcdAcpiS3Enable)) {
return EFI_UNSUPPORTED;
}
+ Status = gBS->CreateEventEx (
+ EVT_NOTIFY_SIGNAL,
+ TPL_CALLBACK,
+ AcpiS3ContextSaveOnEndOfDxe,
+ NULL,
+ &gEfiEndOfDxeEventGroupGuid,
+ &EndOfDxeEvent
+ );
+ ASSERT_EFI_ERROR (Status);
+
return gBS->InstallProtocolInterface (
&mHandle,
&gEfiS3SaveStateProtocolGuid,