类似从sd启动后,进入了u-boot。然后就要将一系列指令进行烧写到nand flash。
怎么启动就将这些指令一一运行??
mmc rescan
fatload mmc 0 0x82000000 MLO
nand erase 0x0 0x80000
nand write 0x82000000 0x0 0x20000
nand write 0x82000000 0x20000 0x20000
nand write 0x82000000 0x40000 0x20000
nand write 0x82000000 0x60000 0x20000
mmc rescan
fatload mmc 0 0x82000000 u-boot.bin
nand erase 0x80000 0x80000nand write 0x82000000 0x80000 0x80000
请问一下这是怎么弄的??
Jian Zhou:
把这些命令写成一个U-boot执行参数,比如flash。
在bootcommand里执行:run flash就可以自动运行了
andarm lin1:
回复 Jian Zhou:
主要想进行两个操作:
1、判断是否在SD卡启动,如果是才进行上面的指令。
2、如果不是sd卡,那就是nand启动了,这时只需要bootcommand将uImage启动就可以。
请问一下:这需要怎么制作。
andarm lin1:
回复 Jian Zhou:
但是还不知道怎么将 mmcboot 和 nandboot 里面的bootcmd给分开来写。。
还需要再具体点。谢谢了。
Jian Zhou:
回复 andarm lin1:
应该是是bootcmd包含mmcboot和nandboot这2个执行脚本,而不是mmcboot和nandboot里面包含bootcmd呀。
U-boot自动执行的内容就是bootcmd定义的执行脚本呀。
andarm lin1:
回复 Jian Zhou:
明白了。有没有现成的脚本文件?
Jian Zhou:
回复 andarm lin1:
u-boot源码目录下的:\include\configs\am335x_evm.h,里面有u-boot默认脚本参数和bootcommand,bootcommand默认是先SD启动然后NAND启动,你可以参考下
andarm lin1:
回复 Jian Zhou:
"mmcboot=mmc dev ${mmcdev}; " \ "if mmc rescan; then " \ "echo SD/MMC found on device ${mmcdev};" \ "if run loadbootenv; then " \ "echo Loaded environment from ${bootenv};" \ "run importbootenv;" \ "fi;" \ "if test -n $uenvcmd; then " \ "echo Running uenvcmd …;" \ //是在这里给变量 uenvcmd=nand write 0x82000000 0x0 0x20000 ???? 这样? "run uenvcmd;" \ "fi;" \ "if run loadimage; then " \ "run mmcloados;" \ "fi;" \ "run mmcbootcmd;"\ "fi;\0" \
还是不知道该如何的修改。
Jian Zhou:
回复 andarm lin1:
如果你希望u-boot先找有没有SD卡,如果有就从SD卡启动,如果没有去NAND上启动,那么这个脚本不需要修改。
不知道你最终是希望u-boot怎么启动。