参考资料:
《移植u-boot-1.1.6到TQ2440文档》
天嵌移植好的源码
移植环境
系统:华清远见虚拟机搭建的Ubuntu12.04
开发板:TQ2440
交叉编译器:crosstools_3.4.5_softfloat
CPU:S3C2440
SDRAM:64M
NOR Flash:2M
NAND Flsah:256M
NET:DM9000
移植过程
1、源代码下载
ftp://ftp.denx.de/pub/u-boot/
下载u-boot-1.1.6.tar.bz2并解压到Ubuntu中
2、文件删减
board/下除 smdk2410 以外的所有其它目标板文件夹删除
cpu/下除 arm920t 以外的所有其它cpu目录删除
根目录下lib_XXX 的库文件目录,只留下 lib_arm 和 lib_generic,其它lib_XXX 删除
include/目录下arm-XXX 的文件目录,只留下 asm-arm ,其它arm-XXX 删除
include/configs 目录下除 smdk2410.h 以外的所有其它配置头文件删除
3、建立自己的开发平台
进入u-boot-1.1.6目录,复制smdk2410为le2440
cp -rf board/smdk2410/ board/le2440
以下省略
编译测试
make 生成u-boot.bin文件,此时的bin文件不支持2440,还需要增加一些配置和驱动。
4、修改SDRAM配置,可以识别SDRAM
5、两种时钟设置方法(此处采用第二种)
6、make生成.bin文件,使用天嵌自带的BootLoader下载bin文件到SDRAM运行,可以识别到64M,注意此时还不能下载到nandflash中运行。
7、配置NORFlash,经过修改代码之后生成的bin文件下载到SDRAM中可以识别NORFlash为2M
8、增加NANDFlash读写驱动,修改代码之后识别到NANDFlash为256M
9、配置DM9000网卡,可以使用TFTP命令下载程序
10、支持NANDFlash启动,拷贝天嵌移植好的u-boot-1.1.6文件中的start.S 和 boot_init.c,编译后的bin文件完美支持NANDFlash启动
11、引导linux内核,上电启动u-boot之后,自动下载linux内核并启动。设置bootcmd命令:setenv bootcmd tftp 0x30000000 zImage.img; bootm 0x30000000
12、使用NFS挂载方式启动根文件系统,setenv bootargs root=/dev/nfs rw nfsroot=192.168.1.192:/source/rootfs ip=192.168.1.6 init=linuxrc console=ttySAC0
至此u-boot-1.1.6在TQ4220上的移植完成,详细步骤在参考资料里
以下为移植成功的附图: