UINT32 AuthenticationState;\r
EFI_PHYSICAL_ADDRESS EntryPoint;\r
EFI_PEIM_ENTRY_POINT2 PeimEntryPoint;\r
- BOOLEAN PeimNeedingDispatch;\r
- BOOLEAN PeimDispatchOnThisPass;\r
UINTN SaveCurrentPeimCount;\r
UINTN SaveCurrentFvCount;\r
EFI_PEI_FILE_HANDLE SaveCurrentFileHandle;\r
// satisfied, this dipatcher should run only once.\r
//\r
do {\r
- PeimNeedingDispatch = FALSE;\r
- PeimDispatchOnThisPass = FALSE;\r
\r
for (FvCount = Private->CurrentPeimFvCount; FvCount < Private->FvCount; FvCount++) {\r
Private->CurrentPeimFvCount = FvCount;\r
\r
if (Private->Fv[FvCount].PeimState[PeimCount] == PEIM_STATE_NOT_DISPATCHED) {\r
if (!DepexSatisfied (Private, PeimFileHandle, PeimCount)) {\r
- PeimNeedingDispatch = TRUE;\r
+ Private->PeimNeedingDispatch = TRUE;\r
} else {\r
Status = PeiFfsGetFileInfo (PeimFileHandle, &FvFileInfo);\r
ASSERT_EFI_ERROR (Status);\r
PeimEntryPoint (PeimFileHandle, (const EFI_PEI_SERVICES **) PeiServices);\r
}\r
\r
- PeimDispatchOnThisPass = TRUE;\r
+ Private->PeimDispatchOnThisPass = TRUE;\r
}\r
\r
REPORT_STATUS_CODE_WITH_EXTENDED_DATA (\r
//\r
PrivateInMem->PeiMemoryInstalled = TRUE;\r
\r
- //\r
- // Restart scan of all PEIMs on next pass\r
- //\r
- PrivateInMem->CurrentPeimCount = 0;\r
-\r
//\r
// Shadow PEI Core. When permanent memory is avaiable, shadow\r
// PEI Core and PEIMs to get high performance.\r
// pass. If we did not dispatch a PEIM there is no point in trying again\r
// as it will fail the next time too (nothing has changed).\r
//\r
- } while (PeimNeedingDispatch && PeimDispatchOnThisPass);\r
+ } while (Private->PeimNeedingDispatch && Private->PeimDispatchOnThisPass);\r
\r
}\r
\r
)\r
{\r
if (OldCoreData == NULL) {\r
+ PrivateData->PeimNeedingDispatch = FALSE;\r
+ PrivateData->PeimDispatchOnThisPass = FALSE;\r
PeiInitializeFv (PrivateData, SecCoreData);\r
}\r
\r