X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=UefiCpuPkg%2FSecCore%2FSecMain.c;fp=UefiCpuPkg%2FSecCore%2FSecMain.c;h=155be49a60117b46bdce57307232a252ed692014;hp=5d5e7f17dced59c9f2253d7b2b14d53cf7784d42;hb=479613bd06546e30652354d5dd76ee7b377fb92c;hpb=60b12e69fb1c8c7180fdda92f008248b9ec83db1 diff --git a/UefiCpuPkg/SecCore/SecMain.c b/UefiCpuPkg/SecCore/SecMain.c index 5d5e7f17dc..155be49a60 100644 --- a/UefiCpuPkg/SecCore/SecMain.c +++ b/UefiCpuPkg/SecCore/SecMain.c @@ -370,13 +370,35 @@ SecTemporaryRamDone ( VOID ) { - BOOLEAN State; + EFI_STATUS Status; + EFI_STATUS Status2; + UINTN Index; + BOOLEAN State; + EFI_PEI_PPI_DESCRIPTOR *PeiPpiDescriptor; + REPUBLISH_SEC_PPI_PPI *RepublishSecPpiPpi; // // Republish Sec Platform Information(2) PPI // RepublishSecPlatformInformationPpi (); + // + // Re-install SEC PPIs using a PEIM produced service if published + // + for (Index = 0, Status = EFI_SUCCESS; Status == EFI_SUCCESS; Index++) { + Status = PeiServicesLocatePpi ( + &gRepublishSecPpiPpiGuid, + Index, + &PeiPpiDescriptor, + (VOID **) &RepublishSecPpiPpi + ); + if (!EFI_ERROR (Status)) { + DEBUG ((DEBUG_INFO, "Calling RepublishSecPpi instance %d.\n", Index)); + Status2 = RepublishSecPpiPpi->RepublishSecPpis (); + ASSERT_EFI_ERROR (Status2); + } + } + // // Migrate DebugAgentContext. // @@ -385,7 +407,7 @@ SecTemporaryRamDone ( // // Disable interrupts and save current interrupt state // - State = SaveAndDisableInterrupts(); + State = SaveAndDisableInterrupts (); // // Disable Temporary RAM after Stack and Heap have been migrated at this point.