提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
[1、修改 mx6ull_alientek_emmc 目录下的 Makefile 文件](#1、修改 mx6ull_alientek_emmc 目录下的 Makefile 文件)
[2、修改 mx6ull_alientek_emmc 目录下的 imximage.cfg 文件](#2、修改 mx6ull_alientek_emmc 目录下的 imximage.cfg 文件)
[3、修改 mx6ull_alientek_emmc 目录下的 Kconfig 文件](#3、修改 mx6ull_alientek_emmc 目录下的 Kconfig 文件)
[4、修改 mx6ull_alientek_emmc 目录下的 MAINTAINERS 文件](#4、修改 mx6ull_alientek_emmc 目录下的 MAINTAINERS 文件)
[4、修改 U-Boot 图形界面配置文件](#4、修改 U-Boot 图形界面配置文件)
前言
在上一篇博客中我们编译烧写了NXP 官方 的uboot,接下来我们要在此uboot中添加我们的开发板或者开发平台。
1、添加开发板默认配置文件
先在 configs 目录下创建默认配置文件,复制 mx6ull_14x14_evk_emmc_defconfig ,然后重
命名为 mx6ull_alientek_emmc_defconfig ,命令如下:
cd configs
cp mx6ull_14x14_evk_emmc_defconfig mx6ull_alientek_emmc_defconfig
然后将mx6ull_alientek_emmc_defconfig中的内容改成如下所示:
CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/mx6ull_alientek_emmc/imximage.cfg,MX6ULL_EVK_EMMC_REWORK"
CONFIG_ARM=y
CONFIG_ARCH_MX6=y
CONFIG_TARGET_MX6ULL_ALIENTEK_EMMC=y
CONFIG_CMD_GPIO=y
可以看出, mx6ull_alientek_emmc_defconfig 基本和 mx6ull_14x14_evk_emmc_defconfig 中
的内容一样,只是第 1 行和第 4 行做了修改。
2、添加开发板对应的头文件
在 目 录 include/configs 下 添 加 I.MX6ULL-ALPHA 开 发 板 对 应 的 头 文 件 , 复 制
include/configs/mx6ullevk.h ,并重命名为 mx6ull_alientek_emmc.h ,命令如下:
cp mx6ullevk.h mx6ull_alientek_emmc.h
拷贝完成后将:
#ifndef __MX6ULLEVK_CONFIG_H
#define __MX6ULLEVK_CONFIG_H
改为:
#ifndef __MX6ULL_ALIENTEK_EMMC_CONFIG_H
#define __MX6ULL_ALIENTEK_EMMC_CONFIG_H
mx6ull_alientek_emmc.h 里面有很多宏定义,这些宏定义基本用于配置 uboot,也有一些
I.MX6ULL 的配置项目。如果我们自己要想使能或者禁止 uboot 的某些功能,那就在 mx6ull_alientek_emmc.h 里面做修改即可。
3、添加开发板对应的板级文件夹
uboot 中每个板子都有一个对应的文件夹来存放板级文件,比如开发板上外设驱动文件等
等。 NXP 的 I.MX 系列芯片的所有板级文件夹都存放在 board/freescale 目录下,在这个目录下
有个名为 mx6ullevk 的文件夹,这个文件夹就是 NXP 官方 I.MX6ULL EVK 开发板的板级文件
夹。复制 mx6ullevk ,将其重命名为 mx6ull_alientek_emmc ,命令如下:
cd board/freescale/
cp mx6ullevk/ -r mx6ull_alientek_emmc
进 入 mx6ull_alientek_emmc 目 录 中 , 将 其 中 的 mx6ullevk.c 文 件 重 命 名 为
mx6ull_alientek_emmc.c ,命令如下:
cd mx6ull_alientek_emmc
mv mx6ullevk.c mx6ull_alientek_emmc.c
还需要对 mx6ull_alientek_emmc 目录下的文件做一些修改:
1**、修改mx6ull_alientek_emmc目录下的Makefile文件**
将 mx6ull_alientek_emmc 下的 Makefile 文件内容改为如下所示:
# (C) Copyright 2015 Freescale Semiconductor, Inc.
#
# SPDX-License-Identifier: GPL-2.0+
#
obj-y := mx6ull_alientek_emmc.o
extra-$(CONFIG_USE_PLUGIN) := plugin.bin
$(obj)/plugin.bin: $(obj)/plugin.o
$(OBJCOPY) -O binary --gap-fill 0xff $< $@
重点是第 6 行的 obj-y,改为 mx6ull_alientek_emmc.o,这样才会编译 mx6ull_alientek_emmc.c
这个文件。
2**、修改mx6ull_alientek_emmc目录下的imximage.cfg文件**
将 imximage.cfg 中的下面一句:
PLUGIN board/freescale/mx6ullevk/plugin.bin 0x00907000
改为:
PLUGIN board/freescale/mx6ull_alientek_emmc/plugin.bin 0x00907000
3、修改mx6ull_alientek_emmc目录下的Kconfig文件
if TARGET_MX6ULL_ALIENTEK_EMMC
config SYS_BOARD
default "mx6ull_alientek_emmc"
config SYS_VENDOR
default "freescale"
config SYS_SOC
default "mx6"
config SYS_CONFIG_NAME
default "mx6ull_alientek_emmc"
endif
4**、修改mx6ull_alientek_emmc目录下的MAINTAINERS文件**
修改 MAINTAINERS 文件,修改后的内容如下:
4、修改U-Boot图形界面配置文件
uboot 是支持图形界面配置,关于 uboot 的图形界面配置下一章会详细的讲解。修改文件
arch/arm/cpu/armv7/mx6/Kconfig( 如果用的 I.MX6UL 的话,应该修改 arch/arm/Kconfig 这个文
件 ) ,在 207 行加入如下内容:
config TARGET_MX6ULL_ALIENTEK_EMMC
bool "Support mx6ull_alientek_emmc"
select MX6ULL
select DM
select DM_THERMAL
在最后一行的 endif 的前一行添加如下内容:
source "board/freescale/mx6ull_alientek_emmc/Kconfig"
到此为止, I.MX6U-ALPHA 开发板就已经添加到 uboot 中了,接下来就是编译这个新添加
的开发板。
5、编译
在 uboot 根目录下新建一个名为 mx6ull_alientek_emmc.sh 的 shell 脚本,在这个 shell 脚本
里面输入如下内容:
#!/bin/bash
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_alientek_emmc_defconfig
make V=1 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j16
第 3 行我们使用的默认配置文件就是 33.2.1 节中新建的 mx6ull_alientek_emmc_defconfig 这
个配置文件。给予 mx6ll_alientek_emmc.sh 可执行权限,然后运行脚本来完成编译,命令如下:
chmod 777 mx6ull_alientek_emmc.sh //给予可执行权限,一次即可
./mx6ull_alientek_emmc.sh //运行脚本编译uboot
等待编译完成,编译 完成 以 后 输 入 如 下命 令:
grep -nR "mx6ull_alientek_emmc.h"
查 看 一 下 添加 的 mx6ull_alientek_emmc.h 这个头文件有没有被引用。
如果有很多文件都引用了mx6ull_alientek_emmc.h这个头文件,那就说明新板子添加成功。再把的 u-boot.bin 烧写到 SD 卡中测试 ,SecureCRT 输出结果如图:

从图 中 可以看出,此时的 Board 还是" MX6ULL 14x14 EVK ",因为我们参考的 NXP
官方的 I.MX6ULL 开发板来添加自己的开发板。如果接了 LCD 屏幕的话会发现 LCD 屏幕并没
有显示 NXP 的 logo ,而且从图 中可以看出此时的网络同样也没识别出来。因为默认 uboot 中的 LCD 驱动和网络驱动在正点原子的 I.MX6U-ALPHA 开发板上是有问题的, 需要修改。这个下期再具体讲解。
总结
在NXP 官方 的tU-Boot 中添加自己的开发板级文件。