tianocore / edk2

EDK II
https://github.com/tianocore/tianocore.github.io/wiki/EDK-II
Other
4.42k stars 2.4k forks source link

UefiCpuPkg: EndOfS3Resume Handler. #5816

Open xieyuanh opened 3 weeks ago

xieyuanh commented 3 weeks ago

Before the separation of S3 support functionalities from the SMM Core, these features were primarily concentrated within the SMM Core. Initially, the SMM Core's role includes to register the EndOfS3Resume GUID. The EndOfS3 signal is communicated from the None SMM environment to the SMM environment, within the information saved in communication buffer, by triggering the SMI via b2. After that, the registered SMI handler is called, transitioning into the SMM environment, ultimately find the s3 related smi handler and enabling the installation of the GUID.

This patch introduces a new and independent SMM driver, specifically designed to handle tasks related to S3 support. The logic from the above, excluding the communication mechanism, is extracted and implemented in this separate driver.

Cc: Gerd Hoffmann kraxel@redhat.com Cc: Eric Dong eric.dong@intel.com Cc: Ray Ni ray.ni@intel.com Cc: Rahul Kumar rahul1.kumar@intel.com Cc: Tom Lendacky thomas.lendacky@amd.com

Description

<_Include a description of the change and why this change was made._> <_For each item, place an "x" in between `[` and `]` if true. Example: `[x]` (you can also check items in GitHub UI)_> <_Create the PR as a Draft PR if it is only created to run CI checks._> <_Delete lines in \<\> tags before creating the PR._> - [ ] Breaking change? - **Breaking change** - Will this cause a break in build or boot behavior? - Examples: Add a new library class or move a module to a different repo. - [ ] Impacts security? - **Security** - Does the change have a direct security impact? - Examples: Crypto algorithm change or buffer overflow fix. - [ ] Includes tests? - **Tests** - Does the change include any explicit test code? - Examples: Unit tests or integration tests. ## How This Was Tested <_Describe the test(s) that were run to verify the changes._> ## Integration Instructions <_Describe how these changes should be integrated. Use N/A if nothing is required._>