mirror of https://github.com/acidanthera/audk.git
OvmfPkg: build CpuS3DataDxe for -D SMM_REQUIRE
The PiSmmCpuDxeSmm driver from UefiCpuPkg depends on the ACPI_CPU_DATA structure -- created by a platform- and CPU-specific driver -- in order to support ACPI S3. The address of this structure is communicated through the dynamic PCD PcdCpuS3DataAddress. The "UefiCpuPkg/Include/AcpiCpuData.h" header file documents the fields of this structure in detail. The simple/generic "UefiCpuPkg/CpuS3DataDxe" driver creates and populates the structure in a conformant way, and it co-operates well with PiSmmCpuDxeSmm, for OVMF's purposes. PlatformBdsLib CpuS3DataDxe PiSmmCpuDxeSmm S3Resume2Pei (DXE_DRIVER) (DXE_DRIVER) (DXE_SMM_DRIVER) (PEIM) -------------- --------------- ---------------- -------------- normal collects data boot except MTRR settings into ACPI_CPU_DATA sets PcdCpuS3Da... signals End-of-Dxe | +----------> collects MTRR settings into ACPI_CPU_DATA installs [Dxe]Smm ReadyToLock | +---------------------------> fetches PcdCpuS3Dat... copies ACPI_CPU_DATA into SMRAM runtime S3 suspend S3 transfers resume control to PiSmmCpuDxe... | uses <----+ ACPI_CPU_DATA from SMRAM Cc: Jordan Justen <jordan.l.justen@intel.com> Cc: Michael Kinney <michael.d.kinney@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Michael Kinney <michael.d.kinney@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19060 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
bb0f18b0bc
commit
92b87f1c8c
|
@ -686,6 +686,7 @@
|
|||
!if $(SMM_REQUIRE) == TRUE
|
||||
OvmfPkg/SmmAccess/SmmAccess2Dxe.inf
|
||||
OvmfPkg/SmmControl2Dxe/SmmControl2Dxe.inf
|
||||
UefiCpuPkg/CpuS3DataDxe/CpuS3DataDxe.inf
|
||||
|
||||
#
|
||||
# SMM Initial Program Load (a DXE_RUNTIME_DRIVER)
|
||||
|
|
|
@ -358,6 +358,7 @@ INF OvmfPkg/PlatformDxe/Platform.inf
|
|||
!if $(SMM_REQUIRE) == TRUE
|
||||
INF OvmfPkg/SmmAccess/SmmAccess2Dxe.inf
|
||||
INF OvmfPkg/SmmControl2Dxe/SmmControl2Dxe.inf
|
||||
INF UefiCpuPkg/CpuS3DataDxe/CpuS3DataDxe.inf
|
||||
INF MdeModulePkg/Core/PiSmmCore/PiSmmIpl.inf
|
||||
INF MdeModulePkg/Core/PiSmmCore/PiSmmCore.inf
|
||||
INF UefiCpuPkg/CpuIo2Smm/CpuIo2Smm.inf
|
||||
|
|
|
@ -693,6 +693,7 @@
|
|||
!if $(SMM_REQUIRE) == TRUE
|
||||
OvmfPkg/SmmAccess/SmmAccess2Dxe.inf
|
||||
OvmfPkg/SmmControl2Dxe/SmmControl2Dxe.inf
|
||||
UefiCpuPkg/CpuS3DataDxe/CpuS3DataDxe.inf
|
||||
|
||||
#
|
||||
# SMM Initial Program Load (a DXE_RUNTIME_DRIVER)
|
||||
|
|
|
@ -358,6 +358,7 @@ INF OvmfPkg/PlatformDxe/Platform.inf
|
|||
!if $(SMM_REQUIRE) == TRUE
|
||||
INF OvmfPkg/SmmAccess/SmmAccess2Dxe.inf
|
||||
INF OvmfPkg/SmmControl2Dxe/SmmControl2Dxe.inf
|
||||
INF UefiCpuPkg/CpuS3DataDxe/CpuS3DataDxe.inf
|
||||
INF MdeModulePkg/Core/PiSmmCore/PiSmmIpl.inf
|
||||
INF MdeModulePkg/Core/PiSmmCore/PiSmmCore.inf
|
||||
INF UefiCpuPkg/CpuIo2Smm/CpuIo2Smm.inf
|
||||
|
|
|
@ -691,6 +691,7 @@
|
|||
!if $(SMM_REQUIRE) == TRUE
|
||||
OvmfPkg/SmmAccess/SmmAccess2Dxe.inf
|
||||
OvmfPkg/SmmControl2Dxe/SmmControl2Dxe.inf
|
||||
UefiCpuPkg/CpuS3DataDxe/CpuS3DataDxe.inf
|
||||
|
||||
#
|
||||
# SMM Initial Program Load (a DXE_RUNTIME_DRIVER)
|
||||
|
|
|
@ -358,6 +358,7 @@ INF OvmfPkg/PlatformDxe/Platform.inf
|
|||
!if $(SMM_REQUIRE) == TRUE
|
||||
INF OvmfPkg/SmmAccess/SmmAccess2Dxe.inf
|
||||
INF OvmfPkg/SmmControl2Dxe/SmmControl2Dxe.inf
|
||||
INF UefiCpuPkg/CpuS3DataDxe/CpuS3DataDxe.inf
|
||||
INF MdeModulePkg/Core/PiSmmCore/PiSmmIpl.inf
|
||||
INF MdeModulePkg/Core/PiSmmCore/PiSmmCore.inf
|
||||
INF UefiCpuPkg/CpuIo2Smm/CpuIo2Smm.inf
|
||||
|
|
Loading…
Reference in New Issue