初始化硬件,将内核读到内存,根据环境变量去启动内核,传递参数给内核,内核启动后生命就结束
1.下载源码—>野火修改后的uboot源码
git clone -b ebf_v2020_10_imx https://gitee.com/Embedfire/ebf_linux_uboot
2.执行以下命令
make distclean //清除环境
make mx6ull_fire_mmc_defconfig //配置板极文件
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- //开始编译
编译前:

编译后:

3.编译成功的效果
uboot.bin:是 u-boot 编译生成的原始的 image 文件,很多 image 文件的生成都需要 依赖于它
u-boot.imx:是 uboot.bin 添加了头部信息生成的最终镜像
编译生成的 uboot-dtb.imx 文件就是我们想要文件
至此编译野火的uboot就成功了!!!!
前面我们的使用的是野火提供的已经配制好的uboot,这个uboot经过配置后适用于野火的开发板,而NXP提供的只是适用于自己的板子,所以我们移植就是给开发板适配
废话少说,来看步骤!!!!
ftp://ftp.denx.de/pub/u-boot/获取(后缀有 rcx 表示测试版本)
ftp://ftp.denx.de/pub/u-boot/
这里下载的是


首先要找到对应芯片的配置文件,配置文件在源码目录下的configs里面,里面有不同型号和大小的配置文件,这里使用
注意编译成功后的uboot的镜像可能适用开发板,也可能不适用,所以接下来,我们重新配置来适用开发板
1.复 制include/configs/mx6ullevk.h,并重命名为 ljm_6ull.h
在这里面修改我们的配置

修改内容:
注意:
NXP 的 I.MX 系列芯片的所有板级文件夹都存放在 board/freescale 目录下,在这个目录下有个名为 mx6ullevk 的文件夹,这个文件夹就是 NXP 官方 I.MX6ULL EVK 开发板的板级文件夹
我们需要做的就是赋值一份mx6ullevk,命名为ljm_6ull
这个是编译后才有这么多文件,要不然就只有官网那几个文件,那几个文件就是我们需要修改的
下面这幅图是我截图也野火的,说明各种文件作用


要和ljm_6ull.c文件名对应起来,这样才会编译ljm_6ull.c

改前:
改后:


复制 mx6ull_14x14_evk_emmc_defconfig,
然后重 命名为 ljm_6ull_defconfig
要和前面配置对应起来如图:

CONFIG_TARGET_LJM_6ULL=y
CONFIG_DEFAULT_DEVICE_TREE=“ljm-6ull” 这行参数是设备树名称,要与uboot设备树对应
CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/ljm_6ull/imximage.cfg"这行参数是配置头部信息的,指向的是板子目录的cfg文件

修改文件arch/arm/mach-imx/mx6/Kconfig
找到onfig TARGET_MX6ULL_14X14_EVK
添加以下红线内容

找到source "board/freescale/mx6ullevk/Kconfig"添加下面内容

cp arch/arm/dts/imx6ull-14x14-evk.dts arch/arm/dts/ljm-6ull.dts

在arch/arm/dts/Makefile
找到dtb-$(CONFIG_MX6ULL) +=
添加以下

make distclean
make ljm_6ull_defconfig //这个文件在源码目录的configs下
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
