imx6ull-系统移植篇10——U-Boot 移植(上)

发布于:2025-07-21 ⋅ 阅读:(18) ⋅ 点赞:(0)

前言

uboot 移植的一般流程:

①、在 uboot 中找到参考的开发平台,一般是原厂的开发板。

②、参考原厂开发板移植 uboot 到我们所使用的开发板上。

正点原子的 I.MX6ULL 开发板参考的是 NXP 官方的 I.MX6ULL EVK 开发板做的硬件,所以本讲我们先使用NXP 官方开发板 uboot 进行编译测试,能跑起来的基础上再去移植、修改,学习如何在 uboot 中添加我们自己的板子。

官方 uboot 测试

将NXP 官方 I.MX6ULL EVK 开发板的 uboot ,直接拿到正点原子 EMMC 版本 I.MX6ULL开发板上,能跑起来吗?让我们来试试。

将 NXP官方源码 uboot-imx-rel_imx_4.1.15_2.1.0_ga.tar.bz2 发送到 Ubuntu中并解压,然后创建 VSCode 工程。

在移植之前,我们先编译一下 NXP 官方 I.MX6ULL EVK 开发板对应的 uboot。

配置uboot

configs 目录下有很多跟 I.MX6UL/6ULL 有关的配置如图:

根据自己购买的开发板型号选择相应的文件,这里我使用 mx6ull_14x14_evk_emmc_defconfig 作为默认配置文件。

编译uboot

可以使用如下命令编译:

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_14x14_evk_emmc_defconfig
make V=1 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j16

编译结果如下:

为了简化流程,可以直接在顶层 Makefile 中直接给 ARCH 和CORSS_COMPILE 赋值。

在顶层 Makefile 中添加如下:

就可以使用如下命令来编译:

make mx6ull_14x14_evk_emmc_defconfig
make V=1 -j16

或者另一种方法:创建个shell 脚本名为 mx6ull_14x14_emmc.sh,脚本内容如下:

#!/bin/bash
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_14x14_evk_emmc_defconfig
make V=1 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j16

编译的时候就可以直接执行这个脚本,命令如下:

./mx6ull_14x14_emmc.sh

烧写验证

将 imxdownload 软件拷贝到 uboot 源码根目录下,然后使用 imxdownload 软件将 u-boot.bin烧写到 SD 卡中,烧写命令如下:

chmod 777 imxdownload //给予 imxdownload 可执行权限
./imxdownload u-boot.bin /dev/sda

设置开发板从 SD卡启动,连接串口工具,打印如下:

可以知道: NXP 官方 I.MX6ULL 开发板的uboot,在正点原子的 I.MX6ULL 开发板上是可以正常启动的。

检查驱动

检查SD 卡和 EMMC 驱动

输入以下命令:

mmc dev 0   //mmc dev 1
mmc info

mmc 设备 0 是 SD 卡,mmc 设备 1 为 EMMC,检查结果正确。

检查LCD 驱动

我没有买屏幕,但官方例程是这样说的:uboot 里面的 LCD 驱动默认是给 4.3 寸 480x272 分辨率的,如果使用的其他分辨率的屏幕需要修改驱动。

检查网络驱动

网络正常情况下会打印如下信息:

但我们uboot启动时,提示“Board Net Initialization Failed”和“No ethernet found.”这两行。说明当前 uboot 的网络部驱动也是有问题的。

这是因为正点原子开发板的网络芯片复位引脚和 NXP 官方开发板不一样,因此需要修改驱动。

总结

①、 uboot 启动正常, DRAM 识别正确, SD 卡和 EMMC 驱动正常。

②、 uboot 里面的 LCD 驱动默认是给 4.3 寸 480x272 分辨率的,如果使用的其他分辨率的屏幕需要修改驱动。

③、网络不能工作,识别不出来网络信息,需要修改驱动。

下一讲内容就来解决这些问题。


网站公告

今日签到

点亮在社区的每一天
去签到