S5PV210 启动过程

本文参考文档:5PV210_iROM_ApplicationNote_Preliminary_20091126.pdf


一、启动过程概述

先看一下文档里给出的 S5PV210 的启动框架:


1、硬件需求

  • 基于 CortexA8 的 S5PV210 微处理器
  • 64KB 的内部 ROM (iROM)
  • 96KB 的内部 SRAM
  • 通用 SDRAM 和对应的控制器
  • 4/8Bit 的高速 SD/MMC 控制器 和对应的SD/MMC/eMMC
  • 其它一些控制器(NandFlas、eSSD、UART/USB)

这么做的目的是平衡硬件的开销和速度。

2、启动过程解释

① iROM 做一些预初始化工作,包括系统时钟、特殊设备的控制器和启动介质的初始化;

② iROM 将启动介质(可以是MMC/Nand/eSSD/NOR等)中的 BL1 拷贝到 SRAM 上,安全模式下校验 BL1;

③ 执行 BL1:BL1 将 BL2 搬移到 SRAM,安全模式下校验 BL2;

④ 执行 BL2:BL2 负责初始化 DRAM 控制器并将 OS 从启动介质搬移到 SDRAM 中;

关于 BL1 和 BL2:BL1 + BL2 为 boot-loader,它们最初都存储在启动介质中,之后会被分别搬移到 SRAM 上执行(BL1由 iROM 负责搬移,BL2 由 BL1 搬移);它们的总大小为 96kb,通常情况下,BL1 占16k,BL2 占80k。 类似地,iROM 内的这段启动代码称为 BL0。

⑤ 最后,跳转到 OS 执行操作系统。

二、完整的启动过程

完整的启动流程图如下:




1、BL0 的具体工作

① 关看门狗;

② 初始化指令缓存;

③ 初始化栈;

④ 初始化堆;

⑤ 初始化块设备赋值函数( Block Device Copy Function);

⑥ 初始化 PLL 并设置系统时钟;

⑦ 将 BL1 从启动介质复制到内部的 SRAM 中(由 OM pin 决定启动介质);

⑧ 如果是安全模式,则校验 BL1,如果校验失败,iROM 将尝试第二种启动方式();

⑨ 跳转到 BL1。

2、OM pin

这是文档上给出的 OM pin 选择图:


假设我们需要从 SD 卡启动的话,OM[5-0] = {0,0,1,1,0,1};

而假设我们需要使用 USB 调试模式的话,OM[5-0] = {1,X,X,X,X,1}。

3、X210 的启动优先级(OM[5]=0 的情况下)

① 先 1st 启动,即通过 OM pin 选择启动介质;

② 在 2st 启动,固定从 SD2;

③ 从 UART 启动;

④ 从 USB 启动。





  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值