audk/IntelFrameworkModulePkg/Library
Ard Biesheuvel 155f9d424c 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 <lersek@redhat.com>:

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 <ard.biesheuvel@linaro.org>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jiewen Yao <Jiewen.Yao@intel.com>
[lersek@redhat.com: updated commit message]
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Jeff Fan <jeff.fan@intel.com>
Cc: Jiewen Yao <Jiewen.Yao@intel.com>
Signed-off-by: Laszlo Ersek <lersek@redhat.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18036 6f19259b-4bc3-4df7-8a09-765794883524
2015-07-26 08:02:19 +00:00
..
BaseUefiTianoCustomDecompressLib IntelFrameworkModulePkg: Fix typo. 2015-03-13 08:05:02 +00:00
DxeCapsuleLib Refine the format of GUID in INF files for IntelFrameworkModulePkg. 2015-01-16 02:23:07 +00:00
DxeReportStatusCodeLibFramework IntelFrameworkModulePkg: Convert non DOS format files to DOS format 2014-09-03 08:45:37 +00:00
GenericBdsLib IntelFrameworkModulePkg/GenericBdsLib: remove AcpiS3->S3Save() call 2015-07-26 08:02:19 +00:00
LegacyBootManagerLib IntelFrameworkModulePkg: Add LegacyBootManagerLib. 2015-05-06 04:50:23 +00:00
LzmaCustomDecompressLib IntelFrameworkModulePkg: Move LzmaDecompress GUID 2015-04-03 02:49:10 +00:00
PeiDxeDebugLibReportStatusCode IntelFrameworkModulePkg PeiDxeDebugLib: Use safe string functions 2015-06-30 06:26:20 +00:00
PeiRecoveryLib IntelFrameworkModulePkg: Convert non DOS format files to DOS format 2014-09-03 08:45:37 +00:00
PeiS3Lib IntelFrameworkModulePkg: Convert non DOS format files to DOS format 2014-09-03 08:45:37 +00:00
PlatformBdsLibNull Removes dead code from the PlatformBdsLibNull,leaving this unused code might confuse the user. 2014-10-14 06:30:17 +00:00
SmmRuntimeDxeReportStatusCodeLibFramework IntelFrameworkModulePkg: Convert non DOS format files to DOS format 2014-09-03 08:45:37 +00:00