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/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-