PeiFfsFindNextFile,\r
PeiFfsFindSectionData,\r
\r
- PeiInstallPeiMemory,\r
+ PeiInstallPeiMemory, \r
PeiAllocatePages,\r
PeiAllocatePool,\r
(EFI_PEI_COPY_MEM)CopyMem,\r
(EFI_PEI_SET_MEM)SetMem,\r
\r
PeiReportStatusCode,\r
-\r
PeiResetSystem,\r
+\r
NULL,\r
NULL,\r
- NULL,\r
- NULL,\r
- NULL,\r
+\r
+ PeiFfsFindFileByName,\r
+ PeiFfsGetFileInfo,\r
+ PeiFfsGetVolumeInfo,\r
PeiRegisterForShadow\r
};\r
\r
EFIAPI\r
PeiCore (\r
IN CONST EFI_SEC_PEI_HAND_OFF *SecCoreData,\r
- IN CONST EFI_PEI_PPI_DESCRIPTOR *PpiList,\r
+ IN CONST EFI_PEI_PPI_DESCRIPTOR *PpList,\r
IN VOID *Data\r
)\r
/*++\r
PEI_CORE_INSTANCE PrivateData;\r
EFI_STATUS Status;\r
PEI_CORE_TEMP_POINTERS TempPtr;\r
- PEI_CORE_DISPATCH_DATA *DispatchData;\r
UINT64 mTick;\r
PEI_CORE_INSTANCE *OldCoreData;\r
+ EFI_PEI_CPU_IO_PPI *CpuIo;\r
+ EFI_PEI_PCI_CFG2_PPI *PciCfg;\r
\r
mTick = 0;\r
OldCoreData = (PEI_CORE_INSTANCE *) Data;\r
\r
if (OldCoreData != NULL) {\r
CopyMem (&PrivateData, OldCoreData, sizeof (PEI_CORE_INSTANCE));\r
+ \r
+ CpuIo = (VOID*)PrivateData.ServiceTableShadow.CpuIo;\r
+ PciCfg = (VOID*)PrivateData.ServiceTableShadow.PciCfg;\r
+ \r
+ CopyMem (&PrivateData.ServiceTableShadow, &mPS, sizeof (mPS));\r
+ \r
+ PrivateData.ServiceTableShadow.CpuIo = CpuIo;\r
+ PrivateData.ServiceTableShadow.PciCfg = PciCfg;\r
} else {\r
ZeroMem (&PrivateData, sizeof (PEI_CORE_INSTANCE));\r
+ PrivateData.Signature = PEI_CORE_HANDLE_SIGNATURE;\r
+ CopyMem (&PrivateData.ServiceTableShadow, &mPS, sizeof (mPS));\r
}\r
\r
- PrivateData.Signature = PEI_CORE_HANDLE_SIGNATURE;\r
- PrivateData.PS = &mPS;\r
+ PrivateData.PS = &PrivateData.ServiceTableShadow;\r
\r
//\r
// Initialize libraries that the PeiCore is linked against\r
- // BUGBUG: The FfsHeader is passed in as NULL. Do we look it up or remove it from the lib init?\r
+ // BUGBUG: The FileHandle is passed in as NULL. Do we look it up or remove it from the lib init?\r
//\r
ProcessLibraryConstructorList (NULL, &PrivateData.PS);\r
\r
- InitializeMemoryServices (&PrivateData.PS, SecCoreData, OldCoreData);\r
+ InitializeMemoryServices (&PrivateData, SecCoreData, OldCoreData);\r
\r
- InitializePpiServices (&PrivateData.PS, OldCoreData);\r
-\r
- InitializeSecurityServices (&PrivateData.PS, OldCoreData);\r
-\r
- InitializeDispatcherData (&PrivateData.PS, OldCoreData, SecCoreData);\r
+ InitializePpiServices (&PrivateData, OldCoreData);\r
\r
if (OldCoreData != NULL) {\r
\r
//\r
// If SEC provided any PPI services to PEI, install them.\r
//\r
- if (PpiList != NULL) {\r
- Status = PeiServicesInstallPpi (PpiList);\r
+ if (PpList != NULL) {\r
+ Status = PeiServicesInstallPpi (PpList);\r
ASSERT_EFI_ERROR (Status);\r
}\r
}\r
\r
- DispatchData = &PrivateData.DispatchData;\r
+ InitializeSecurityServices (&PrivateData.PS, OldCoreData);\r
+\r
+ InitializeDispatcherData (&PrivateData, OldCoreData, SecCoreData);\r
+\r
+ //\r
+ // Install Pei Load File PPI. \r
+ //\r
+ InitializeImageServices (&PrivateData, OldCoreData);\r
\r
//\r
// Call PEIM dispatcher\r
//\r
- PeiDispatcher (SecCoreData, &PrivateData, DispatchData);\r
+ PeiDispatcher (SecCoreData, &PrivateData);\r
\r
//\r
// Check if InstallPeiMemory service was called.\r