[edk2-devel] [PATCH v1 0/5] MinPlatform: Implement S3 resume feature

Benjamin Doron posted 5 patches 1 year, 9 months ago
Failed in applying to current master (apply log)
Features/Intel/PowerManagement/S3FeaturePkg/Include/PostMemory.fdf                                                             |  14 +
Features/Intel/PowerManagement/S3FeaturePkg/Include/PreMemory.fdf                                                              |   8 +-
Features/Intel/PowerManagement/S3FeaturePkg/Include/S3Feature.dsc                                                              |  56 ++-
Features/Intel/PowerManagement/S3FeaturePkg/S3Pei/S3Pei.c                                                                      |  83 +++-
Features/Intel/PowerManagement/S3FeaturePkg/S3Pei/S3Pei.inf                                                                    |   8 +-
Platform/Intel/KabylakeOpenBoardPkg/AspireVn7Dash572G/FspWrapper/Library/PeiSiliconPolicyUpdateLibFsp/PeiFspMiscUpdUpdateLib.c |  12 +-
Platform/Intel/KabylakeOpenBoardPkg/AspireVn7Dash572G/FspWrapper/Library/PeiSiliconPolicyUpdateLibFsp/PeiSaPolicyUpdate.c      |  12 +-
Platform/Intel/KabylakeOpenBoardPkg/AspireVn7Dash572G/Library/BoardInitLib/PeiAspireVn7Dash572GInitPreMemLib.c                 |  84 ++--
Platform/Intel/KabylakeOpenBoardPkg/AspireVn7Dash572G/Library/BoardInitLib/PeiBoardInitPreMemLib.inf                           |   4 +-
Platform/Intel/KabylakeOpenBoardPkg/AspireVn7Dash572G/Policy/Library/PeiSiliconPolicyUpdateLib/PeiSiliconPolicyUpdateLib.c     |  11 +-
Platform/Intel/KabylakeOpenBoardPkg/GalagoPro3/OpenBoardPkg.dsc                                                                |   1 +
Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/OpenBoardPkg.dsc                                                              |   1 +
Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/AcpiPlatform.c                                                                   | 133 ++++++
Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/AcpiPlatform.h                                                                   |   4 +
Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/AcpiPlatform.inf                                                                 |   6 +
Platform/Intel/MinPlatformPkg/FspWrapper/Library/PeiFspWrapperHobProcessLib/FspWrapperHobProcessLib.c                          |  70 +++-
Platform/Intel/MinPlatformPkg/FspWrapper/Library/PeiFspWrapperHobProcessLib/PeiFspWrapperHobProcessLib.inf                     |   2 +
Platform/Intel/MinPlatformPkg/Include/AcpiS3MemoryNvData.h                                                                     |  22 +
Platform/Intel/MinPlatformPkg/Include/Dsc/CorePeiInclude.dsc                                                                   |   4 +
Platform/Intel/MinPlatformPkg/Include/Fdf/CorePostMemoryInclude.fdf                                                            |   4 +
Silicon/Intel/CoffeelakeSiliconPkg/Library/BaseIntelCompatShimLibCfl/BaseIntelCompatShimLibCfl.c                               |  28 ++
Silicon/Intel/CoffeelakeSiliconPkg/Library/BaseIntelCompatShimLibCfl/BaseIntelCompatShimLibCfl.inf                             |  24 ++
Silicon/Intel/IntelSiliconPkg/Feature/SmmAccess/Library/PeiSmmAccessLibSmramc/PeiSmmAccessLib.c                                | 425 ++++++++++++++++++++
Silicon/Intel/IntelSiliconPkg/Feature/SmmAccess/Library/PeiSmmAccessLibSmramc/PeiSmmAccessLib.inf                              |  42 ++
Silicon/Intel/IntelSiliconPkg/Feature/SmmControl/Library/PeiSmmControlLib/PeiSmmControlLib.c                                   | 304 ++++++++++++++
Silicon/Intel/IntelSiliconPkg/Feature/SmmControl/Library/PeiSmmControlLib/PeiSmmControlLib.inf                                 |  36 ++
Silicon/Intel/IntelSiliconPkg/Include/Library/IntelCompatShimLib.h                                                             |  23 ++
Silicon/Intel/IntelSiliconPkg/Include/Library/SmmControlLib.h                                                                  |  26 ++
Silicon/Intel/IntelSiliconPkg/IntelSiliconPkg.dec                                                                              |   4 +
Silicon/Intel/KabylakeSiliconPkg/Library/BaseIntelCompatShimLibKbl/BaseIntelCompatShimLibKbl.c                                 |  27 ++
Silicon/Intel/KabylakeSiliconPkg/Library/BaseIntelCompatShimLibKbl/BaseIntelCompatShimLibKbl.inf                               |  24 ++
31 files changed, 1462 insertions(+), 40 deletions(-)
create mode 100644 Platform/Intel/MinPlatformPkg/Include/AcpiS3MemoryNvData.h
create mode 100644 Silicon/Intel/CoffeelakeSiliconPkg/Library/BaseIntelCompatShimLibCfl/BaseIntelCompatShimLibCfl.c
create mode 100644 Silicon/Intel/CoffeelakeSiliconPkg/Library/BaseIntelCompatShimLibCfl/BaseIntelCompatShimLibCfl.inf
create mode 100644 Silicon/Intel/IntelSiliconPkg/Feature/SmmAccess/Library/PeiSmmAccessLibSmramc/PeiSmmAccessLib.c
create mode 100644 Silicon/Intel/IntelSiliconPkg/Feature/SmmAccess/Library/PeiSmmAccessLibSmramc/PeiSmmAccessLib.inf
create mode 100644 Silicon/Intel/IntelSiliconPkg/Feature/SmmControl/Library/PeiSmmControlLib/PeiSmmControlLib.c
create mode 100644 Silicon/Intel/IntelSiliconPkg/Feature/SmmControl/Library/PeiSmmControlLib/PeiSmmControlLib.inf
create mode 100644 Silicon/Intel/IntelSiliconPkg/Include/Library/IntelCompatShimLib.h
create mode 100644 Silicon/Intel/IntelSiliconPkg/Include/Library/SmmControlLib.h
create mode 100644 Silicon/Intel/KabylakeSiliconPkg/Library/BaseIntelCompatShimLibKbl/BaseIntelCompatShimLibKbl.c
create mode 100644 Silicon/Intel/KabylakeSiliconPkg/Library/BaseIntelCompatShimLibKbl/BaseIntelCompatShimLibKbl.inf
[edk2-devel] [PATCH v1 0/5] MinPlatform: Implement S3 resume feature
Posted by Benjamin Doron 1 year, 9 months ago
Implement S3 resume as an advanced feature to support additional
use-cases and improve portability and battery, particularly on mobile
platforms. Hopefully, this can encourage a greater MinPlatform community
and produce more competitive open-source firmware options too.

