我移植的最新版
u-boot2008.10,用在
mini2440开发板上,也可用在阳初公司的2410上。支持
yaffs映像烧写,支持
nand flash启动,支持网卡。是用非nand legacy方式。提供移植过程和源码。
详情请看我的博客。
http://blog.chinaunix.net/u2/75270/showart.php?id=1779196有很多朋友向我要镜像文件以方便使用。故在此放出下载地址。
u-boot+linux2.6.27.9 kernel的镜像
http://www.namipan.com/d/b4cad408d57164b14eca8feb061487113268b00273321800配套的根文件系统镜象
http://www.namipan.com/d/f225557553500eaeb4cdf4a8606f4a5ec0ac6a1030f70101我对nand flash的空间划分如下。其中0x40000~0x50000的空间
没有使用。作为保留空间。
uboot : 0x00000000 0x00030000 0
param : 0x00030000 0x000040000 0
kernel : 0x00050000 0x00200000 0
root : 0x00250000 0x03dac000 0
用mini2440的vivi将u-boot.bin烧入上述的uboot空间。方法在mini2440的说明书上有说明。我就不重复了。
烧入镜像后,记住将mini2440的启动开关拔到nand flash上,这样,才能从我的u-boot上启动。第一次启动时,会报param crc错误,这是因为参数区内还没有数据所致。当你保存过参数后,此错误不会再报。将bootcmd的参数改变成从nand flash引导kernel。方法是在u-boot提示符下输入: set bootcmd 'nand read 0x31000000 0x50000 0x00200000;bootm 0x31000000'
再改变bootargs,使得从nand flash启动根文件系统。方法是在u-boot提示符下输入:set bootargs 'noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttySAC0'
为了能正常使用tftp下载,应设置serverip为tftp服务器的IP地址。例如,输入set serverip '192.168.1.80',最后输入saveenv保存参数。
打开TFTP服务器。在u-boot下输入tftp 0x30000000 uImage,稍等,即可成功下载uImage到内存中了。再输入nand erase 0x50000 0x200000删除掉kernel空间原有的数据。再输入nand write 0x30000000 0x50000 0x200000,将内存中的kernel烧入nand flash。接下来,输入tftp 30000000 rat_root,将根文件系统镜象下载到内存中,再输入nand erase 0x250000 0x3dac000将root空间内原有数据
删除。再输入nand write.yaffs 0x30000000 0x250000 0x101f730,其中0x101f730是root镜象的size,一定不能写错,它可以tftp下载完毕后看到。如写错了,可能会形成假坏块。然后,就是等待。等烧写完成后,重启开发板就可以正常引导到新版的内核中了。我移植的内核使用mdev来生成设备文件,而原配的文件系统不支持mdev,所以我的内核只能配合我的root。
[ 此贴被hugerat在2009-02-20 21:37重新编辑 ]