mirror of
https://github.com/tianocore/edk2
synced 2026-08-27 00:23:19 -04:00
MdeModulePkg/PeiCore: Accept MemoryDiscoveredPpi from SecCore
PeiCore assumes that it runs initially from the temporary memory and switches to physical memory after PS::InstallPeiMemory() reports the physical memory range for PEI. This change enables PeiCore to run initially from the physical memory when MemoryDiscoveredPpi is passed from SEC. Signed-off-by: Ray Ni <ray.ni@intel.com>
This commit is contained in:
parent
0fe6b755f2
commit
fc13220238
1 changed files with 10 additions and 0 deletions
|
|
@ -1038,6 +1038,7 @@ ProcessPpiListFromSec (
|
|||
EFI_STATUS Status;
|
||||
EFI_SEC_HOB_DATA_PPI *SecHobDataPpi;
|
||||
EFI_HOB_GENERIC_HEADER *SecHobList;
|
||||
PEI_CORE_INSTANCE *PrivateData;
|
||||
|
||||
for ( ; ;) {
|
||||
if ((PpiList->Flags & EFI_PEI_PPI_DESCRIPTOR_NOTIFY_TYPES) != 0) {
|
||||
|
|
@ -1052,6 +1053,15 @@ ProcessPpiListFromSec (
|
|||
//
|
||||
Status = InternalPeiInstallPpi (PeiServices, PpiList, TRUE);
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
|
||||
//
|
||||
// Set the PeiMemoryInstalled flag if SEC passed MemoryDiscoveredPpi, so the PEI runs in
|
||||
// physical memory.
|
||||
//
|
||||
if (CompareGuid (PpiList->Guid, &gEfiPeiMemoryDiscoveredPpiGuid)) {
|
||||
PrivateData = PEI_CORE_INSTANCE_FROM_PS_THIS (PeiServices);
|
||||
PrivateData->PeiMemoryInstalled = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
if ((PpiList->Flags & EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST) == EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue