cortex A8处理器启动分析一引导代码BL0

本文介绍了Cortex A8处理器,特别是S5PC100的启动过程,包括BL0阶段的功能。BL0是上电后执行的固件,负责加载BL1并进行安全检查。内容涵盖了BL0的职责,如初始化PLL、加载BL1、安全检查等,以及S5PC100支持的不同启动方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

cortex A8是基于ARMv7架构的处理器,主频可以达到1GHz。基于cortexA8的处理器有三星的S5PC100、S5PV210,TI的OMAP3530,全志的A10等。我有个想法就是把u-boot的2个阶段的代码独立。第一阶段代码称为硬件相关BL1,第二阶段代码称为硬件无关BL2。手上刚好有块s5pc100的板子,就介绍s5pc100的启动过程并验证。我把启动过程分为3个阶段BL0、BL1、BL2。BL0是固化在内部ROM上电就执行的一小段程序,我把自己写的boot代码,用于引导u-boot称为BL2,把u-boot的第二阶段代码用于引导内核称为BL2。这是我的理解,在接下来我将依次分析BL0、BL1、BL2,并实现BL1代码引导u-boot,BL2移到内核。

一、什么是BL0

BL0(1st boot loader)是固化在内部ROM上电就执行的一小段程序。BL0从系统指定的外部存储器件(NAND、SD/MMC、OneNAND与USB)中加载第二个引导程序BL1到内部RAM,同时对BL1进行安全检验。启动过程如下:


二、BL0做了些什么

s5pc100芯片手册见2.2FUNCTIONAL SEQUENCE,翻译成中文如下

1.初始化PLL和时钟,将其设定为固定值;
2.初始化栈和堆区域;
3.初始化指令Cache 控制器;
4.从外部起动设备中加载BL1;
5.如果起动安全机制开启,则检查BL1数据完整性;
6.如果校验通过,则跳转到0x34010地址处运行;
7.如果校验失败则停止。

三、S5PC100支持的启动方式

根据OM[4:0]、B0[5::0]引脚的配置,可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值