Install gEdkiiEndOfS3ResumeGuid in S3Resume to trigger callback registered by PeiMpLib. The callback is to relocate Ap to new safe memory before jump to OS waking vector in S3 boot flow.
Signed-off-by: Dun Tan <dun....@intel.com> Cc: Ray Ni <ray...@intel.com> Cc: Laszlo Ersek <ler...@redhat.com> Cc: Rahul Kumar <rahul1.ku...@intel.com> Cc: Gerd Hoffmann <kra...@redhat.com> Cc: Jiaxin Wu <jiaxin...@intel.com> --- UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume.c b/UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume.c index a8e9c92a93..98badc74ae 100644 --- a/UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume.c +++ b/UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume.c @@ -260,6 +260,12 @@ EFI_PEI_PPI_DESCRIPTOR mPpiListS3SmmInitDoneTable = { 0 }; +EFI_PEI_PPI_DESCRIPTOR mPpiListEndOfS3ResumeTable = { + (EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST), + &gEdkiiEndOfS3ResumeGuid, + 0 +}; + // // Global Descriptor Table (GDT) // @@ -490,6 +496,13 @@ S3ResumeBootOs ( PERF_INMODULE_BEGIN ("EndOfS3Resume"); DEBUG ((DEBUG_INFO, "Signal EndOfS3Resume\n")); + + // + // Install EndOfS3Resume. + // + Status = PeiServicesInstallPpi (&mPpiListEndOfS3ResumeTable); + ASSERT_EFI_ERROR (Status); + // // Signal EndOfS3Resume to SMM. // -- 2.31.1.windows.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#118799): https://edk2.groups.io/g/devel/message/118799 Mute This Topic: https://groups.io/mt/106018131/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-