Exynos4412启动流程

组成部分

Exynos4412内部集成了64KB的iROM和256KB的iRAM用于运行最初的启动代码。三星定义的secure boot总共由3部分组成,分别为BL0,BL1和BL2,其中BL0为最初的运行代码可以做一些基础的初始化工作,例如:初始化系统时钟和栈,出厂的时候已经固化到iROM中。BL1为芯片相关的启动代码由三星提供,BL2为平台相关的启动代码由用户自定义,其中BL1和BL2均存储在外部存储空间。官方定义的BL1大小为15KB,BL2大小为16KB,如下所示:
官方启动代码存储分布

启动流程

BL0运行完成后需要将BL1从外部存储空间加载到iRAM,加载完成后首先对BL1进行完整性校验,校验通过后解密BL1安全固件并跳转到BL1运行。BL1运行完成后再将BL2安全固件从外部存储空间加载到iRAM同样对其进行完整性校验,校验通过后就跳转到BL2执行,其中iROM提供安全库函数用于BL1和BL2的安全启动。最终BL2将完整的uboot从外部存储空间加载到DRAM运行。

启动介质

Exynos4412的启动介质包括SD/MMC,eMMC4.3,eMMC4.4和NAND Flash,具体的启动位置有OM pins的配置决定

自定义的启动方式

自定义的启动方式即为绕过官方定义的secure boot启动流程,针对Exynos4412平台uboot代码分为两部分组成分别为BL1和BL2,其中BL1就是uboot官方定义的SPL(secondary program loader),BL2则是真正的启动kernel的uboot。所以启动流程首先为存储在iROM中的BL0从外部存储空间加载自定义的BL1到iRAM中运行,然后再由BL1从外部存储空间加载BL2到DRAM中,然后跳转到BL2运行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值