LV05-02-U-Boot-02-uboot移植
本文主要是uboot——uboot移植的相关笔记,若笔记中有错误或者不合适的地方,欢迎批评指正😃。
点击查看使用工具及版本
PC端开发环境 | Windows | Windows11 |
Ubuntu | Ubuntu20.04.2的64位版本 | |
VMware® Workstation 17 Pro | 17.6.0 build-24238078 | |
终端软件 | MobaXterm(Professional Edition v23.0 Build 5042 (license)) | |
Win32DiskImager | Win32DiskImager v1.0 | |
Linux开发板环境 | Linux开发板 | 正点原子 i.MX6ULL Linux 阿尔法开发板 |
uboot | NXP官方提供的uboot,使用的uboot版本为U-Boot 2019.04 | |
linux内核 | linux-4.19.71(NXP官方提供) |
点击查看本文参考资料
分类 | 网址 | 说明 |
官方网站 | https://www.arm.com/ | ARM官方网站,在这里我们可以找到Cotex-Mx以及ARMVx的一些文档 |
https://www.nxp.com.cn/ | NXP官方网站 | |
https://www.nxpic.org.cn/ | NXP 官方社区 | |
https://u-boot.readthedocs.io/en/latest/ | u-boot官网 | |
https://www.kernel.org/ | linux内核官网 | |
其他网站 | kernel - Linux source code (v4.15) - Bootlin | linux内核源码在线查看 |
点击查看相关文件下载
分类 | 网址 | 说明 |
NXP | https://github.com/nxp-imx | NXP imx开发资源GitHub组织,里边会有u-boot和linux内核的仓库 |
nxp-imx/linux-imx/releases/tag/v4.19.71 | NXP linux内核仓库tags中的v4.19.71 | |
nxp-imx/uboot-imx/releases/tag/rel_imx_4.19.35_1.1.0 | NXP u-boot仓库tags中的rel_imx_4.19.35_1.1.0 | |
I.MX6ULL | i.MX 6ULL Applications Processors for Industrial Products | I.MX6ULL 芯片手册(datasheet,可以在线查看) |
i.MX 6ULL Applications ProcessorReference Manual | I.MX6ULL 参考手册(下载后才能查看,需要登录NXP官网) | |
Source Code | https://elixir.bootlin.com/linux/latest/source | linux kernel源码 |
https://elixir.bootlin.com/u-boot/latest/source | uboot源码 |
这一篇笔记,我们来将这个2019.04版本的uboot移植到自己的开发板。
一、开发板默认配置文件
1. 添加默认配置文件
1 | cp configs/mx6ull_14x14_evk_emmc_defconfig configs/mx6ull_alpha_emmc_defconfig |
2. 修改配置文件
然后将文件 mx6ull_alpha_defconfig
中的内容改成下面的:
1 | CONFIG_TARGET_MX6ULL_14X14_EVK=y --> CONFIG_TARGET_MX6ULL_ALPHA_EMMC=y |
CONFIG_DEFAULT_DEVICE_TREE
配置项所配置的是uboot启动时所需要的设备树名。
二、开发板对应的头文件
1. 添加开发板默认头文件
1 | cp include/configs/mx6ullevk.h include/configs/mx6ull_alpha_emmc.h |
2. 修改头文件
[alpha emmc]修改头文件 · 5862a61 · 苏木/u-boot - Gitee.com
三、开发板对应的板级文件
1. 添加开发板对应的板级文件
1 | cp -r board/freescale/mx6ullevk board/freescale/mx6ull_alpha_emmc |
2. 修改板级文件
这里要改c文件,Makefile,MAINTAINERS,Kconfig,imximage.cfg共计五项内容。
[alpha emmc]修改板级文件夹相关文件 · 17486c6 · 苏木/u-boot - Gitee.com
四、设备树文件
这里不添加的话,会报错。
1. 添加设备树文件
1 | cp arch/arm/dts/imx6ull-14x14-evk.dts arch/arm/dts/imx6ull-alpha-emmc.dts |
2. 修改设备树Makefile
[alpha emmc]修改设备树Makefile · 982d610 · 苏木/u-boot - Gitee.com
五、网口移植
1. 相关文件修改
直接看这里吧:[alpha emmc]移植网口驱动(使用板子上的ETH2) · f67570a · 苏木/u-boot - Gitee.com
2. 开发板验证
我们编译完烧写到SD卡,并设置开发板从SD卡启动:
会发现还是一堆报错,这是因为我们没有配置相关的IP:
1 | ubuntu 192.168.10.101 |
然后再重启,就不会有那些了:
我们来ping一下ubuntu和windows:
发现都是没啥问题的。
六、LCD移植
LCD原本就能用,只是显示不正常,这里先不管。
七、eMMC移植
1. 问题的出现
这里原本以为不用管,因为在移植uboot 2016版本的时候是没有eMMC的问题的,但是后面在回顾uboot的命令的时候发现eMMc竟然无法使用:
2. 问题原因
emmc的复位脚,在设备树上没有配置,需要添加。emmc的复位引脚是这个:
3. 设备树修改
可以看这里:[alpha emmc]设备树添加alpha开发板eMMC信息 · afdbdfb · 苏木/u-boot - Gitee.com
4. 开发板验证
然后我们烧写到SD卡中,启动一下:
参考资料:
移植NXP官方uboot到IMX6ULL开发板–以及过程中遇到的疑问和错误记录_nxp imx6ulz secure boot-CSDN博客