今天解决了mini2440的bootloader问题。对于bootloader我主张使用多平台通用的bootloader,因为这样可以熟悉一个bootloader后,在硬件平台改变以后再次移植bootloader不至于手足无措。所以我选择了U-Boot。
U-Boot的最新版本是2009.03,而2009.06正在开发中已有测试版了。我使用2009.03发布版。对于这个版本在mini2440上的移植,Tekkaman Ninja 已经搞定了,我在这也就不浪费时间了。补丁发布的网页为:u-boot-2009.03 for mini2440 patch release。Tekkaman Ninja博客中也提供了u-boot-2009.01编译好的bin文件下载,可以直接使用。
补丁的使用:将补丁和源码至于同一目录下,然后进入uboot目录,并使用以下命令:
patch -p1 < ../u-boot-2009.03_tekkaman.patch
然后根据自己的交叉编译器修改Makefile的CROSS_COMPILE值,然后执行以下命令:
make mini2440_config
make
这样就可以编译出mini2440的uboot。使用tekkamanninja 补丁默认是从nand启动。
这里建议是:先修改/include/configs/mini2440.h,将其改为nor启动,然后在windows下用H-JATG烧到nor里,从nor引导后利用网络传入nandboot的bin文件,再用uboot自己的命令烧入nand。
这样mini2440就可以通过uboot来引导了,LCD也可以作为终端的输出。效果如下:
明天开始分析最新的android内核Linux-2.6.29同主线内核的不同,并制作补丁方便分析。