浅谈UEFI之启动流程经历的7个阶段

关于UEFI标准

UEFI(Unified Extensible Firmware Interface Forum)的简称 ,是目前从智能手机到打印机,笔记本电脑,服务器,甚至超级计算都被广泛应用的技术标准,其中它与传统BIOS的不同之处可以用3句话进行概括:

  1. 规范了各种接口标准
  2. 为不同的操作系统提供统一的接口
  3. 代码开源
一:UEFI启动流程图
  • 共7个阶段
Step1
Step2
Step3
Step4
Step5
Step6
Step7
开始
SEC
PEI
DXE
BDS
TSL
RT
AL
结束

浅谈UEFI之启动流程经历的7个阶段

  • STEP1
  • SEC阶段:(安全验证)
  1. 接受系统的启动、重启、异常信号
  2. Cache AS RAM(CAR),在Cache上开辟一段空间作为内存使用(此时内存还没初始化,相关C语言运行需要内存和栈的空间)
  3. 传递系统参数给PEI阶段
  • STEP2
  • PEI阶段:(EFI前期的初始化)
  1. 此阶段主要是为DXE阶段做的相关准备工作
    1. 做CPU和相关硬件的初始化,最主要的是内存初始化
    2. 将DXE阶段需要的参数以HOB列表形式进行封装,并传递给DXE阶段
  • STEP3
  • DXE阶段:(驱动执行环境)
  1. 此阶段主要是进行大量的驱动加载和初始化工作
    1. 通过对固件中所有Driver的遍历,当Driver
    2. 当Driver都被执行完成了,系统即完成了初始化
  • STEP4
  • BDS阶段:(启动设备选择)
  1. 此阶段主要初始化控制台设备
    1. 加载必要的设备驱动
    2. 根据用户选择执行相应启动项
  • STEP5
  • TSL阶段:(操作系统加载前期)
  1. 此阶段是OS Loader执行的第一个阶段
    1. 为OS Loader准备执行环境
    2. OS Loader调用EXITBootService结束启动服务
    3. 进入RT阶段(RunTime)阶段
  • STEP6
  • RT阶段:(OS环境执行时期)
  1. 此阶段主要是RT随着操作系统运行提供相应服务
    1. OS已经完全获得控制权,RT会清理和回收一些之前UEFI占用资源
    2. 这一阶段运行出现错误时,将进入RL修复
  • STEP7
  • AL:(灾难恢复)
  1. 此阶段主要根据厂家定义的修复方案进行,UEFI未进行相关规定