参考和说明
相关参考:
- UEFI原理与编程_戴正华 第一章
- UEFI Platform Initialization (PI) Specification
参考文章下载地址:
链接: https://pan.baidu.com/s/1LjrydEzCACG3ohpx7mMKKg 提取码: 4i3j
说明
这里 因为我不是UEFI研发者,这里只自己跟踪下启动过程即可。 根据 file:debug.log 来跟踪自己的启动信息
仿真方法(详情参考第3节)
# 建立仿真环境并与Qemu文件交互
这里先创建一个共享盘,用来方便在进入UEFI Shell后共享自己的文件
dd if=/dev/zero of=app.disk bs=1 count=1 seek=1024K
sudo mkfs.vfat app.disk
sudo mkdir /mnt/mnt_app -p
sudo mount app.disk /mnt/mnt_app/
# sudo cp ../edk2/Build/OptionRomPkg/DEBUG_GCC5/X64/OromHello.rom /mnt/mnt_app/ 自己得测试程序
sudo qemu-system-x86_64 -bios ./Build/OvmfX64/DEBUG_GCC5/FV/OVMF.fd -debugcon \
file:debug.log -global isa-debugcon.iobase=0x402 \
-serial file:serial.log -hda app.disk -m 512 -enable-kvm
启动过程总览
总览
SEC
功能
初始化描述
其实,就像UBOOT的第一阶段差不多,在收到复位信号,进入到Reset Vector,初始化临时缓存(SRAM),
资源安全管理(可信任根),然后跳到PEI阶段
./UefiCpuPkg/ResetVector/Vtf0/Main.asm
./IntelFsp2Pkg/FspSecCore/Vtf0/Ia16/ResetVec.asm16