The intention is for the S3 feature to be supported on as many silicon
platforms as possible. Presently, this requires more thought to design
the solution, though I tentatively think it would work in many cases.

This comprises my primary project for GSoC 2022. This is a demonstration
of my progress thus-far. Some code remains in my working directory to
be submitted soon.

Some of those patches surround my board's debugging setup. It should be
noted that BootScriptExecutorDxe occupies a unique place here: It's a
DXE_DRIVER, but no BootServices can be used for debug logs (and RSC is
at exit-BS, as noted).

Tested on the AspireVn7Dash572G board (Skylake/Kabylake). S3 resume
back into to the OS is successful. This is a work in-progress, so more
debugging and security testing may still be needed.

Benjamin Doron (5):
  IntelSiliconPkg/Feature/PeiSmmAccessLibSmramc: Implement chipset
    support
  Silicon/Intel: Port SMM Control protocol to PPI for S3
  S3FeaturePkg: Implement S3 resume
  [WIP] MinPlatformPkg: Implement S3 resume
  [WIP] KabylakeOpenBoardPkg: Example of board S3

 Features/Intel/PowerManagement/S3FeaturePkg/Include/PostMemory.fdf                                                             |  14 +
 Features/Intel/PowerManagement/S3FeaturePkg/Include/PreMemory.fdf                                                              |   8 +-
 Features/Intel/PowerManagement/S3FeaturePkg/Include/S3Feature.dsc                                                              |  56 ++-
 Features/Intel/PowerManagement/S3FeaturePkg/S3Pei/S3Pei.c                                                                      |  83 +++-
 Features/Intel/PowerManagement/S3FeaturePkg/S3Pei/S3Pei.inf                                                                    |   8 +-
 Platform/Intel/KabylakeOpenBoardPkg/AspireVn7Dash572G/FspWrapper/Library/PeiSiliconPolicyUpdateLibFsp/PeiFspMiscUpdUpdateLib.c |  12 +-
 Platform/Intel/KabylakeOpenBoardPkg/AspireVn7Dash572G/FspWrapper/Library/PeiSiliconPolicyUpdateLibFsp/PeiSaPolicyUpdate.c      |  12 +-
 Platform/Intel/KabylakeOpenBoardPkg/AspireVn7Dash572G/Library/BoardInitLib/PeiAspireVn7Dash572GInitPreMemLib.c                 |  84 ++--
 Platform/Intel/KabylakeOpenBoardPkg/AspireVn7Dash572G/Library/BoardInitLib/PeiBoardInitPreMemLib.inf                           |   4 +-
 Platform/Intel/KabylakeOpenBoardPkg/AspireVn7Dash572G/Policy/Library/PeiSiliconPolicyUpdateLib/PeiSiliconPolicyUpdateLib.c     |  11 +-
 Platform/Intel/KabylakeOpenBoardPkg/GalagoPro3/OpenBoardPkg.dsc                                                                |   1 +
 Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/OpenBoardPkg.dsc                                                              |   1 +
 Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/AcpiPlatform.c                                                                   | 133 ++++++
 Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/AcpiPlatform.h                                                                   |   4 +
 Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/AcpiPlatform.inf                                                                 |   6 +
 Platform/Intel/MinPlatformPkg/FspWrapper/Library/PeiFspWrapperHobProcessLib/FspWrapperHobProcessLib.c                          |  70 +++-
 Platform/Intel/MinPlatformPkg/FspWrapper/Library/PeiFspWrapperHobProcessLib/PeiFspWrapperHobProcessLib.inf                     |   2 +
 Platform/Intel/MinPlatformPkg/Include/AcpiS3MemoryNvData.h                                                                     |  22 +
 Platform/Intel/MinPlatformPkg/Include/Dsc/CorePeiInclude.dsc                                                                   |   4 +
 Platform/Intel/MinPlatformPkg/Include/Fdf/CorePostMemoryInclude.fdf                                                            |   4 +
 Silicon/Intel/CoffeelakeSiliconPkg/Library/BaseIntelCompatShimLibCfl/BaseIntelCompatShimLibCfl.c                               |  28 ++
 Silicon/Intel/CoffeelakeSiliconPkg/Library/BaseIntelCompatShimLibCfl/BaseIntelCompatShimLibCfl.inf                             |  24 ++
 Silicon/Intel/IntelSiliconPkg/Feature/SmmAccess/Library/PeiSmmAccessLibSmramc/PeiSmmAccessLib.c                                | 425 ++++++++++++++++++++
 Silicon/Intel/IntelSiliconPkg/Feature/SmmAccess/Library/PeiSmmAccessLibSmramc/PeiSmmAccessLib.inf                              |  42 ++
 Silicon/Intel/IntelSiliconPkg/Feature/SmmControl/Library/PeiSmmControlLib/PeiSmmControlLib.c                                   | 304 ++++++++++++++
 Silicon/Intel/IntelSiliconPkg/Feature/SmmControl/Library/PeiSmmControlLib/PeiSmmControlLib.inf                                 |  36 ++
 Silicon/Intel/IntelSiliconPkg/Include/Library/IntelCompatShimLib.h                                                             |  23 ++
 Silicon/Intel/IntelSiliconPkg/Include/Library/SmmControlLib.h                                                                  |  26 ++
 Silicon/Intel/IntelSiliconPkg/IntelSiliconPkg.dec                                                                              |   4 +
 Silicon/Intel/KabylakeSiliconPkg/Library/BaseIntelCompatShimLibKbl/BaseIntelCompatShimLibKbl.c                                 |  27 ++
 Silicon/Intel/KabylakeSiliconPkg/Library/BaseIntelCompatShimLibKbl/BaseIntelCompatShimLibKbl.inf                               |  24 ++
 31 files changed, 1462 insertions(+), 40 deletions(-)
 create mode 100644 Platform/Intel/MinPlatformPkg/Include/AcpiS3MemoryNvData.h
 create mode 100644 Silicon/Intel/CoffeelakeSiliconPkg/Library/BaseIntelCompatShimLibCfl/BaseIntelCompatShimLibCfl.c
 create mode 100644 Silicon/Intel/CoffeelakeSiliconPkg/Library/BaseIntelCompatShimLibCfl/BaseIntelCompatShimLibCfl.inf
 create mode 100644 Silicon/Intel/IntelSiliconPkg/Feature/SmmAccess/Library/PeiSmmAccessLibSmramc/PeiSmmAccessLib.c
 create mode 100644 Silicon/Intel/IntelSiliconPkg/Feature/SmmAccess/Library/PeiSmmAccessLibSmramc/PeiSmmAccessLib.inf
 create mode 100644 Silicon/Intel/IntelSiliconPkg/Feature/SmmControl/Library/PeiSmmControlLib/PeiSmmControlLib.c
 create mode 100644 Silicon/Intel/IntelSiliconPkg/Feature/SmmControl/Library/PeiSmmControlLib/PeiSmmControlLib.inf
 create mode 100644 Silicon/Intel/IntelSiliconPkg/Include/Library/IntelCompatShimLib.h
 create mode 100644 Silicon/Intel/IntelSiliconPkg/Include/Library/SmmControlLib.h
 create mode 100644 Silicon/Intel/KabylakeSiliconPkg/Library/BaseIntelCompatShimLibKbl/BaseIntelCompatShimLibKbl.c
 create mode 100644 Silicon/Intel/KabylakeSiliconPkg/Library/BaseIntelCompatShimLibKbl/BaseIntelCompatShimLibKbl.inf

-- 
2.36.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#91751): https://edk2.groups.io/g/devel/message/91751
Mute This Topic: https://groups.io/mt/92559628/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-