From 155f9d424c549356688021881377a55fc99dacf5 Mon Sep 17 00:00:00 2001 From: Ard Biesheuvel Date: Sun, 26 Jul 2015 08:02:19 +0000 Subject: IntelFrameworkModulePkg/GenericBdsLib: remove AcpiS3->S3Save() call The AcpiS3->S3Save() call needs to occur before the end-of-DXE event is signalled. The end-of-DXE event needs to be signalled prior to invoking any UEFI drivers, applications, or connecting consoles. This means the call to S3Save() that occurs in BdsLibBootViaBootOption() violates the ordering constraints, and should be removed. Since it is the responsibility of the platform BDS to signal the end-of-DXE event, it should also perform the AcpiS3->S3Save() call at an appropriate time. Commit message update from Laszlo Ersek : Following Jiewen Yao's idea in http://thread.gmane.org/gmane.comp.bios.tianocore.devel/16088/focus=16146 platforms that (1) use this exact instance of GenericBdsLib, *and* (2) support S3 should now collect the S3 state (3) in an End-of-Dxe callback in their AcpiS3SaveDxe drivers, *or* (4) with an explicit AcpiS3->S3Save() call made to their AcpiS3SaveDxe drivers from their PlatformBdsLib instances. OvmfPkg, which uses this GenericBdsLib instance, and has its own AcpiS3SaveDxe fork, follows (3). Vlv2TbltDevicePkg, which has a GenericBdsLib fork, and uses IntelFrameworkModulePkg/Universal/Acpi/AcpiS3SaveDxe, follows (4). There are no other platforms in the public edk2 repository that support S3. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ard Biesheuvel Reviewed-by: Laszlo Ersek Reviewed-by: Jiewen Yao [lersek@redhat.com: updated commit message] Cc: Ard Biesheuvel Cc: Jeff Fan Cc: Jiewen Yao Signed-off-by: Laszlo Ersek git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18036 6f19259b-4bc3-4df7-8a09-765794883524 --- IntelFrameworkModulePkg/Library/GenericBdsLib/BdsBoot.c | 10 ---------- .../Library/GenericBdsLib/GenericBdsLib.inf | 1 - IntelFrameworkModulePkg/Library/GenericBdsLib/InternalBdsLib.h | 1 - 3 files changed, 12 deletions(-) (limited to 'IntelFrameworkModulePkg') diff --git a/IntelFrameworkModulePkg/Library/GenericBdsLib/BdsBoot.c b/IntelFrameworkModulePkg/Library/GenericBdsLib/BdsBoot.c index e02a71015e..4b7eca7bbd 100644 --- a/IntelFrameworkModulePkg/Library/GenericBdsLib/BdsBoot.c +++ b/IntelFrameworkModulePkg/Library/GenericBdsLib/BdsBoot.c @@ -2233,22 +2233,12 @@ BdsLibBootViaBootOption ( EFI_DEVICE_PATH_PROTOCOL *FilePath; EFI_LOADED_IMAGE_PROTOCOL *ImageInfo; EFI_DEVICE_PATH_PROTOCOL *WorkingDevicePath; - EFI_ACPI_S3_SAVE_PROTOCOL *AcpiS3Save; LIST_ENTRY TempBootLists; EFI_BOOT_LOGO_PROTOCOL *BootLogo; *ExitDataSize = 0; *ExitData = NULL; - // - // Notes: this code can be remove after the s3 script table - // hook on the event EVT_SIGNAL_READY_TO_BOOT or - // EVT_SIGNAL_LEGACY_BOOT - // - Status = gBS->LocateProtocol (&gEfiAcpiS3SaveProtocolGuid, NULL, (VOID **) &AcpiS3Save); - if (!EFI_ERROR (Status)) { - AcpiS3Save->S3Save (AcpiS3Save, NULL); - } // // If it's Device Path that starts with a hard drive path, append it with the front part to compose a // full device path diff --git a/IntelFrameworkModulePkg/Library/GenericBdsLib/GenericBdsLib.inf b/IntelFrameworkModulePkg/Library/GenericBdsLib/GenericBdsLib.inf index 5381e331ff..5a138a9169 100644 --- a/IntelFrameworkModulePkg/Library/GenericBdsLib/GenericBdsLib.inf +++ b/IntelFrameworkModulePkg/Library/GenericBdsLib/GenericBdsLib.inf @@ -119,7 +119,6 @@ gEfiLegacyBiosProtocolGuid ## SOMETIMES_CONSUMES gEfiCpuArchProtocolGuid ## CONSUMES gEfiDevicePathProtocolGuid ## CONSUMES - gEfiAcpiS3SaveProtocolGuid ## SOMETIMES_CONSUMES gEfiGraphicsOutputProtocolGuid ## SOMETIMES_CONSUMES gEfiUgaDrawProtocolGuid |gEfiMdePkgTokenSpaceGuid.PcdUgaConsumeSupport ## SOMETIMES_CONSUMES gEfiOEMBadgingProtocolGuid ## SOMETIMES_CONSUMES diff --git a/IntelFrameworkModulePkg/Library/GenericBdsLib/InternalBdsLib.h b/IntelFrameworkModulePkg/Library/GenericBdsLib/InternalBdsLib.h index c32579bfc5..7201d8a335 100644 --- a/IntelFrameworkModulePkg/Library/GenericBdsLib/InternalBdsLib.h +++ b/IntelFrameworkModulePkg/Library/GenericBdsLib/InternalBdsLib.h @@ -33,7 +33,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. #include #include #include -#include #include #include #include -- cgit v1.2.3