AM1808提供两个外部存储器的接口:外存支持NOR、NAND、SDRAM 内存支持DDR2、 Mobile DDR 。AM1808核心板采用128M的Nand Flash和512M的DDR2。
AM1808启动过程分析:
1、 开机上电,用户在 BOOT 管脚上配置的启动方式被锁定采样到 SYSCFG 模块的BOOTCFG寄存器,从而确定处理器的启动方式。
2、 第一次检测启动模式,如果为非Nor Flash启动模式则统一进入RBL(固化在ROM中的一段bootloader)。
3、 RBL做一些初始化后,再次根据 BOOTCFG 寄存器的设定,从指定的地方读取用于启动 U-Boot 的 Bootloader,即 U-Boot BootLoader简称 UBL。UBL 可以放在 NandFlash 或者通过串口下载等方式取得。值得说明的是,这里的 UBL 是 (AIS Application ImageScript ) 格式,而不是通常的 BIN 格式。
4、 在Uart2启动模式下,重启板子会返回BootMe至Uart2,此时可以通过相关工具下载UBL和U-Boot至处理器的RAM或者NandFlash中(通过slh_OMAP-L138.exe下载到RAM中,而通过sfh_OMAP-L138.exe下载到Flash中)。
5、 当RBL读取到 UBL后就根据 AIS 格式中的命令初始化、加载并运行UBL。然后就是 UBL 加载运行 U-Boot,U-Boot根据启动参数启动 Linux,Linux 根据启动参数加载根文件系统。
引入RBL和UBL的原因:
由于RBL的加载过程是将UBL拷贝到ARM的内部RAM中,因此对于UBL的大小限制在14 KB以内,但是在嵌入式环境常用的U-BOOT、ViVi等的大小都远超过这个限制,因此需要多级加载,一级引导程序主要做系统的初始化,然后将二级引导程序(我们采用U-BOOT)从NAND Flash中读取到RAM中,然后启动它,由U-BOOT负责操作系统的引导。于是整个NAND Flash上系统构建的关键问题包括如何移植UBL,以使其能够正常初始化系统,正常加载二级引导程序U-BOOT到RAM中。
另附上AM1808 StarterWare软件使用笔记
AM1808 StarterWare软件使用笔记.doc
(166.5 KB, 下载次数: 71)