鉴于u-boot的2010.09版本之后的结构发生很大变化,特别是它启动步骤的改变,使得支持Nand flash启动支持的困难,我尝试了几次,最后从Nand flash启动后uboot的指令却无法支持了,而2010.09版本是U-boot结构发生改变的最后一个版本,其中已添加了S3C2440的支持(不像以前的版本需要在很多文件中的CONFIG_S3C2410后加上CONFIG_S3C2440),于是选择它作为fl2440的bootloader。
相关阅读:
U-Boot源代码下载地址 http://www.linuxidc.com/Linux/2011-07/38897.htm
FL2440的U-boot-2010.09移植(一)http://www.linuxidc.com/Linux/2012-06/63755.htm
FL2440的U-boot-2010.09移植(二)http://www.linuxidc.com/Linux/2012-06/63756.htm
FL2440的U-boot-2010.09移植(三)DM9000网卡及开发板相关配置 http://www.linuxidc.com/Linux/2012-07/64155.htm
FL2440的U-boot-2010.09移植(四) 添加NOR FLash启动支持 http://www.linuxidc.com/Linux/2012-07/64156.htm
FL2440的U-boot-2010.09移植(五)uboot架构中NAND FLash驱动修改 http://www.linuxidc.com/Linux/2012-07/64157.htm
FL2440的U-boot-2010.09移植(六)NAND FLash启动支持 http://www.linuxidc.com/Linux/2012-07/641587.htm
FL2440的U-boot-2010.09移植(七)LCD的支持 http://www.linuxidc.com/Linux/2012-07/641587.htm
针对FL2440开发板的u-boot-2010.09版本补丁 http://www.linuxidc.com/Linux/2012-07/64116.htm
在Uboot中添加fl2440开发板的支持
1、打开U-boot-2010.09解压目录下的boards.cfg在smdk2410后添加fl2440的配置选项:
2、在/board子目录中建立自己的开发板fl2440目录
www.linuxidc.com @linuxidc:~/Desktop/uboot/u-boot-2010.09$ cd board
www.linuxidc.com @linuxidc:~/Desktop/uboot/u-boot-2010.09/board$ mkdir fl2440
www.linuxidc.com @linuxidc:~/Desktop/uboot/u-boot-2010.09/board$ cp -arf samsung/smdk2410/* fl2440/
www.linuxidc.com @linuxidc:~/Desktop/uboot/u-boot-2010.09/board$ cd fl2440/
www.linuxidc.com @linuxidc:~/Desktop/uboot/u-boot-2010.09/board/fl2440$ mv smdk2410.c fl2440.c
还要记得修改自己的开发板fl2440目录下的Makefile文件28行,不然编译时会出错:
修改Makefile的依赖文件
COBJS := smdk2410.o flash.o 为 COBJS := fl2440.o flash.o
3、在include/configs/中建立开发板的配置头文件
www.linuxidc.com @linuxidc:~/Desktop/uboot/u-boot-2010.09$ cp include/configs/smdk2410.h include/configs/fl2440.h
(4)添加fl2440的配置文件,测试编译能否成功
配置
www.linuxidc.com @linuxidc:~/Desktop/uboot/u-boot-2010.09$ make fl2440_config
Configuring for fl2440 board...
测试编译
www.linuxidc.com @linuxidc:~/Desktop/uboot/u-boot-2010.09$ make
正常情况下应该输出成功了
注意:如果编译时出现以下错误(这是编译器的问题,没出错就不要修改):
uses hardware FP, whereas u-boot uses software FP
修改的方法:cpu/arm920t/config.mk的21行:PLATFORM_RELFLAGS += -fno-common -ffixed-r8 #-msoft-float ,删除msoft-float项。然后clean一下,重新make
针对FL2440开发板的u-boot-2010.09版本补丁 http://www.linuxidc.com/Linux/2012-07/64116.htm
一、汇编文件修改,这部分主要集中修改修改cpu/arm920t/start.S文件。
1、删除AT91RM9200使用的LED代码,117、118行,关闭LED代码。
2、修改编译条件支持s3c2440,修改寄存器地址定义,修改 CPU频率初始化设置
3、修改中断禁止部分
4、修改时钟设置(2440的主频为405MHz),紧接着上面一步,在其后添加和修改为:
5、修改SDRAM的REFRESH刷新周期,修改board/fl2440/lowlevel_init.S文件