查看: 2083|回复: 0

[Linux技术] 在ok210开发板上移植U-Boot

[复制链接]
  • TA的每日心情

    2014-4-10 13:56
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2014-1-21 10:09:44 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 forlinx2013 于 2014-1-24 09:46 编辑

    欢迎大家来到飞凌爱板网专区,对嵌入式技术感兴趣的朋友不妨多多关注一下,我们提供了公司所有开发板的所有资料,也会更新大量技术文章,欢迎大家一块学习提高!!!

    在ok210开发板上移植U-Boot 的过程主要包括以下四个步骤:
    1.下载U-Boot源码
    2.修改相应的文件代码
    3.编译U-Boot
    4.烧写到开发板上,运行
    U-Boot是universal bootloader,也就是通用的bootloader。它存在于nandflash或者SD卡中,它是在开机上点之后,操作系统起来之前用来引导的一个程序。U-boot 的主要作用是进行内存的初始化、CPU的初始化、串口初始化等一系列的初始化工作,完成这些之后,再将操作系统加载到内存中,从而运行起来。
    U-Boot 源码文件下包括一些目录文件和文本文件,这些文件可分为”与平台相关的文件与平台无关的文件,其中common文件夹下的文件就是与平台无关的文件;与平台相关的文件又分为CPU级相关的文件和与板级相关的文件:arch目录下的文件就是与CPU级相关的文件,而board、drivers、include等文件夹下的文件都是与板级相关的文件。我们在移植的过程中,需要修改的文件也就是这些与平台相关的文件。
    下面是移植2011.06版本到210处理器上时修改(或添加)的文件:
    以下文件均为与CPU级相关的文件
    uboot2011.06/arch/arm/cpu/armv7/start.s              
    uboot2011.06/arch/arm/cpu/armv7/Makefile
    uboot2011.06/arch/arm/include/asm/arch-s5pc1xx/hardware.h
    uboot2011.06/arch/arm/lib/board.c
    uboot2011.06/arch/arm/lib/Makefile
    uboot2011.06/arch/arm/config.mk
    以下文件均为与板级相关的文件
    uboot2011.06/board/samsung/OK210/tools/mkv210_image.c
    uboot2011.06/board/samsung/OK210/lowlevel_init.S
    uboot2011.06/board/samsung/OK210/mem_setup.S
    uboot2011.06/board/samsung/OK210/OK210.c
    uboot2011.06/board/samsung/OK210/OK210_val.h
    uboot2011.06/board/samsung/OK210/mmc_boot.c
    uboot2011.06/board/samsung/OK210/Makefile
    uboot2011.06/drivers/mtd/nand/s5pc1xx_nand.c
    uboot2011.06/drivers/mtd/nand/Makefile
    uboot2011.06/include/configs/OK210.h
    uboot2011.06/include/s5pc110.h
    uboot2011.06/include/s5pc11x.h
    uboot2011.06/spl/Makefile
    uboot2011.06/boards.cfg
    uboot2011.06/config.mk
    uboot2011.06/Makefile
    移植过程就是在新的U-Boot代码中增加与S5PV210开发板CPU级和Board级代码,使之能够在210开发板上面运行。
    1.看一下源代码里面是否有CPU级相关代码,比如S5PV210是ARMV7架构,看一下CPU目录下面是否有ARMV7的目录,因为U-Boot已经是开发板里面应用很广泛的Bootloader了,所以基本上都已经有了CPU级相关代码。
    2.下一步就是查看板级相关代码了。一款主流CPU发布的时候,厂商一般都会提供官方开发板,比如S5PV210发布的时候三星公司提供了官方开发板,使用的U-Boot是1.3.4版本,三星在U-Boot官方提供的1.3.4基础上面进行了改进,比如增加SD卡启动和NandFlash启动相关代码 等等。在移植新版本的U-Boot到开发板的时候,我们需要看一下U-Boot代码里面是否已经含有了板级代码,如果已经有了,就不需要自己改动了,编译以后就可以使用,而有的时候在较新的U-Boot代码里面,是不含有这些板级支持包的,这个时候就需要增加自己的板级包了。
    3.板级包的增加需要参考CPU官方提供的U-Boot代码,因为我们移植的是最小功能的U-Boot,让U-Boot能够运行起来即可,所以只需要抓最关键的代码,比如系统时钟的配置,DDR2内存的初始化代码,调试串口的初始化等,这些代码是需要参考U-Boot1.3.4的,不需要我们自己去写每一行,但是需要我们知道U-Boot 能够在S5PV210上面运行起来,必须做的工作


    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-5-16 08:40 , Processed in 0.110031 second(s), 15 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.