PEI是在SEC阶段之后的下一个阶段。它实现了初始化内存(UEFI第二阶段)。
虽然SEC阶段对CPU和CPU内的资源进行了初始化,但是PEI阶段可用的资源依旧十分有限,该阶段对内存进行初始化,主要功能是为DXE阶段准备执行环境,将所需要传递给DXE的信息组成HOB(Hand Off Block)列表,最终将控制权转交到DXE。
整体流程
- PEI Image的入口函数位_ModuleEntryPoit,该函数最终调用PEI模块的入口函数PeiCore。
VOID EFIAPI PeiCore ( IN CONST EFI_SEC_PEI_HAND_OFF *SecCoreDataPtr, IN CONST EFI_PEI_PPI_DESCRIPTOR *PpiList, IN VOID *Data )
- 进入PeiCore后,先根据SEC阶段传入的信息初始化PS(PEI Core Service)。
// // Initialize PEI Core Services // InitializeMemoryServices (&PrivateData, SecCoreData, OldCoreData);