文章目录
一、PEI 简介
PEI (Pre-EFI Initialization)阶段资源依然十分有限,内存到了PEI后期才被初始化。其主要任务是为DXE准备执行环境。需要将传递到DXE的信息组成HOB(Handoff Block)列表,最终将控制权交到DXE手中。
从功能上讲,PEI可分为两部分:
- PEI Core(PEI Foundation):负责PEI基础服务和流程。
- PEIM(Pre-EFI Initialize Module)派遣器:主要功能是根据Flash文件系统的定义遍历固件卷FV,找出所有PEIM。并根据PEIM之间的依赖关系按顺序执行PEIM。PEI阶段对系统的初始化主要是由PEIM完成的,不同的PEIM之间可以通过PPI(PEIM—to-PEIM Interface) 完成数据传输。
在UEFI启动过程中主要完成以下任务
- 芯片组初始化
- 内存初始化
- UEFI环境初始化
- 将代码运行环境切换到内存 (取消 CAR,重新启用缓存)
- 启动DXEIPL(DXE Initial Program Loader)
通过PeiServices,PEIM可以使用PEI阶段提供的系统服务,通过这些系统服务,PEIM可以访问PEI内核。PEIM之间的通信通过PPI(PEIM-to-PEIM Interfaces)完成。每个PPI都有一