S5PV210的启动过程详解

S5PV210芯片简介:

S5PV210是ARM架构(crotex_A8内核)的32位芯片,理论上支持4G的内存空间,但因为是统一编址,实际只支持1.5G的内存,内置了iROM和iRAM。启动方式由下图所示:

在这里插入图片描述

启动方式详解:

(1)上电后首先从iROM中读取预先设置的代码BL0,BL0会初始化芯片内部,包括CPU的时钟、关看门狗、初始化栈等等。这一段代码时出厂的时候内置的,因为不知道将来芯片会接哪些型号的外设,所以没法去初始化外设,都是初始化芯片内部。BL0其中有一个特别重要的功能,就是判断启动模式,也就是判断BL1要通过哪种存储介质读取,比如图中有NorFlash、eSSd、NandFlash、USB等。Soc判断启动模式的方式是去读取Soc的某几个引脚电平高低来判断启动模式,可以通过外部的硬件开关来选择启动模式。在这里我们可选择的是第一启动方式,第二启动方式是默认(SD/MMC channel 2)的。当第一启动方式失败后,会尝试第二启动方式。如果第二启动也失败,则此次启动失败。
(2)通过BL0选择的启动方式,去对应的介质读取BL1(BL1最大为16KB,数据手册写的是BL1的长度可以配置,但是看到U_boot里都是写死的16KB)代码到iRAM,BL1代码是我们写的启动代码,也就是bootloader的一部分。这里隐藏了一个细节,如果BL1是在oneNand、eSSD卡等存储介质里,是先需要一定的时序去初始化存储器才能读取数据的。具体的初始化时BL0里做的,当BL0里判断出了启动方式,会调用内置的Device Copy Function函数去初始化储存器的。
(3)BL1执行完后,将BL2(启动代码剩下的部分,最大不超过80KB)读取到iRAM中执行。
(4)BL1+BL2需要完成一个重要的作用,就是初始化DDR内存,然后把OS加载内存中。
(5)跳转到DDR中,把剩下的启动代码执行完毕,将OS运行起来,到此整个启动过程结束。

补充:

以上是三星建议的启动方式,实际的U-boot并不是这样。三星建议的启动方式,有个局限,整个的启动代码不能超过96KB(iRAM为96KB)。实际的操作是,BL1去初始化DDR,并且把整个bootloader和OS都加载到DDR中,然后跳转到DDR中去执行DDR里的那份BL2代码。这样的好处是bootloader可以超过96KB,不用受到iRAM的限制。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

正在起飞的蜗牛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值