您的位置:首页 > 其它

ARM引导过程(s5pv210)

2016-03-01 20:10 302 查看

ARM引导过程(s5pv210)

1. 引导过程

s5pv210处理器有 iROM 与 iRAM 两个存储器作为内部存储器。iROM 有 64k 的空间,而 iRAM 有 96k 的空间。iROM 位于内部 ROM 中,而 iRAM 位于内部 SRAM 中。

在进行安全启动的过程中,引导程序固化在 iROM 中。采用了 e-fuse (只能进行一次编程,以后便不能再进行更改)的形式。

引导程序主要由 iROM、第一引导顺序(the first booting loader, BL1)与第二引导顺序(the second booting loader, BL2)组成。iROM 又称为 BL0。其详细内容见如下表格:

名字依赖关系 存储位置
iROM平台独立内部存储区
BL1 平台独立外部存储区
BL2 指定平台外部存储区

2. 引导顺序

其引导顺序如下图所示:




iROM 初始化时钟,堆栈等

iROM将来自指定的引导设备的第一引导顺序相关代码加载到 SRAM 中,然后进行完整性检测(160 个 e-fuse 会对加载验证公钥进行验证),然后对BL1进行完整性检测。引导设备由OM引脚指定,引导设备可以是

• General NAND Flash memory

• OneNAND memory

• SD/ MMC memory (such as MoviNAND and iNAND)

• eMMC memory

• eSSD memory

• UART and USB devices

BL1 对 BL2 进行加载并进行完整性检测。

BL2 对时钟、UART、DRAM进行初始化,在完成对 DRAM 的初始化检测后,加载OS(操作系统)镜像,由引导设备加载到 DRAM 。然后对 OS 镜像进行完整性检测。

引导完成后,将一切都交给操作系统。

3. 引导顺序例子

例子中的引导过程可以分为三个部分,如下图所示:



内部 iROM 加载过程

1-1. 关闭看门狗

1-2. 初始化指令缓存控制器

1-3. 初始化堆栈与堆区域

1-4. 检查安全钥匙

1-5. 设置时钟分频,时钟节拍,锁相环(PLL)和时钟源

1-6. 检测OM引脚及从 iRAM 加载 BL1。

1-7. 如果安全启动成功,则执行完整性检测。

1-8.完整性检测通过,则将跳转到BL1进行执行(0xDOO2_0010)。前16个字节存储安全秘钥。

内部 iRAM 加载过程

2-1. 将BL2从引导驱动设备加载到 iRAM。

2-2. 如果安全启动成功,则执行完整性检测。

2-3. 如果完整性检测通过,则将跳转到BL2进行执行。

2-4. 如果完整性检测失败,则停止BL1。

2-5. BL2 初始化 DRAM 控制器。

2-6. 从指定的引导设备中加载 OS 镜像到 DRAM

2-7. 跳转到 OS 代码进行执行(在 DRAM 中,0x2000_0000或者0x4000_0000)。

DRAM加载过程

3-1. 如果s5pv210在睡眠,深度睡眠等状态中苏醒,则恢复原先装载

3-2. 跳转到 OS 代码进行执行

参考文献

[1] S5PV210芯片手册
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  arm s5pv210 引导