基于FL2440开发板的U-boot移植记录

参考文章:[http://blog.csdn.net/yanghao23/article/details/7687950]

一.简要解说 make xxx_config命令

uboot中 make xxx_config 是执行mkconfig脚本,大致是去boards.cfg里grep对应的xxx,boards.cfg文件内容截取如下:

# Target        ARCH CPU     Board name  Vendor      SoC
smdk2410        arm arm920t     -       samsung     s3c24x0  
fl2440          arm arm920t     fl2440      -       s3c24x0  //自己添加的

grepg到相应的Target后,提取出对应的board,cpu,arch自动生成 ./include/config.h 和 ./include/config.mk 文件并创建链接./include/asm -> ../arch/arm/include/asm,以下是make fl2440_config和make smdk2410分别得出的结果对比:

  • 其中config.h里是

    • make fl2440_config的结果:

      1 /* Automatically generated - do not edit */                                            
      2 #define CONFIG_BOARDDIR board/fl2440     //此处定义了开发板相关文件的目录,  board/vendor/target 
      3 #include <config_defaults.h>
      4 #include <configs/fl2440.h>             //配置头文件
      5 #include <asm/config.h>
    • make smdk2410_config的结果

      1 /* Automatically generated - do not edit */                                 
      2 #define CONFIG_BOARDDIR board/samsung/smdk2410
      3 #include <config_defaults.h>
      4 #include <configs/smdk2410.h
      5 #include <asm/config.h>
  • 其中config.mk里是boards.cfg里的信息

    • make fl2440_config的结果

      1 ARCH   = arm    
      2 CPU    = arm920t
      3 BOARD  = fl2440
      4 SOC    = s3c24x0
    • make smdk2410结果

      1 ARCH   =arm              
      2 CPU    = arm920t
      3 BOARD  = smdk2410
      4 VENDOR = samsung
      5 SOC    = s3c24x

    所以,移植uboot到你的开发板时,在使用make xxx_config配置文件前要先在boards.cfg中加上你的开发板信息,加入配置头文件(与boards.cfg中的Target一置)/include/configs/xxx.h ,在board/vendor/xxx/下加入开发板的一些C文件等,如果未添vendor则直接添加到board/xxx/下。


二.具体修改步骤:

综上所述,移植uboot第一步要修改三个地方:

  1. 修改boards.cfg,添加对FL2440开发板的支持,Target是配置头文件的名字

    
    # Target        ARCH CPU     Board name  Vendor      SoC
    
    fl2440          arm arm920t     fl2440      -       s3c24x0  //vendor为空时,fl2440目录直接在/board/下建立就行。
  2. 在include/configs/中建立开发板的配置头文件,此处的头文件名要与上一步的Target对应,不然make fl2440_config时找不到配置文件会出如下错误:

        make: *** No rule to make target `fl2440_config'.  Stop.
        make: *** [fl2440_config] Error 1
       anzyelay@ubuntu:u-boot-2010.09$ cp include/configs/smdk2410.h include/configs/fl2440.h 
  3. 因为vendor为空,所以直接在board/目录下添加开发板的目录 fl2440/ ,并将smdk2410中的文件全部拷贝过来,更改smdk2410.c为fl2440.c ,更改同级的Makefile中的依赖文件(如果没有改smdk2410.c则可以不用改)

    anzyelay@ubuntu:u-boot-2010.09$ cp board/samsung/smdk2410/ board/fl2440 -r
    anzyelay@ubuntu:u-boot-2010.09$ ls board/fl2440/
    config.mk  flash.c  lowlevel_init.S  Makefile  smdk2410.c
    anzyelay@ubuntu:u-boot-2010.09$ mv board/fl2440/smdk2410.c board/fl2440/fl2440.c
    anzyelay@ubuntu:u-boot-2010.09$ vi board/fl2440/Makefile +28
    COBJS   := fl2440.o flash.o   // 未改时为COBJS   := smdk2410.o flash.o  
  4. 配置 ,成功后如下所示

    anzyelay@ubuntu:u-boot-2010.09$ make fl2440_config
    Configuring for fl2440 board...
    anzyelay@ubuntu:u-boot-2010.09$ 
  5. 编译 看看前面的修改是否正确

    anzyelay@ubuntu:u-boot-2010.09$ make

第一步成功后就说明基本的开发板配置OK了下面就是更改汇编文件


三.修改CPU启动代码

anzyelay@ubuntu:u-boot-2010.09$ vi arch/arm/cpu/arm920t/start.S 

….

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值