U_BOOT_CMD(nboot, 4, 1, do_nandboot,
"boot from NAND device",
"[partition] | [[[loadAddr] dev] offset]"
"boot from NAND device",
"[partition] | [[[loadAddr] dev] offset]"
);
看帮助提示很容易明白,nboot是uboot指令--将nand flash中的内容加载到sdram中,比如"nboot 0x30000000 0 0x60000\;bootm
0x30000000是拷到的sdram的地址,0是nand flash设备号,0x60000是内核在nand flash的地址。再通过bootm从0x30000000启动内核。
但是这里有个疑问,nboot怎么知道你内核的大小,需要拷贝多少内容?
由于uImage的前64个字节是zImage的描述信息,所以do_nandboot能知道需要加载的kernel的size。