zoukankan      html  css  js  c++  java
  • NXP官方的I.MX6UL板级Uboot源码适配

    1、前言

    CoM-P6UL是盈鹏飞科技有限公司基于NXP原厂I.MX6UL芯片生产研发的核心板,本文将对CoM-P6UL适配NXP的基于Linux4.1.15版本的uboot板级源码的过程进行介绍。

    2、开发环境

    目标板:CoM-P6UL(RAM:256MB,Nand Flash:256MB)

    主机:Linux ubuntu 4.15.0-70-generic

    交叉编译工具链:gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf

     源码下载链接:http://git.freescale.com/git/

    3、官方uboot移植适配

    下载源码后,先对NXP官方的i.mx6ul evk的评估板源码进行编译,检查是否能编译成功:

    解压uboot源码,并进入到uboot源码根目录:

    $ tar -xvjf uboot-imx-rel_imx_4.1.15_2.1.0_ga.tar.bz2
    $ cd uboot-imx-rel_imx_4.1.15_2.1.0_ga/

    接下来,尝试开始编译NXP官方的uboot源码:

    $ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- clean
    $ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ul_14x14_evk_nand_defconfig
    $ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-

    如果在源码根目录出现uboot.imx文件则编译通过,如下所示:

    当NXP官方uboot源码能编译通过后,接下来开始将源码适配CoM-P6UL核心板,因为我们编译的只是NXP官方的Demo评估板源码而已,评估板的RAM和Nand Flash的大小和配置和Com-P6UL核心板的都是不一样的,所以需要进行适配。

    修改uboot源码文件夹:

    $ mv uboot-imx-rel_imx_4.1.15_2.1.0_ga uboot-imx-rel_imx_4.1.15_comp6ul/
    $ cd uboot-imx-rel_imx_4.1.15_comp6ul/

    修改uboot源码顶层Makefile,指定ARCH架构和CROSS_COMPILE交叉编译工具链,如下:

    $ vim Makefile

    接下来添加开发板的默认配置文件deconfig:

    $ cd configs/
    $ cp mx6ul_14x14_evk_nand_defconfig mx6ul_comp6ul_nand_defconfig
    $ vim mx6ul_comp6ul_nand_defconfig

    将defconfig文件配置修改如下所示:

    defconfig文件修改完成后,保存后并退出vim编辑器。

    接下来添加comp6ul核心板的头文件,目录为include/configs下:

    $ cd include/configs
    $ cp mx6ul_14x14_evk.h mx6ul_comp6ul_nand.h
    $ vim mx6ul_comp6ul_nand.h

    ***

    接下来添加开发板对应的板级文件:

    $ cd board/freescale
    $ cp -r mx6ul_14x14_evk/ mx6ul_comp6ul_nand

    修改新添加目录下的文件:

    $ cd mx6ul_comp6ul_nand/
    $ mv mx6ul_14x14_evk.c mx6ul_comp6ul_nand.c

    接下来修改新添加的板级目录下的Makefile文件:

    $ vim Makefile

    修改如下,编译的时候才能将添加的.c文件进行编译:

    接下来修改imximage.cfg文件,该文件用于添加输出的uboot.bin文件的IVT和DCD数据:

    $ vim imximage.cfg

    该文件修改如下所示:

    NXP官方的i.mx6ul评估板的DDR容量是512MB的,但是现在这个目标板Com-P6UL是256MB的,因此,需要修改imximage.cfg中有关DDR控制寄存器的相关值,先使用NXP官方的ddr_stress_tester工具对DDR进行较准,然后根据对应的.inc文件进行寄存器的值修改,关于ddr_stress_tester工具的使用,可以参考下面的链接:

    https://www.cnblogs.com/Cqlismy/p/11968276.html

    寄存器值修改后如下:

    /* Enable all clocks */
    DATA 4 0x020c4068 0xffffffff
    DATA 4 0x020c406c 0xffffffff
    DATA 4 0x020c4070 0xffffffff
    DATA 4 0x020c4074 0xffffffff
    DATA 4 0x020c4078 0xffffffff
    DATA 4 0x020c407c 0xffffffff
    DATA 4 0x020c4080 0xffffffff
    
    DATA 4 0x020E04B4 0x000C0000
    DATA 4 0x020E04AC 0x00000000
    DATA 4 0x020E027C 0x00000028
    DATA 4 0x020E0250 0x00000028
    DATA 4 0x020E024C 0x00000028
    DATA 4 0x020E0490 0x00000028
    DATA 4 0x020E0288 0x00000028
    DATA 4 0x020E0270 0x00000000
    DATA 4 0x020E0260 0x00000028
    DATA 4 0x020E0264 0x00000028
    DATA 4 0x020E04A0 0x00000028
    DATA 4 0x020E0494 0x00020000
    DATA 4 0x020E0280 0x00000028
    DATA 4 0x020E0284 0x00000028
    DATA 4 0x020E04B0 0x00020000
    DATA 4 0x020E0498 0x00000028
    DATA 4 0x020E04A4 0x00000028
    DATA 4 0x020E0244 0x00000028
    DATA 4 0x020E0248 0x00000028
    DATA 4 0x021B001C 0x00008000
    DATA 4 0x021B0800 0xA1390003
    DATA 4 0x021B080C 0x00000000
    DATA 4 0x021B083C 0x0154014C
    DATA 4 0x021B0848 0x40404246
    DATA 4 0x021B0850 0x4040564E
    DATA 4 0x021B081C 0x33333333
    DATA 4 0x021B0820 0x33333333
    DATA 4 0x021B082C 0xF3333333
    DATA 4 0x021B0830 0xF3333333
    DATA 4 0x021B08C0 0x00921012
    DATA 4 0x021B08b8 0x00000800
    DATA 4 0x021B0004 0x0002002D
    DATA 4 0x021B0008 0x1B333030
    DATA 4 0x021B000C 0x3F4352F3
    DATA 4 0x021B0010 0xB66D0B63
    DATA 4 0x021B0014 0x01FF00DB
    DATA 4 0x021B0018 0x00211740
    DATA 4 0x021B001C 0x00008000
    DATA 4 0x021B002C 0x000026D2
    DATA 4 0x021B0030 0x00431023
    DATA 4 0x021B0040 0x00000047
    DATA 4 0x021B0000 0x83180000
    DATA 4 0x021B001C 0x02008032
    DATA 4 0x021B001C 0x00008033
    DATA 4 0x021B001C 0x00048031
    DATA 4 0x021B001C 0x15208030
    DATA 4 0x021B001C 0x04008040
    DATA 4 0x021B0020 0x00000800
    DATA 4 0x021B0818 0x00000227
    DATA 4 0x021B0004 0x0002556D
    DATA 4 0x021B0404 0x00011006
    DATA 4 0x021B001C 0x00000000

    接下来,修该新添加的板级目录下的Kconfig文件:

    $ vim Kconfig

    修改内容如下所示:

    接下来修改MAINTAINERS文件:

    $ vim MAINTAINERS

    修改的内容如下所示:

    接下来修改uboot图形界面的Kconfig配置文件,目录如下:

    uboot/arch/arm/cpu/armv7/mx6/

    Kconfig修改如下所示:

    再把新添加的板级目录的Kconfig文件目录加入,如下:

    到这里,uboot源码的修改基本完成,接下则是进行编译:

    $ make clean
    $ make mx6ul_comp6ul_nand_defconfig
    $ make

    编译成功如下所示:

    接下来,就可以使用NXP官方提供的MfgTools软件进行uboot更新到Nand Flash中了,并检测uboot是否能适配成功。

    4、小结

    本文主要简单介绍了对CoM-P6UL适配NXP的基于Linux4.1.15版本的uboot板级源码的整个过程。

  • 相关阅读:
    商业智能领域需要了解的数据库优化理论
    动态监听与静态监听(转载)
    Oracle查看表结构的几种方法
    PLSQL Developer使用技巧整理
    Oracle数据库的三种验证机制
    EAV模型
    三门问题
    第一个python实例程序
    type()
    pi
  • 原文地址:https://www.cnblogs.com/Cqlismy/p/11961485.html
Copyright © 2011-2022 走看看