S5PV210-iROM-ApplicationNote-Preliminary的分析

S5PV210-iROM-ApplicationNote-Preliminary文件的分析

                                                                                                                                          ---参考朱有鹏大讲坛信息


1、210的启动方式的优势点:


(1)降低BOM成本,因为IROM可以使SOC从各种外设启动,因此可以省下

一块bootROM(专门用来启动ROM,一般是NorFLASH)

(2)支持各种校验类型的nand

(3)可以在不使用编程器的情况下使用一种外部存储器运行程序来给

另一种外部存储器编程烧录,这样生产时就不用额外购买专用编程器了

降低了量产的成本。



2、210的启动流程概述


(1)CPU上电后先从内部IROM读取预先设置的代码(BL0)执行

这一段代码IROM代码首先做了一些基本的初始化。

这一段代码IROM是不能负责初始化DRAM,因此这段代码只能初始化SOC内部的东西

我们可以通过OMPIN的硬件跳线可以更改板子的启动模式,然后从相应的存储器去读取

第一部分启动代码(BL1,大小为16KB)到内部SRAM。

(2)从IRAM运行刚从上一步读取来的BL1(16KB),然后执行,

BL1负责初始化NANDFLASH等外部的(硬盘类的物质),然后跳转到BL2

(3)从IRAM运行BL2,BL2初始化DRAM,然后将OS读取到DRAM中,然后可以启动操作系统。


3、BL0里面的代码主要做了啥事情?


1、关闭看门狗

2、初始化指令Cache

3、初始化栈和堆(汇编)

4、初始化块设备的复制函数device copy function

14页的代码有相应的地址存放着,用来读取8BIT的ECC校验。

分别读取不同的外部存储器。

5、初始化PLL锁相环和设置SOC系统时钟

6、复制BL1到内部SRAM储存器

7、检查非常多的检验和到BL1

8、看是不是安全启动?

9、跳转到BL1去执行。


4、210的完整的启动流程


1、第一部分BL0

(1)IROM的开始启动,也就是所谓的BL0的启动,接着就是关闭看门狗,初始化Cache,

如果没有进入休眠的模式的话,那么就初始化栈和堆,目的就是要使用C语言了,也就是前面

不能使用C语言,前面的都要使用汇编进行编写。

(2)初始化系统的控制:

设置时钟的分辨率,也就是设置时钟的PLL和设置时钟(好像这里有一个很牛逼的名字叫做设备树)

设置源时钟源

(3)判断OM pin

其中有很多种的启动方式,SSD,NAND,ONENAND,NORFLASH,SD,USB

当校验成功,判断是否进入安全的模式,


2、第二部分BL1

其中的过程跟BL0的过程是相同的,然后过了一段时间就到了BL2的情况。


5、最后的启动的方法


(1)检查通道0是否有程序,如果有的话,那么就直接执行通道0的程序

(2)如果通道1没有程序的话,那么就尝试UART的启动的方式

(3)UART的方式不行的话,那么就只能进行USB的方式了。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值