From 47f167f47e8e4b637411f7547128f3036f5a2f5e Mon Sep 17 00:00:00 2001 From: Eric Dong Date: Wed, 28 Aug 2019 14:45:39 +0800 Subject: UefiCpuPkg/SecCore: get AllSecPpiList after SecPlatformMain. REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2136 SecPlatformMain is a platform hook function which let platform does some update. Some platform may adjust SecCoreData->PeiTemporaryRamBase which caused former saved AllSecPpiList variable invalid. This patch update the logic to get AllSecPpiList after SecPlatformMain. If SecPlatformMain() returns no platform-specific PPI list, then there is nothing to merge, so we don't need "AllSecPpiList" at all. Cc: Ray Ni Signed-off-by: Eric Dong Reviewed-by: Laszlo Ersek --- UefiCpuPkg/SecCore/SecMain.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'UefiCpuPkg/SecCore') diff --git a/UefiCpuPkg/SecCore/SecMain.c b/UefiCpuPkg/SecCore/SecMain.c index f914446..66c952b 100644 --- a/UefiCpuPkg/SecCore/SecMain.c +++ b/UefiCpuPkg/SecCore/SecMain.c @@ -228,7 +228,6 @@ SecStartupPhase2( PeiCoreEntryPoint = NULL; SecCoreData = (EFI_SEC_PEI_HAND_OFF *) Context; - AllSecPpiList = (EFI_PEI_PPI_DESCRIPTOR *) SecCoreData->PeiTemporaryRamBase; // // Perform platform specific initialization before entering PeiCore. @@ -282,6 +281,8 @@ SecStartupPhase2( } if (PpiList != NULL) { + AllSecPpiList = (EFI_PEI_PPI_DESCRIPTOR *) SecCoreData->PeiTemporaryRamBase; + // // Remove the terminal flag from the terminal PPI // -- cgit v1.1