●地址映射
● IRAM
● IROM启动方式:
• NAND Flash
• OneNAND
• MMC or SD Memory including MoviNAND and iNAND
• USB
不支持大于2G MMC卡起动。
● 起动过程:
引导代码分为BL0 (1st boot loader) 和 BL1(2nd boot loader).
BL0固化在内部IROM,CPU复位后首先运行BL0,将存放在外部存储设备中的BL1加载到内部IRAM然后运行BL1。BL1初始化动态内存DRAM,然后将OS加载到DRAM运行OS。
● BL0引导顺序:
1. 初始化PLL和时钟,将其设定为固定值;
2. 初始化栈和堆区域;
3. 初始化指令Cache 控制器;
4. 从外部起动设备中加载BL1;
5. 如果起动安全机制开启,则检查BL1数据完整性;
6. 如果校验通过,则跳转到0x34010地址处运行;
7. 如果校验失败则停止。
•如果从SD/MMC起动,BL0将SD/MMC最后的9KB数据加载到0x34000处运行。
•如果从OneNAND 和NAND起动,BL0将开始的16KB数据加载到0x34000处运行。
•坏块标记位置:如果是512B页的NAND,块坏标记在附加区域的第6个字节,如果是其它NAND,块坏标记在附加区域的第一个字节。
•如果从其它起动设备起动失败,BL0会将一个错误代码写入内部一个寄存器(0xE010841C),然后从USB起动。