# UEFI启动流程
graph TB
SEC安全验证-->PEI-EFI前期初始化
PEI-EFI前期初始化-->DXE驱动执行环境
DXE驱动执行环境-->BDS启动设备选择
BDS启动设备选择-->TSL操作系统加载前期
TSL操作系统加载前期-->RTRun-Time
RTRun-Time-->AL灾难恢复期
```
![image-20211214163147113](../AppData/Roaming/Typora/typora-user-images/image-20211214163147113.png)
前三个阶段是`UEFI`初始化阶段,`DXE`阶段结束后`UEFI`环境已经准备完毕。
`BDS`和`TSL`是操作系统加载器作为`UEFI`应用程序运行的阶段。
操作系统加载器调用`ExitBootServices`()服务后进入`RT`阶段,`RT`阶段包括操作系统加载器后期和操作系统运行期。
当系统硬件或操作系统出现严重错误不能继续正常运行时,固件会尝试修复错误,这时系统进入`AL`期。但`PI`规范和`UEFI`规范都没有规定`AL`期的行为。“?”号表示其行为由系统供应商自行定义。
![image-20211215121312173](../AppData/Roaming/Typora/typora-user-images/image-20211215121312173.png)
## **第一阶段:SEC阶段(安全验证)**
SEC(Security Phase)阶段是平台初始化的第一个阶段,计算机系统加电后进入这个阶段。从功能上说,它执行以下4种内容:
1)接收并处理系统启动、重启、异常信号:系统加电信号、系统重启信号、系统运行过程中的严重异常信号。
2)初始化临时存储区域:系统运行在SEC阶段时,仅CPU和CPU内部资源被初始化,各种外部设备和内存都没有被初始化,因而系统需要一些临时RAM区域,用于代码和数据的存取,我们将之称为临时RAM,以示与内存的区别。这些临时RAM只能位于CPU内部。最常用的临时RAM是Cache,当Cache被配置为no-eviction模式时,可以作为内存使用,读命中时返回Cache中的数据,读缺失时不会向主存发出缺失事件;写命中时将数据写入Cahce