From 669291db5a326928b4ab048524eb0ffa7d9a619f Mon Sep 17 00:00:00 2001 From: Dun Tan Date: Mon, 18 Dec 2023 12:21:08 +0800 Subject: UefiCpuPkg: Install gEdkiiEndOfS3ResumeGuid in S3Resume 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 Reviewed-by: Ray Ni Cc: Rahul Kumar Cc: Gerd Hoffmann Reviewed-by: Jiaxin Wu --- UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'UefiCpuPkg') diff --git a/UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume.c b/UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume.c index 078ae2d72d..e6dfa09c71 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. // -- cgit