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 <ray.ni@intel.com>
Signed-off-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
This commit is contained in:
Eric Dong 2019-08-28 14:45:39 +08:00
parent 37eef91017
commit 47f167f47e
1 changed files with 2 additions and 1 deletions

View File

@ -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
//