参考和说明

相关参考:

参考文章下载地址:
链接: https://pan.baidu.com/s/1LjrydEzCACG3ohpx7mMKKg 提取码: 4i3j

说明

这里 因为我不是UEFI研发者,这里只自己跟踪下启动过程即可。 根据 file:debug.log 来跟踪自己的启动信息

仿真方法(详情参考第3节)

  1. # 建立仿真环境并与Qemu文件交互
  2. 这里先创建一个共享盘,用来方便在进入UEFI Shell后共享自己的文件
  3. dd if=/dev/zero of=app.disk bs=1 count=1 seek=1024K
  4. sudo mkfs.vfat app.disk
  5. sudo mkdir /mnt/mnt_app -p
  6. sudo mount app.disk /mnt/mnt_app/
  7. # sudo cp ../edk2/Build/OptionRomPkg/DEBUG_GCC5/X64/OromHello.rom /mnt/mnt_app/ 自己得测试程序
  8. sudo qemu-system-x86_64 -bios ./Build/OvmfX64/DEBUG_GCC5/FV/OVMF.fd -debugcon \
  9. file:debug.log -global isa-debugcon.iobase=0x402 \
  10. -serial file:serial.log -hda app.disk -m 512 -enable-kvm

启动过程总览

总览

image.png

SEC

详情参考 UEFI原理与编程_戴正华 1.2.3节

功能

初始化描述

其实,就像UBOOT的第一阶段差不多,在收到复位信号,进入到Reset Vector,初始化临时缓存(SRAM),
资源安全管理(可信任根),然后跳到PEI阶段
image.png

  1. ./UefiCpuPkg/ResetVector/Vtf0/Main.asm
  2. ./IntelFsp2Pkg/FspSecCore/Vtf0/Ia16/ResetVec.asm16

PEI

DXE

BDS

TSL

RT