开发板提供的bootloader为uboot,每次都是按照文档进行操作,对uboot 的操作命令也是一知半解,现决定去理清清绪,写一篇有关uboot烧录linux内核和文件系统的详细说明。
1 设置开发板IP和tftp服务器IP
#set serverip 192.168..1.120
#set ipaddr 192.168.1.10
2 清除nand flash的信息
#nand erase clean
#nand erase 0 0x4000000
图 1
Sbc2440存储空间分布。
3 下载linux内核到地址30000000 内存中,
#tftp 30000000 uImage
-----------------------------------------------------
此时可以直接在内存中运行linxux内核,执行如下中的命令。
#bootm 30000000
------------------------------------------------------
也可以拷贝到nand flash 中去执行,固化到nand flash中。
#nand write 0x30000000 0x0 $(filesize)
图3
每次开机后,都需要把内核文件拷贝到内存(sdram)中去执行,故要执行以下命令。
#set bootcmd nand read 33000000 0 $(filesize)/;bootm 33000000
图 4
4 下载linux根文件系统。
#tftp 30000000 rootfs.img
#nand write 30000000 0x200000 $(filesize)
#set ipaddr ip=$(ipaddr):$(serverip):$(serverip):255.255.255.0:urbet:eth0:off
烧录的文件系统为jffs2
#set bootargs root=/dev/mtdblock1 rw rootfstype=jffs2 noinitrd init=/linuxrc console=ttySAC0,115200 $(ipaddr)
#saveenv
#reset