首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

DM6446的Bootloader分析

DM6446的Bootloader分析

一、DM6446的启动模式

系统加电或复位后,CPU都要从某个预定的地址上取得指令,执行Bootloader程序。DM6446处理器ARM端(ARM-Side)提供两种启动模式:

从异步的外部存储器接口AEMIFAsynchronous External Memory Interface/NOR Flash引导启动

ARM内部ROMAIROMARM Inner ROM)引导启动
这两者由Boot SelectionBTSEL[1:0])引脚的设置状态决定。如下:

BTSEL[1:0]01时,系统加电或复位后ARM处理器从AEMIFNOR Flash的零地址(0x02000000)执行引导启动代码,这些代码是由用户生成并烧写的,即从外部存储器启动

BTSEL[1:0]01时,系统加电或复位后,ARM处理器从AIROM的地址(0x00004000)执行RBLROM Boot Loader),即从片内ROMRBL开始运行
RBL程序根据BTSEL[1:0]状态(BTSEL[0-3]管脚的电平)来区分不同引导启动模式:

BTSEL[1:0]00NAND Flash引导启动模式:发送控制信息到UBLUser Boot Loader),并从Flash中拷贝UBLARM的内部RAMAIRAM),并转到UBL执行

BTSEL[1:0]11UART引导启动模式:通过UART下载串口UBL并发送控制信息到用户软件

BTSEL[1:0]10,保留未用
         因此,DM6446在上电或复位后,存在四种启动方式。如下图。

DM6446引导启动流程


二、AIROM启动模式

AIROM
启动模式受两个限制:1)、AIRAM的空间只有16KB2)、NAND Flash不支持XIPeXecute-In-Place,片内执行)技术。因此,AIROM启动模式可以划分为三个阶段:

Stage1:加电或复位后,执行RBLRBLTI内嵌的程序,其内部实现不向用户公开;但提供了一个编程接口,以便设计人员据此编写UBL代码。

Stage2:将UBL拷贝到AIRAM中并执行。UBL被烧写在NAND Flash的从Block1开始的5个存储块上,因此UBL的尺寸小于AIRAM的空间大小,即14K

Stage3U-Boot。它被烧写在NAND Flash中的UBL后,由UBL读到DDR2中执行。

NAND Flash启动阶段划分

                           注:虚线部分为NAND引导启动核心
继承事业,薪火相传
返回列表