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板級源碼的整個過程。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM