U-BOOT
一、NXP官方uboot编译与测试
1.将NXP提供的uboot拷贝到ubuntu中。
2.解压uboot文件 ;tar -vxjf ......
3.为了和NXP有区分,进行重命名;mv [] []
4.编译,在编译之前先配置
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean //先清理工程
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_14x14_evk_emmc_defconfig //配置NXP官方的文件
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- V=1 -j12 //编译(显示编译详细信息)
==第四步:也可以用自己编写的shell脚本代替;vim mx6ull_14x14_evk_emmc.sh==
5.到此,官方uboot编译成功!
一个开发板要运行Uboot,首先DDR或DRAM,串口,SD,EMMC,NAND得存在。重点是板子要正常工作
二、在NXP官方的uboot中添加自己的板子
1.添加开发板默认配置文件
借鉴NXP官方的6ull evk开发板,默认配置文件也用官方的;configs/mx6ull_14x14_evk_emmc_defconfig
a. cp mx6ull_14x14_evk_emmc_defconfig mx6ull_super_emmc_defconfig
b.复制已经自定义过的shell脚本,并修改里面的内容与之匹配;编译 mx6ull_super_emmc_defconfig
c.修改 mx6ull_super_emmc_defconfig文件里面的内容与之匹配;
2.添加板子对应的头文件
不同的板子需要配置一些信息,一般都是在一个头文件里面配置;而这个头文件都是每个板子有一个;
而对于NXP官方的6ullevk开发板,这个头文件就是 include/configs/mx6ullevk.h
a.拷贝cp mx6ullevk.h mx6ull_super_emmc.h
b.修改 mx6ull_super_emmc.h的内容与之匹配;
3.添加开发板对应的板级文件夹
每个板子都有特有的板级文件,这里我们将6ullevk的板级文件直接拷贝过来; board/mx6ullevk
a.复制mx6ullevk;cp mx6ullevk mx6ull_super_emmc
b.cd mx6ull_super_emmc
c.mv mx6ullevk.c mx6ull_super_emmc.c
d.修改同级的Makefile、imximage.cfg(34行)、Kconfig、MAINTAINERS
4.修改uboot的配置界面
arch/arm/cpu/armv7/mx6/Kconfig
a. 在207行加入:
config TARGET_MX6ULL_SUPER_EMMC
bool "Support mx6ull_super_emmc"
select MX6ULL
select DM
select DM_THERMAL
b.在末尾endif之前加入:
source "board/freescale/mx6ull_super_emmc/Kconfig"
5.用之前自定义的shell脚本 进行编译;
编译是否成功就看:board/freescale/mx6ull_super_emmc文件夹下面有没有mx6ull_super_emmc.o 这个文件
看mx6ull_super_emmc.h 文件是否被多个文件引用;执行grep -nR "mx6ull_super_emmc.h"