Skip to content

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. 添加默认配置文件

shell
cp configs/mx6ull_14x14_evk_emmc_defconfig configs/mx6ull_alpha_emmc_defconfig

2. 修改配置文件

然后将文件 mx6ull_alpha_defconfig 中的内容改成下面的:

txt
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. 添加开发板默认头文件

shell
cp include/configs/mx6ullevk.h include/configs/mx6ull_alpha_emmc.h

2. 修改头文件

[alpha emmc] 修改头文件 · 5862a61 · linux-dev-org/imx6ull-uboot

三、开发板对应的板级文件

1. 添加开发板对应的板级文件

shell
cp -r board/freescale/mx6ullevk  board/freescale/mx6ull_alpha_emmc

2. 修改板级文件

这里要改 c 文件,Makefile,MAINTAINERS,Kconfig,imximage.cfg 共计五项内容。

[alpha emmc] 修改板级文件夹相关文件 · 17486c6 · linux-dev-org/imx6ull-uboot

四、设备树文件

这里不添加的话,会报错。

1. 添加设备树文件

shell
cp arch/arm/dts/imx6ull-14x14-evk.dts arch/arm/dts/imx6ull-alpha-emmc.dts

2. 修改设备树 Makefile

[alpha emmc] 修改设备树 Makefile · 982d610 · linux-dev-org/imx6ull-uboot

五、网口移植

1. 相关文件修改

直接看这里吧:[alpha emmc] 移植网口驱动(使用板子上的 ETH2) · f67570a · linux-dev-org/imx6ull-uboot

2. 开发板验证

我们编译完烧写到 SD 卡,并设置开发板从 SD 卡启动:

image-20241102154223658

会发现还是一堆报错,这是因为我们没有配置相关的 IP:

shell
# 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

然后再重启,就不会有那些了:

image-20241102154828885

我们来 ping 一下 ubuntu 和 windows:

image-20241102154942593

发现都是没啥问题的。

六、LCD 移植

LCD 原本就能用,只是显示不正常,这里先不管。

七、eMMC 移植

1. 问题的出现

这里原本以为不用管,因为在移植 uboot 2016 版本的时候是没有 eMMC 的问题的,但是后面在回顾 uboot 的命令的时候发现 eMMc 竟然无法使用:

image-20241111220726643

2. 问题原因

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

image-20241111234927427

3. 设备树修改

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

image-20260108113237554

4. 开发板验证

然后我们烧写到 SD 卡中,启动一下:

image-20241111235258585

参考资料:

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

移植新的uboot到正点原子imx6ull开发板遇到emmc的问题 - 哔哩哔哩 (bilibili.com)