mirror of https://github.com/acidanthera/audk.git
OvmfPkg: S3 Suspend: enable creation/saving of an S3 Boot Script
"MdeModulePkg/Universal/Acpi/S3SaveStateDxe/S3SaveStateDxe.inf" produces the EFI_S3_SAVE_STATE_PROTOCOL which allows creation and saving of an S3 Boot Script, to be replayed in PEI during S3 Resume. The script contains opcodes and opcode arguments to configure CPU, PCI and IO resources. S3SaveStateDxe relies on the S3BootScriptLib library. The Null implementation is not useful for actually saving the boot script, we need the PiDxeS3BootScriptLib instance. The PiDxeS3BootScriptLib library instance depends on LockBoxLib, implemented for OVMF in one of the previous patches. PiDxeS3BootScriptLib also depends on SmbusLib. For now we opt for the Null instance of the latter. It means that SMBus commands in the boot script will have no effect when interpreted during S3 Resume. This should be fine for OvmfPkg and QEMU. EFI_S3_SAVE_STATE_PROTOCOL [S3SaveStateDxe] S3BootScriptLib [PiDxeS3BootScriptLib] SmbusLib [BaseSmbusLibNull] LockBoxLib [OvmfPkg/Library/LockBoxLib] When the EFI_DXE_SMM_READY_TO_LOCK_PROTOCOL is installed by any DXE driver (purely as a form of notification), the S3SaveStateDxe driver saves the boot script to EfiACPIMemoryNVS, and links it into the LockBox. 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@15304 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
389cbceb7f
commit
b017b1b27a
|
@ -121,6 +121,9 @@
|
|||
TpmMeasurementLib|SecurityPkg/Library/DxeTpmMeasurementLib/DxeTpmMeasurementLib.inf
|
||||
!endif
|
||||
|
||||
S3BootScriptLib|MdeModulePkg/Library/PiDxeS3BootScriptLib/DxeS3BootScriptLib.inf
|
||||
SmbusLib|MdePkg/Library/BaseSmbusLibNull/BaseSmbusLibNull.inf
|
||||
|
||||
[LibraryClasses.common]
|
||||
!if $(SECURE_BOOT_ENABLE) == TRUE
|
||||
BaseCryptLib|CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf
|
||||
|
@ -475,6 +478,7 @@
|
|||
OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf
|
||||
OvmfPkg/AcpiTables/AcpiTables.inf
|
||||
OvmfPkg/AcpiS3SaveDxe/AcpiS3SaveDxe.inf
|
||||
MdeModulePkg/Universal/Acpi/S3SaveStateDxe/S3SaveStateDxe.inf
|
||||
|
||||
#
|
||||
# Network Support
|
||||
|
|
|
@ -322,6 +322,7 @@ INF MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf
|
|||
INF OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf
|
||||
INF RuleOverride=ACPITABLE OvmfPkg/AcpiTables/AcpiTables.inf
|
||||
INF OvmfPkg/AcpiS3SaveDxe/AcpiS3SaveDxe.inf
|
||||
INF MdeModulePkg/Universal/Acpi/S3SaveStateDxe/S3SaveStateDxe.inf
|
||||
|
||||
INF RuleOverride = BINARY FatBinPkg/EnhancedFatDxe/Fat.inf
|
||||
|
||||
|
|
|
@ -126,6 +126,9 @@
|
|||
TpmMeasurementLib|SecurityPkg/Library/DxeTpmMeasurementLib/DxeTpmMeasurementLib.inf
|
||||
!endif
|
||||
|
||||
S3BootScriptLib|MdeModulePkg/Library/PiDxeS3BootScriptLib/DxeS3BootScriptLib.inf
|
||||
SmbusLib|MdePkg/Library/BaseSmbusLibNull/BaseSmbusLibNull.inf
|
||||
|
||||
[LibraryClasses.common]
|
||||
!if $(SECURE_BOOT_ENABLE) == TRUE
|
||||
BaseCryptLib|CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf
|
||||
|
@ -482,6 +485,7 @@
|
|||
OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf
|
||||
OvmfPkg/AcpiTables/AcpiTables.inf
|
||||
OvmfPkg/AcpiS3SaveDxe/AcpiS3SaveDxe.inf
|
||||
MdeModulePkg/Universal/Acpi/S3SaveStateDxe/S3SaveStateDxe.inf
|
||||
|
||||
#
|
||||
# Network Support
|
||||
|
|
|
@ -322,6 +322,7 @@ INF MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf
|
|||
INF OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf
|
||||
INF RuleOverride=ACPITABLE OvmfPkg/AcpiTables/AcpiTables.inf
|
||||
INF OvmfPkg/AcpiS3SaveDxe/AcpiS3SaveDxe.inf
|
||||
INF MdeModulePkg/Universal/Acpi/S3SaveStateDxe/S3SaveStateDxe.inf
|
||||
|
||||
INF RuleOverride = BINARY USE = X64 FatBinPkg/EnhancedFatDxe/Fat.inf
|
||||
|
||||
|
|
|
@ -126,6 +126,9 @@
|
|||
TpmMeasurementLib|SecurityPkg/Library/DxeTpmMeasurementLib/DxeTpmMeasurementLib.inf
|
||||
!endif
|
||||
|
||||
S3BootScriptLib|MdeModulePkg/Library/PiDxeS3BootScriptLib/DxeS3BootScriptLib.inf
|
||||
SmbusLib|MdePkg/Library/BaseSmbusLibNull/BaseSmbusLibNull.inf
|
||||
|
||||
[LibraryClasses.common]
|
||||
!if $(SECURE_BOOT_ENABLE) == TRUE
|
||||
BaseCryptLib|CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf
|
||||
|
@ -480,6 +483,7 @@
|
|||
OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf
|
||||
OvmfPkg/AcpiTables/AcpiTables.inf
|
||||
OvmfPkg/AcpiS3SaveDxe/AcpiS3SaveDxe.inf
|
||||
MdeModulePkg/Universal/Acpi/S3SaveStateDxe/S3SaveStateDxe.inf
|
||||
|
||||
#
|
||||
# Network Support
|
||||
|
|
|
@ -322,6 +322,7 @@ INF MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf
|
|||
INF OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf
|
||||
INF RuleOverride=ACPITABLE OvmfPkg/AcpiTables/AcpiTables.inf
|
||||
INF OvmfPkg/AcpiS3SaveDxe/AcpiS3SaveDxe.inf
|
||||
INF MdeModulePkg/Universal/Acpi/S3SaveStateDxe/S3SaveStateDxe.inf
|
||||
|
||||
INF RuleOverride = BINARY FatBinPkg/EnhancedFatDxe/Fat.inf
|
||||
|
||||
|
|
Loading…
Reference in New Issue