imx6ull uboot移植

本文详细介绍U-Boot移植过程,包括配置文件调整、板级文件夹创建、LCD驱动修改等内容,帮助读者掌握U-Boot定制技巧。

以下内容来自:正点原子Linux驱动文档

一、简介

uboot移植主要是根据原厂的uboot移植:芯片厂商通常会做一块自己的评估板并发布BSP,当我们需要定制自己的开发板时可以根据自己的需求(硬件上的不同),对原厂的uboot裁剪等等。

注:BSP 通常包含uboot、Linux内核、设备树。

nxp官方imx6ull uboot 试编译

编译一个uboot工程主要有以下3条命令:

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean								#清理工程
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_14x14_evk_emmc_defconfig		#根据配置文件配置uboot
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j16									#编译uboot,j16 表示用16核编译

ARCH: 架构。
CROSS_COMPILE: 交叉编译器。

编译后会生成uboot.bin 等等文件。
在这里插入图片描述
使用imx6ull 官方uboot启动我们的板子会有些驱动存在问题,这是应为硬件的不同。例如LCD、网络等。

在uboot中添加自定义开发板

添加开发板默认配置文件

uboot 除了引导 Linux 以外还可以引导其它的系统,而且 uboot 还支持其它的架构和外设,比如 USB、 网络、 SD 卡等。
所以在编译前我们要根据自己的需求配置uboot。

在configs 目录下有很多配置文件,可想而知,每一个配置文件就对应一块开发板。
我们找到 mx6ull_14x14_evk_emmc_defconfig, 这是nxp官方的配置文件,我们就是参考它做修改。
拷贝并修改:

cp mx6ull_14x14_evk_emmc_defconfig mx6ull_zjh_emmc_defconfig

添加自己开发板的头文件

在include/configs 下拷贝mx6ullevk.h 并修改。

在这个头文件中有许多宏定义,这些宏基本用于配置uboot,也有一些I.MX6ULL 的配置项目。
如果我们想要禁用uboot的某些功能,在这个头文件中修改即可。

mx6ullevk.h 文件中基本都是“CONFIG_”开头的宏定义,这也说明 mx6ull_alientek_emmc.h 文件的主要功能就是配置或者裁剪 uboot。如果需要某个功能的话就在里面添加这个功能对应的 CONFIG_XXX 宏即可,如果不需要某个功能的话就删除掉对应的宏即可。

mx6ullevk.h 中包含了 mx6_common.h,如果没有在mx6ullevk.h中发现某个功能或命令,但uboot中又确实存在,可以去mx6_common.h 中寻找。

  • 设置DRAM大小: 宏PHYS_SDRAM_SIZE 是用来设置DRAM 大小。正点原子的 I.MX6U-ALPHA 开发板用的是 512MB DDR3。

  • 输出cpu信息: 定义宏 CONFIG_DISPLAY_CPUINFO, uboot 启动的时候可以输出 CPU 信息。

  • 输出板子信息: 定义宏 CONFIG_DISPLAY_BOARDINFO, uboot 启动的时候可以输出板子信息。

  • 设置内存池大小: CONFIG_SYS_MALLOC_LEN 为 malloc 内存池大小,这里设置为 16MB。

  • 定义宏 CONFIG_BOARD_EARLY_INIT_F,这样 board_init_f 函数就会调用board_early_init_f 函数。

  • 定义宏 CONFIG_BOARD_LATE_INIT,这样 board_init_r 函数就会调用board_late_init 函数。

  • 使

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值