Reviewed-by: Michael Kinney <michael.d.kin...@intel.com>

> -----Original Message-----
> From: Laszlo Ersek [mailto:ler...@redhat.com]
> Sent: Thursday, November 26, 2015 6:35 PM
> To: edk2-de...@ml01.01.org
> Cc: Justen, Jordan L <jordan.l.jus...@intel.com>; Kinney, Michael D 
> <michael.d.kin...@intel.com>
> Subject: [PATCH v5 27/33] 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    S3ResumePei
>          (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.jus...@intel.com>
> Cc: Michael Kinney <michael.d.kin...@intel.com>
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Laszlo Ersek <ler...@redhat.com>
> ---
> 
> Notes:
>     v5:
>     - rename patch from
>       "OvmfPkg: build QuarkPort/CpuS3DataDxe for -D SMM_REQUIRE"
>     - get driver from UefiCpuPkg, rather than OvmfPkg/QuarkPort
>     - incorporate data / control flow information in the commit message
>       from:
>       "OvmfPkg: add skeleton QuarkPort/CpuS3DataDxe"
>       "OvmfPkg: QuarkPort/CpuS3DataDxe: fill in ACPI_CPU_DATA.MtrrTable"
> 
>     v3:
>     - new in v3; split out from
>       "OvmfPkg: add skeleton QuarkPort/CpuS3DataDxe".
> 
>  OvmfPkg/OvmfPkgIa32.dsc    | 1 +
>  OvmfPkg/OvmfPkgIa32X64.dsc | 1 +
>  OvmfPkg/OvmfPkgX64.dsc     | 1 +
>  OvmfPkg/OvmfPkgIa32.fdf    | 1 +
>  OvmfPkg/OvmfPkgIa32X64.fdf | 1 +
>  OvmfPkg/OvmfPkgX64.fdf     | 1 +
>  6 files changed, 6 insertions(+)
> 
> diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc
> index 485966a..5a63e5b 100644
> --- a/OvmfPkg/OvmfPkgIa32.dsc
> +++ b/OvmfPkg/OvmfPkgIa32.dsc
> @@ -716,6 +716,7 @@ [Components]
>  !if $(SMM_REQUIRE) == TRUE
>    OvmfPkg/SmmAccess/SmmAccess2Dxe.inf
>    OvmfPkg/SmmControl2Dxe/SmmControl2Dxe.inf
> +  UefiCpuPkg/CpuS3DataDxe/CpuS3DataDxe.inf
> 
>    #
>    # SMM Initial Program Load (a DXE_RUNTIME_DRIVER)
> diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc
> index bd76303..b99a1c0 100644
> --- a/OvmfPkg/OvmfPkgIa32X64.dsc
> +++ b/OvmfPkg/OvmfPkgIa32X64.dsc
> @@ -723,6 +723,7 @@ [Components.X64]
>  !if $(SMM_REQUIRE) == TRUE
>    OvmfPkg/SmmAccess/SmmAccess2Dxe.inf
>    OvmfPkg/SmmControl2Dxe/SmmControl2Dxe.inf
> +  UefiCpuPkg/CpuS3DataDxe/CpuS3DataDxe.inf
> 
>    #
>    # SMM Initial Program Load (a DXE_RUNTIME_DRIVER)
> diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc
> index 653f2a1..cd52bda 100644
> --- a/OvmfPkg/OvmfPkgX64.dsc
> +++ b/OvmfPkg/OvmfPkgX64.dsc
> @@ -721,6 +721,7 @@ [Components]
>  !if $(SMM_REQUIRE) == TRUE
>    OvmfPkg/SmmAccess/SmmAccess2Dxe.inf
>    OvmfPkg/SmmControl2Dxe/SmmControl2Dxe.inf
> +  UefiCpuPkg/CpuS3DataDxe/CpuS3DataDxe.inf
> 
>    #
>    # SMM Initial Program Load (a DXE_RUNTIME_DRIVER)
> diff --git a/OvmfPkg/OvmfPkgIa32.fdf b/OvmfPkg/OvmfPkgIa32.fdf
> index 53ddae3..83702a1 100644
> --- a/OvmfPkg/OvmfPkgIa32.fdf
> +++ b/OvmfPkg/OvmfPkgIa32.fdf
> @@ -358,6 +358,7 @@ [FV.DXEFV]
>  !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
> diff --git a/OvmfPkg/OvmfPkgIa32X64.fdf b/OvmfPkg/OvmfPkgIa32X64.fdf
> index bb7ca6e..1af0c17 100644
> --- a/OvmfPkg/OvmfPkgIa32X64.fdf
> +++ b/OvmfPkg/OvmfPkgIa32X64.fdf
> @@ -358,6 +358,7 @@ [FV.DXEFV]
>  !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
> diff --git a/OvmfPkg/OvmfPkgX64.fdf b/OvmfPkg/OvmfPkgX64.fdf
> index bceab15..224a21c 100644
> --- a/OvmfPkg/OvmfPkgX64.fdf
> +++ b/OvmfPkg/OvmfPkgX64.fdf
> @@ -358,6 +358,7 @@ [FV.DXEFV]
>  !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
> --
> 1.8.3.1
> 

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to