if (image_id ==BL2_IMAGE_ID)bl1_load_bl2();---将BL2镜像加载到TSRAM中。elseNOTICE("BL1-FWU: ***FWU Process Started***\n");bl1_prepare_next_image(image_id);---获取image_id对应镜像描述信息,并为进入下一级镜像执行准备好上下文。} /*** * ...
如上所述,BL3-2模块的存在是可选的;其代码(对于模块而言)是在EL1S模式下执行的。通常,它作为平台操作期间发生的事件(来自某些计时器、设备等的中断)的专用服务/监视器 实际上,BL3-3不是ATF模块,而是在非安全模式下执行的固件映像。它通常在EL2模式下获得控制权,并表示类似于众所周知的U-Boot的引导加载程序的...
BL1是启动加载程序,负责初始化设备、加载和启动BL2;BL2是二级启动加载程序,负责验证、加载和启动BL3;BL3则是操作系统或者其他软件的首个可信镜像,负责初始化系统、启动操作系统。 三、ATF运行原理的深度探讨 1. ATF的启动过程 ATF的启动过程首先从Reset状态开始,处理器会加载固化在ROM中的BL1代码,并执行其初始化和...
BL2在初始化硬件后,开始寻找BL3的几个小兄弟:BL31,BL32和BL33。它先找到BL31,并验签它,最后转入BL31。 BL31:EL3 Runtime Firmware BL31作为EL3最后的安全堡垒,它不像BL1和BL2是一次性运行的。如它的runtime名字暗示的那样,它通过SMC为Non-Secure持续提供设计安全的服务。关于SMC的调用calling convention我...
ATF将镜像进行了划分,BL1 BL2属于启动引导镜像,BL3属于runtime镜像。BL3又分为BL31 BL32 BL33对应的分别是ATF Runtime、REE Runtime、TEE Runtime。 (注:本文是Quick Start,不深入解释这些概念,请自行理解:BL1 BL2 BL31 BL32 BL33的概念、EL3 S-EL1 NS-EL1的概念) ATF快速扫盲(Quick Start).pdf ...
BL1 BL1 定义了启动路径(冷启动还是热启动),将架构初始化(异常向量、CPU 初始化和控制寄存器设置),并将平台初始化(启用 watchdog 流程、MMU 和 DDR 初始化)。 BL2 BL2 为 Arm 可信固件 (ATF) 的初始化做准备,ATF 是负责设置安全启动过程的栈。ATF 设置之后,控制台初始化,内存映射为 MMU,并为下一个启动加...
bl1_entrypoint: 退出EL3:lib/el3_runtime/aarch64/context.S,386行分析下el3_exit代码,el3_exit在多个bl阶段都会用到 首先,这个函数假定...,arm设计的一个方案是BL2在EL1上运行(另一个方案是在EL3)BL1将控制权交给secureEL1(AArch64)或安全SVC模式(AArch32)的BL2image,从其加载地址开始 ...
在三星的SoC中, 启动流程可以分为三个阶段BL0, BL1, BL2, BL3, 三星自己的手册对BL1的解释也不尽相同, 一种是将在iRAM中运行的程序都归结为BL1; 一种是将iRAM中三星加密的代码bl1.bin作为BL1, iRAM中剩余的部分作为BL2, 本文采用后者, 他们的主要分工如下: ...
BL2在初始化硬件后,开始寻找BL3的几个小兄弟:BL31,BL32和BL33。它先找到BL31,并验签它,最后转入BL31。 3、BL31:EL3 Runtime Firmware BL31作为EL3最后的安全堡垒,它不像BL1和BL2是一次性运行的。如它的runtime名字暗示的那样,它通过SMC为Non-Secure持续提供设计安全的服务。
* Boot Loader stage 1 (BL1) _AP Trusted ROM_对应 RK 的 Maskrom * Boot Loader stage 2 (BL...