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页)。 |