• 13789阅读
  • 10回复

u-boot移植到mini2440,还有linux2.6.27.9 [复制链接]

上一主题 下一主题
离线hugerat
 
只看楼主 倒序阅读 楼主  发表于: 2009-01-20
— 本帖被 XChinux 设置为精华(2009-02-05) —
我移植的最新版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重新编辑 ]
离线hugerat
只看该作者 1楼 发表于: 2009-01-21
没人顶?
离线gt945
只看该作者 2楼 发表于: 2009-02-16
我来顶~~~~~~~~~~~
离线armtt6
只看该作者 3楼 发表于: 2009-02-19
帮你顶起来,这文章对我有帮助
离线crazy024
只看该作者 4楼 发表于: 2009-02-19
定个
离线jerrypm

只看该作者 5楼 发表于: 2009-02-20
好东西,顶一个!!!!!!!!!!!!!!
离线sodwell

只看该作者 6楼 发表于: 2009-02-20
u-boot是个好东西,功能非常的强大,但是启动2410 2440速度实在是太慢了,用VIVI启动 非常快,做产品的话还是用VIVI比较好!
大家都说在用U-BOOT,不知道有多少人解决了系统启动速度问题?在U-BOOT完成系统配置,拷贝NANDFLASH kernel 到SDARAM,然后解压缩并启动,这个时间用VIVI的话,filesystem都挂载了,整机都启动完毕了,
离线hugerat
只看该作者 7楼 发表于: 2009-02-20
呵呵,做产品的话,最好是自已写一个了。最快。功能最简单,速度当然也最快。实际上我的项目中就是用自已写的bootloader。学习的话,因为u-boot学得人多,资料多,当然是不二选择。
离线sodwell

只看该作者 8楼 发表于: 2009-02-21
做产品的话,由于启动时间问题,不得不放弃U-BOOT,尽管它功能强大,除非系统不在乎启动时间。非则整机启动(含qt-GUI),大于20S,甚至接近30S,是不能接受的。

但是自己写BOOTLOADER 或其他,有一个问题就是系统升级怎么办?系统维护怎么办?产品批量卖出后出现严重BUG,怎么办?难道自己在BOOTLOADER里面写一个U盘自动升级程序?稳定 可靠吗?

一直在思考这个问题,在我们公司也有这样的问题出现!自己写的u盘升级会不稳定,对U盘造成毁坏。


难道uboot不能启动快点吗?
离线jssx
只看该作者 9楼 发表于: 2009-02-21
想研究它的源码
离线kedechuan
只看该作者 10楼 发表于: 2009-09-09
源代码不懂……
快速回复
限100 字节
 
上一个 下一个