DM355的启动方式,nand boot,uart boot

http://blog.csdn.net/dog0138/archive/2008/11/29/3400915.aspx


DM355有两种启动方式,是由BTSEL[1:0]引脚决定的

第一种是从片外的Asynchronous EMIF (AEMIF) 启动 是指从片外的三星OneNAND 器件启动

//这儿我觉得是从nor flash启动?

第二种方式是从片内的ROM启动,执行ROM中的ROM boot loader (RBL),RBL支持三种片外介质,BTSEL决定RBL针对哪种介质进行启动

– BTSEL[1:0] = 00 - ARM NAND Boot
– BTSEL[1:0] = 10 - ARM MMC/SD Boot
– BTSEL[1:0] = 11 - ARM UART Boot

现在选择从片外的NAND启动,这种启动方式的具体步骤是RBL先从片外NAND上将UBL(user boot loader)取进ARM内部的RAM中(copies a second stage user boot loader (UBL) from NAND flash to ARM internal RAM (AIM) and transfers control to the user-defined UBL),然后执行,UBL进行的工作是从NAND中将剩下的数据取进DDR中并跳转到那里。

//实际上这跟3星的启动模式差不多,只不过大部分芯片是汇编拷贝,而这里是c语言拷贝,而且美其名曰UBL。


在NAND中存在两种代码,1是UBL,二是用户自己的代码APP,RBL是如何找到UBL的呢,原来对于UBL和APP在Nand中的存储必须符合一定的格式,在存储UBL或者APP代码的第一页是专门用来存储一个信息头,这个信息头的格式如下

/* Some of the parameters are modified runtime */
unsigned int ubldesc [] = {
0xA1ACED00, //Magic number
0x00000020, // Entry point for the UBL
0x00000007, // No. of pages for the UBL code
0x1, // Starting block of UBL in NAND
0x1 // Starting page of UBL in NAND
};

/* Some of the parameters are modified runtime */
unsigned int appdesc [] = {
0xB1ACED22, //Magic number
0x0000000A, // Start block in NAND
0x81080000, // Start address in DDR
0x81080000, // Entry point
0x00000200, // No. of pages for the complete Application
0x00000000  //compression flag
};

这个信息头分别包含了程序加载时的起始地址和入口点等等信息,当DM355复位时,片内ROM上的代码对NAND CONTROLLER进行初始化并且在NAND中寻找UBL的Magic number (事先已经约定好的),找到以后就根据信息头里提供的信息将UBL拷贝进片内RAM中(0x00000020, // Entry point for the UBL//这个可以改 ),然后进行执行,UBL的代码在光盘中有提供,其机制和RBL相同,只不过这个UBL是针对UBOOT的,如果不详执行UBOOT而是向执行自己的代码,那么需要将CCS编译出来的OUT文件转化成bin文件 下载到NAND中。


总结一下nand中存放的东西 UBL、uboot、LINUX的内核映像uimage、文件系统。

前两个的下载是用NAND_programmer进行,NAND_programmer的代码在光盘中也有,就是一段运行在DDR中的程序,将输入的UBL 和uboot文件加上信息头后存储到NAND中

后两个的下载用uboot就能实现。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值