mindee,你好!
多谢你的回复。
不知道是不是我对datasheet理解有误,还是我的mini6410版本比较旧(版本1041).
下面是我的理解:
这里引用规格书
从规格书中可以知道,当OM[4:0] = 1111X,是IROM启动模式
如果对比6400规格书,可以知道,当OM[4:0]=0000x ~0011x,系统通过steppingstone机制,从Nandflash启动。这个可以参考这篇文档
http://blog.csdn.net/nanjianhui/article/details/4230565 下面在来看mini6410的电路:
从上面的电路CON5可以知道,
当S2拨向SDBOOT时,
OM[4:0] = 11111,对照规格书,Boot device 是 IROM;
GPN[15:13] = 000,对照规格书,说明IROM启动后,从SD0设备加载bootloader,即BL1。
当S2拨向Nand时
OM[4:0]=00111,对照规格书,对应的boot device是Reserved,但通过对比6400,我们知道是Nandflash
这时GPN[15:13],对boot device的选择没有影响。
结论如下:
1 从SD卡启动时,mini6410确实是通过IROM来启动的,(supperboot就是通过IROM加载到steppingstone,然后从0x0c00_0000开始运行的);
2 从Nand启动时,mini6410没有通过IROM来加载nandflash,直接通过硬件机制,把Nandflash前面4K代码加载到steppingstone,steppingstone地址映射到0x0000_0000,然后从地址0开始运行。此加载过程没有ECC校验。