summaryrefslogtreecommitdiffstats
path: root/UefiCpuPkg/SecCore
diff options
context:
space:
mode:
authorEric Dong <eric.dong@intel.com>2019-08-28 14:45:39 +0800
committerEric Dong <eric.dong@intel.com>2019-08-30 21:49:49 +0800
commit47f167f47e8e4b637411f7547128f3036f5a2f5e (patch)
tree51704967c1ee3f651dc7f11d46a9a98c62057008 /UefiCpuPkg/SecCore
parent37eef91017ad042035090cae46557f9d6e2d5917 (diff)
downloadedk2-47f167f47e8e4b637411f7547128f3036f5a2f5e.tar.gz
edk2-47f167f47e8e4b637411f7547128f3036f5a2f5e.tar.bz2
edk2-47f167f47e8e4b637411f7547128f3036f5a2f5e.zip
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>
Diffstat (limited to 'UefiCpuPkg/SecCore')
-rw-r--r--UefiCpuPkg/SecCore/SecMain.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/UefiCpuPkg/SecCore/SecMain.c b/UefiCpuPkg/SecCore/SecMain.c
index f914446257..66c952b897 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
//