之前有文章简单介绍过, uboot源码包的来源有三种:
1. uboot 官方的 uboot:由 uboot 官方维护开发的 uboot 版本,版本更新快,基本包含所有常用的芯片。
2. 半导体厂商的 uboot:半导体厂商维护的一个 uboot,专门针对自家的芯片,在对自家芯片支持上要比 uboot 官方的好(他们也常常会有支持自己芯片的开发板,所以,就有相应的 uboot)。
3. 开发板厂商的uboot:开发板厂商在半导体厂商提供的 uboot 基础上加入了对自家开发板的支持。
这里的NXP(恩智浦)提供的 uboot源码包,就是第二种来源即半导体厂商提供的uboot。
本文学习如何将 NXP 官方的 uboot 移植到正点原子的 I.MX6ULL 开发板上。
正点原子提供了 NXP官网的 uboot源码包,目录如下:
【正点原子】阿尔法Linux开发板(A盘)-基础资料-2022 /【正点原子】阿尔法Linux开发板(A盘)-基础资料 / 例程源码 / NXP官方原版Uboot和Linux
将以上目录下的 uboot源码包拷贝到 ubuntu系统下,并解压 uboot源码包。
这个就是 uboot 移植的一般流程:
正点原子的 I.MX6ULL 开发板参考的是 NXP 官方的 I.MX6ULL EVK 开发板做的硬件,因此,我们在移植 uboot 时就可以以 NXP 官方的 I.MX6ULL EVK 开发板为蓝本。
(1) 首先,查找 uboot配置文件。
进入 uboot根目录下,进入 configs目录下,可以看到很多配置文件,这里只列出了 与IMX6ULL相关的配置文件:
wangtian@wangtian-virtual-machine:~/zhengdian_Linux/linux/uboot/nxp_uboot/uboot-imx-rel_imx_4.1.15_2.1.0_ga/configs$ ls mx6ull*
mx6ull_14x14_ddr3_arm2_defconfig mx6ull_14x14_evk_defconfig
mx6ull_14x14_ddr3_arm2_emmc_defconfig mx6ull_14x14_evk_emmc_defconfig
mx6ull_14x14_ddr3_arm2_epdc_defconfig mx6ull_14x14_evk_nand_defconfig
mx6ull_14x14_ddr3_arm2_nand_defconfig mx6ull_14x14_evk_qspi1_defconfig
mx6ull_14x14_ddr3_arm2_qspi1_defconfig mx6ull_9x9_evk_defconfig
mx6ull_14x14_ddr3_arm2_spinor_defconfig mx6ull_9x9_evk_qspi1_defconfig
mx6ull_14x14_ddr3_arm2_tsc_defconfig
这里选择使用的配置文件是 mx6ull_14x14_evk_nand_defconfig
编译 uboot源码 有三种方法。三种方法如下:
(1) 方法一:直接在 Linux控制台终端输入命令进行配置。
(2) 方法二:直接更改 uboot源码的顶层目录的 Makefile文件,进行配置。
(3) 方法三:编写一个 shell脚本文件进行配置,并编译。
这里学习第一种方法:直接在 Linux控制台终端输入命令进行配置编译。
(1) 首先,清除工程,进入 Uboot根目录下,输入如下命令:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
(2) 其次,配置 uboot,输入配置命令:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_14x14_evk_nand_defconfig
(3) 编译 uboot,输入编译命令:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
编译结束后,会在 uboot根目录下生成如下的可执行程序:
wangtian@wangtian-virtual-machine:~/zhengdian_Linux/linux/uboot/nxp_uboot/uboot-imx-rel_imx_4.1.15_2.1.0_ga$ ls -l
.........
-rwxrwxr-x 1 wangtian wangtian 2681216 10月 15 17:47 u-boot
-rw-rw-r-- 1 wangtian wangtian 471284 10月 15 17:47 u-boot.bin
-rw-rw-r-- 1 wangtian wangtian 38494 10月 15 17:47 u-boot.cfg
-rw-rw-r-- 1 wangtian wangtian 478208 10月 15 17:47 u-boot.imx