浅谈UEFI之启动流程经历的7个阶段
关于UEFI标准
UEFI(Unified Extensible Firmware Interface Forum)的简称 ,是目前从智能手机到打印机,笔记本电脑,服务器,甚至超级计算都被广泛应用的技术标准,其中它与传统BIOS的不同之处可以用3句话进行概括:
- 规范了各种接口标准
- 为不同的操作系统提供统一的接口
- 代码开源
一:UEFI启动流程图
- 共7个阶段
- STEP1
- SEC阶段:(安全验证)
- 接受系统的启动、重启、异常信号
- Cache AS RAM(CAR),在Cache上开辟一段空间作为内存使用(此时内存还没初始化,相关C语言运行需要内存和栈的空间)
- 传递系统参数给PEI阶段
- STEP2
- PEI阶段:(EFI前期的初始化)
- 此阶段主要是为DXE阶段做的相关准备工作
- 做CPU和相关硬件的初始化,最主要的是内存初始化
- 将DXE阶段需要的参数以HOB列表形式进行封装,并传递给DXE阶段
- STEP3
- DXE阶段:(驱动执行环境)
- 此阶段主要是进行大量的驱动加载和初始化工作
- 通过对固件中所有Driver的遍历,当Driver
- 当Driver都被执行完成了,系统即完成了初始化
- STEP4
- BDS阶段:(启动设备选择)
- 此阶段主要初始化控制台设备
- 加载必要的设备驱动
- 根据用户选择执行相应启动项
- STEP5
- TSL阶段:(操作系统加载前期)
- 此阶段是OS Loader执行的第一个阶段
- 为OS Loader准备执行环境
- OS Loader调用EXITBootService结束启动服务
- 进入RT阶段(RunTime)阶段
- STEP6
- RT阶段:(OS环境执行时期)
- 此阶段主要是RT随着操作系统运行提供相应服务
- OS已经完全获得控制权,RT会清理和回收一些之前UEFI占用资源
- 这一阶段运行出现错误时,将进入RL修复
- STEP7
- AL:(灾难恢复)
- 此阶段主要根据厂家定义的修复方案进行,UEFI未进行相关规定