1、BL1
BL1是干什么的?
BL1位于ROM中,在EL3下从reset vector处开始运行。(说明了启动是从EL3启动的,为什么?因为EL3安全等级最高呗。)
(BL1这些都是镜像,我的认识就是以前的bootloader一个人干的事,现在因为安全,分成了这样一个五步的启动来保证安全。)
系统上电之后首先会运行SCP boot ROM。之后会跳转到ATF的bl1中继续执行。
BL1做的工作主要有:
- 决定启动路径:冷启动还是热启动。
- 架构初始化:异常向量、CPU复位处理函数配置、控制寄存器设置(SCRLR_EL3/SCR_EL3/CPTR_EL3/DAIF)
- 平台初始化:使能Trusted Watchdog、初始化控制台、配置硬件一致性互联、配置MMU、初始化相关存储设备。
- 固件更新处理
- BL2镜像加载和执行:
- BL1输出“Booting Trusted Firmware"。
- BL1加载BL2到SRAM;如果SRAM不够或者BL2镜像错误,输出“Failed to load BL2 firmware.”。
- BL1切换到Secure EL1并将执行权交给BL2.
BL1镜像的异常向量表初始化了两个&#