冷启动(Cold boot)流程及阶段划分

描述

restart--冷启动

reset--热启动

ATF冷启动实现分为5个步骤:

• BL1 - AP Trusted ROM,一般为BootRom。

• BL2 - Trusted Boot Firmware,一般为Trusted Bootloader。

• BL31 - EL3 Runtime Firmware,一般为SML,管理SMC执行处理和中断,运行在secure monitor中。

• BL32 - Secure-EL1 Payload,一般为TEE OS Image。

• BL33 - Non-Trusted Firmware,一般为uboot、linux kernel。

ATF输出BL1、BL2、BL31,提供BL32和BL33接口。

(我想提供的接口就是BL32和BL33的镜像可以是指定的,atf其实是一个启动框架,这其中包含的五个步骤,每个步骤你想要的内容,可以由厂商自己定义。)

启动流程如下:

冷启动

BL1位于ROM中,在EL3下从reset vector处开始运行。(bootrom就是芯片上电运行的(chip-rom的作用就是跳转到bootrom))

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.

1.2 BL2

BL2位于SRAM中,运行在Secure EL1主要工作有:

• 架构初始化:EL1/EL0使能浮点单元和ASMID。

• 平台初始化:控制台初始化、相关存储设备初始化、MMU、相关设备安全配置、

• SCP_BL2:系统控制核镜像加载,单独核处理系统功耗、时钟、复位等控制。

• 加载BL31镜像:BL2将控制权交给BL1;BL1关闭MMU并关cache;BL1将控制权交给BL31。

• 加载BL32镜像:BL32运行在安全世界,BL2依赖BL31将控制权交给BL32。SPSR通过Secure-EL1 PayloadDispatcher进行初始化。

• 加载BL33镜像:BL2依赖BL31将控制权交给BL33。

1.3 BL31

BL31位于SRAM中,EL3模式。除了做架构初始化和平台初始化外,还做了如下工作:

• PSCI服务初始化,后续提供CPU功耗管理操作。

• BL32镜像运行初始化,处于Secure EL1模式。

• 初始化非安全EL2或EL1,跳转到BL33执行。

• 负责安全非安全世界切换。

• 进行安全服务请求的分发。

冷启动

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分