NXP官方开发板uboot编译

一.  uboot简介

之前有文章简单介绍过, uboot源码包的来源有三种:

1.  uboot 官方的 uboot:由 uboot 官方维护开发的 uboot 版本,版本更新快,基本包含所有常用的芯片。

2. 半导体厂商的 uboot:半导体厂商维护的一个 uboot,专门针对自家的芯片,在对自家芯片支持上要比 uboot 官方的好(他们也常常会有支持自己芯片的开发板,所以,就有相应的 uboot)。

3. 开发板厂商的uboot:开发板厂商在半导体厂商提供的 uboot 基础上加入了对自家开发板的支持。

这里的NXP(恩智浦)提供的 uboot源码包,就是第二种来源即半导体厂商提供的uboot。

本文学习如何将 NXP 官方的 uboot 移植到正点原子的  I.MX6ULL 开发板上。

二.   NXP官方开发板uboot 的编译

正点原子提供了 NXP官网的 uboot源码包,目录如下:

【正点原子】阿尔法Linux开发板(A盘)-基础资料-2022 /【正点原子】阿尔法Linux开发板(A盘)-基础资料 / 例程源码 / NXP官方原版Uboot和Linux

将以上目录下的 uboot源码包拷贝到 ubuntu系统下,并解压 uboot源码包。

1.  查找 NXP 官方的开发板默认配置文件

uboot 的移植并不是说我们完完全全的从零开始将 uboot 移植到我们现在所使用的开发板或者开发平台上。这个对于我们来说基本是不可能的,这个工作一般是半导体厂商做的,半导 体厂商负责将 uboot 移植到他们的芯片上,因此半导体厂商都会自己做一个开发板,这个开发板就叫做原厂开发板
半导体厂商会将 uboot 移植到他们自己的原厂开发板上,测试好以后就会将这个 uboot 发布出 去,这就是大家常说的原厂 BSP 包。我们一般做产品的时候就会参考原厂的开发板做硬件,然 后,在原厂提供的 BSP 包上做修改,将 uboot 或者 linux kernel 移植到我们的硬件上。

这个就是 uboot 移植的一般流程:

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

2.  编译 NXP 官方开发板对应的 uboot

编译 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

你可能感兴趣的:(uboot,系统移植篇,arm开发,linux)