AM1808的RBL UBL

源地址:http://blog.csdn.net/chlputi/archive/2011/05/11/6411004.aspx

 

RBL ( ARM ROM Boot Loader )在芯片出厂的时候就已经烧写到 ROM 里了,这不需要大家关心,上电后, RBL 会自动从 EMIFA EM_CS2 memory space (0x0200 0000). 执行指令,这个地址就是 NAND FLASH 或 NOR FLASH 的片选起始地址。当你的系统设置为 NAND BOOT 的时候, UBL ( User Boot Loader )是必不可少的,否则 RBL 不能直接把 UBOOT 给 BOOT 起来,因为 RBL 只支持 14K NAND FLASH 的 BOOT 程序,而 UBOOT 编译出来后的 bin 文件一般都大于 80K ,特别是版本越高, UBOOT 的代码越大,所以这时候就需要写一个 UBL 。 UBL 从 NAND FLASH 读取 UBOOT ,然后把 UBOOT COPY  DDR2(RAM) 的相关地址上,然后把 UBOOT  BOOT 起来。根据 TI DAVIN RBL 的规定,不同型号的 NAND FLASH  UBL 保存的地址是不同的, 512 字节 PAGE  NAND (即 SMALL PAGE ),保存的地址是: 0x00004000(16K,32页)  2048 字节 PAGE  NAND (即 LARGE PAGE )保存的地址是: 0x20000 (128K,64页)。

 

 

------------------------------------------------------我想说的话-----------------------------------------------------------------------

看来TI的片子与三星的有所不同。

据我了解,三星的片子上电后会自动从nandflash中搬移4kb到RAM,然后这4K的程序会完成后面的搬移工作。

而TI的片子,说RBL会从nand里执行指令,所以先nand的头上要放个ubl来帮助uboot boot起来。

不知道我这样理解是否正确。

——————————————————————————————————————————————

2011-8-11 添加

RBL, UBL, Uboot的关系:RBL=ROM Bootloader,UBL=user Bootloader。RBLTI固化在芯片ROM中的bootloader,OMAP上电启动过后首先将运行RBL,然后通过RBL加载UBL,再通过UBL加载uboot,而uboot就是用来加载Linux内核的。如果在具体应用过程中不需要使用到Linux(实际上一般都会用到的),uboot甚至是UBL都可以省去。UBL为一级Bootloader,uboot二级Bootloader,一级Bootloader的大小是有限制的(应该是64KB以下,没查到具体数值),这也是为什么会有二级Bootloader的原因。如果一个应用程序小于这个大小,那么我们可以不需要烧写UBL,而只用烧写该应用程序相应的bin文件(下面第3点将阐述如何得到这个文件)就行了。


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值