原文:http://blog.chinaunix.net/uid-20632682-id-82272.html
固化系统,包括固化x-load、U-Boot、Kenel以及rootfs。需要借助SD卡进行固化。
在SD卡中存入如下文件:
MLO ——x-load的SD版本,第一个存放,仅用于SD卡启动。
x-load.bin.ift —— x-load的NAND FLASH版本,最终要固化到NAND上的。
u-boot.bin —— u-boot镜像文件,需要固化到NAND的。
uImage —— Linxu内核文件,需要固化到NAND的。
ramdisk.gz —— ramdisk,用于引导系统并固化rootfs。
rootfs.tar.bz2 —— 最终的rootfs。
插入SD卡,选择从SD启动系统,进入U-Boot的命令提示符,
输入 nand scrub,擦除整块NAND FLASH。
输入 run burn_xload 固化x-load
输入 run burn_uboot 固化uboot
输入 run burn_kernel 固化Linux内核
然后输入 run ramboot,选择通过ramdisk启动系统,等系统启动完成,运行burn_rootfs脚本,实现rootfs的固化。
固化完成后,拔掉SD卡,重新启动系统即可进入正常的用户系统了。
U-Boot中相关的命令:
"bootdelay=" "3 "
"baudrate=" "115200 "
"loadaddr=" "0x80200000 "
"rdaddr=" "0x81600000 "
"kernel_ofs=" "0x280000 "
"burn_xload=" "mw.b 0x80000000 0xFF 0x100000; mmcinit; "
"fatload mmc 0:1 0x80000000 x-load.bin.ift;"
"nand unlock; nand erase 0 40000; nandecc hw; "
"nand write.i 0x80000000 0 40000; nand lock; "
"burn_uboot=" "mw.b 0x80000000 0xFF 0x100000; mmcinit;"
"fatload mmc 0:1 0x80000000 u-boot.bin;"
"nand unlock; nand erase 0x80000 0x1C0000;"
"nandecc sw; nand write.i 0x80000000 0x80000 0x1C0000;nand lock; "
"burn_kernel=" "mw.b 0x80000000 0xFF 0x500000; mmcinit;"
"fatload mmc 0:1 0x80000000 uImage;"
"nand unlock; nand erase ${kernel_ofs} 0x500000;"
"nandecc sw; nand write.i 0x80000000 ${kernel_ofs} 0x300000; nand lock;"
"setenv kernelsize ${filesize}; saveenv "
"console=" "ttyS2,115200n8 "
"optargs=" "mem=99M "
"mmcargs=" "setenv bootargs console=${console} ${optargs}"
" root=/dev/mmcblk0p2 rw rootfstype=ext3 rootwait "
"ramargs=" "setenv bootargs console=${console} ${optargs} root=/dev/ram0 rw"
"ramdisk_size=32768 initrd=${rdaddr},32M "
"ubifsargs=" "setenv bootargs console=${console} ${optargs} root=ubi0:rootfs "
"ubi.mtd=0 rw rootfstype=ubifs "
"loadbootscript=" "fatload mmc 0 ${loadaddr} boot.scr "
"loadbootscript=" "fatload mmc 0 ${loadaddr} boot.scr "
"bootscript=" "echo Running bootscript from mmc ...; autoscr ${loadaddr} "
"load_kernel_nand=" "nand read ${loadaddr} 0x280000 ${kernelsize} "
"loaduimage=" "mmcinit; fatload mmc 0 ${loadaddr} uImage "
"loadramdisk=" "mmcinit; fatload mmc 0 ${rdaddr} ramdisk.gz "
"mmcboot=" "run loaduimage; run mmcargs; bootm ${loadaddr} "
"ramboot=" "run loaduimage; run loadramdisk; run ramargs; bootm ${loadaddr} "
"nandboot=" "run load_kernel_nand; run ubifsargs; bootm ${loadaddr} "
"nfsboot=" "tftp ${loadaddr} uImage; mmcinit; run loadramdisk;"
"run ramargs; bootm ${loadaddr} "