FL2440开发板的U-boot-2010.09版本移植(一)建立特定开发板的U-boot框架

时间:2021-08-13 17:11:33

        鉴于u-boot的2010.09版本之后的结构发生很大变化,特别是它启动步骤的改变,使得支持Nand flash启动支持的困难,我尝试了几次,最后从Nand flash启动后uboot的指令却无法支持了,而2010.09版本是U-boot结构发生较大改变的最后一个版本,其中已添加了S3C2440的支持(不像以前的版本需要在很多文件中的CONFIG_S3C2410后加上CONFIG_S3C2440),于是选择它作为fl2440的bootloader。

-----------------

本文只是建立了一个基于ARM体系ARM920TCPU的S3C2440三星SoC的FL2440开发板 的U-boot框架,并尝试编译。

-----------------

在Uboot中添加fl2440开发板的支持

1、打开U-boot-2010.09解压目录下的boards.cfg在smdk2410后添加fl2440的配置选项

  1. smdk2410          arm arm920t       -            samsung     s3c24x0  
  2. fl2440              arm arm920t     fl2440           -           s3c24x0  

2、在/board子目录中建立自己的开发板fl2440目录

yanghao@yanghao:~/Desktop/uboot/u-boot-2010.09$ cd board
yanghao@yanghao:
~/Desktop/uboot/u-boot-2010.09/board$ mkdir fl2440
yanghao@yanghao:
~/Desktop/uboot/u-boot-2010.09/board$ cp -arf samsung/smdk2410/* fl2440/
yanghao@yanghao:~/Desktop/uboot/u-boot-2010.09/board$ cd fl2440/
yanghao@yanghao:~/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/中建立开发板的配置头文件

yanghao@yanghao:~/Desktop/uboot/u-boot-2010.09$ cp include/configs/smdk2410.h include/configs/fl2440.h

4、添加fl2440的配置文件,测试编译能否成功
配置
yanghao@yanghao:~/Desktop/uboot/u-boot-2010.09$ make fl2440_config
Configuring for fl2440 board...
测试编译
yanghao@yanghao:~/Desktop/uboot/u-boot-2010.09$ make

正常情况下应该输出成功了~~~~

 

------------------------------

注意:如果编译时出现以下错误(这是编译器的问题,没出错就不要修改):

uses hardware FP, whereas u-boot uses software FP

这是由于gcc库文件采用硬件FP,而uboot用软件FP,所以在链接ld的时候出问题了。这跟gcc的版本有关,直接用3.4.5编译,这个问题就解决了。如果版本不支持,出错,则试试把uboot中的FP干掉。修改的方法:cpu/arm920t/config.mk的21行:PLATFORM_RELFLAGS += -fno-common -ffixed-r8 #-msoft-float ,删除msoft-float项。然后clean一下,重新make

修改转载自 http://blog.csdn.net/yanghao23/article/details/7687950