LV055-201904版本移植
这一篇笔记,我们来将这个 2019.04 版本的 uboot 移植到自己的开发板。源码可以在这里下载:Release rel_imx_4.19.35_1.1.0: MLK-22866 imx8: Remove the optee shared memory from DDR banks · nxp-imx/uboot-imx · GitHub
一、开发板默认配置文件
1. 添加默认配置文件
cp configs/mx6ull_14x14_evk_emmc_defconfig configs/mx6ull_alpha_emmc_defconfig2. 修改配置文件
然后将文件 mx6ull_alpha_defconfig 中的内容改成下面的:
CONFIG_TARGET_MX6ULL_14X14_EVK=y --> CONFIG_TARGET_MX6ULL_ALPHA_EMMC=y
CONFIG_DEFAULT_DEVICE_TREE="imx6ull-14x14-evk" --> CONFIG_DEFAULT_DEVICE_TREE="imx6ull-alpha-emmc"CONFIG_DEFAULT_DEVICE_TREE 配置项所配置的是 uboot 启动时所需要的设备树名。
二、开发板对应的头文件
1. 添加开发板默认头文件
cp include/configs/mx6ullevk.h include/configs/mx6ull_alpha_emmc.h2. 修改头文件
[alpha emmc] 修改头文件 · 5862a61 · linux-dev-org/imx6ull-uboot
三、开发板对应的板级文件
1. 添加开发板对应的板级文件
cp -r board/freescale/mx6ullevk board/freescale/mx6ull_alpha_emmc2. 修改板级文件
这里要改 c 文件,Makefile,MAINTAINERS,Kconfig,imximage.cfg 共计五项内容。
[alpha emmc] 修改板级文件夹相关文件 · 17486c6 · linux-dev-org/imx6ull-uboot
四、设备树文件
这里不添加的话,会报错。
1. 添加设备树文件
cp arch/arm/dts/imx6ull-14x14-evk.dts arch/arm/dts/imx6ull-alpha-emmc.dts2. 修改设备树 Makefile
[alpha emmc] 修改设备树 Makefile · 982d610 · linux-dev-org/imx6ull-uboot
五、网口移植
1. 相关文件修改
直接看这里吧:[alpha emmc] 移植网口驱动(使用板子上的 ETH2) · f67570a · linux-dev-org/imx6ull-uboot
2. 开发板验证
我们编译完烧写到 SD 卡,并设置开发板从 SD 卡启动:

会发现还是一堆报错,这是因为我们没有配置相关的 IP:
# ubuntu 192.168.10.101
# windows 192.168.10.100
setenv eth1addr 32:34:46:78:9A:DD # 本地 MAC 地址
setenv serverip 192.168.10.101 # 服务器端地址
setenv ipaddr 192.168.10.102 # 本机地址
saveenv然后再重启,就不会有那些了:

我们来 ping 一下 ubuntu 和 windows:

发现都是没啥问题的。
六、LCD 移植
LCD 原本就能用,只是显示不正常,这里先不管。
七、eMMC 移植
1. 问题的出现
这里原本以为不用管,因为在移植 uboot 2016 版本的时候是没有 eMMC 的问题的,但是后面在回顾 uboot 的命令的时候发现 eMMc 竟然无法使用:

2. 问题原因
emmc 的复位脚,在设备树上没有配置,需要添加。emmc 的复位引脚是这个:

3. 设备树修改
可以看这里:[alpha emmc] 设备树添加 alpha 开发板 eMMC 信息 · afdbdfb · linux-dev-org/imx6ull-uboot

4. 开发板验证
然后我们烧写到 SD 卡中,启动一下:

参考资料:
移植 NXP 官方 uboot 到 IMX6ULL 开发板--以及过程中遇到的疑问和错误记录_nxp imx6ulz secure boot-CSDN 博客