public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [PATCH v1 0/5] MinPlatform: Implement S3 resume feature
@ 2022-07-23  0:19 Benjamin Doron
  2022-07-23  0:19 ` [PATCH v1 1/5] IntelSiliconPkg/Feature/PeiSmmAccessLibSmramc: Implement chipset support Benjamin Doron
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Benjamin Doron @ 2022-07-23  0:19 UTC (permalink / raw)
  To: devel

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


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2022-07-23  0:22 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-07-23  0:19 [PATCH v1 0/5] MinPlatform: Implement S3 resume feature Benjamin Doron
2022-07-23  0:19 ` [PATCH v1 1/5] IntelSiliconPkg/Feature/PeiSmmAccessLibSmramc: Implement chipset support Benjamin Doron
2022-07-23  0:19 ` [PATCH v1 2/5] Silicon/Intel: Port SMM Control protocol to PPI for S3 Benjamin Doron
2022-07-23  0:19 ` [PATCH v1 3/5] S3FeaturePkg: Implement S3 resume Benjamin Doron
2022-07-23  0:20 ` [PATCH v1 4/5] [WIP] MinPlatformPkg: " Benjamin Doron
2022-07-23  0:20 ` [PATCH v1 5/5] [WIP] KabylakeOpenBoardPkg: Example of board S3 Benjamin Doron

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox