uboot移植过程
uboot移植过程 IMX6ULL文章目录uboot移植过程 IMX6ULL前言一、从原厂中移植uboot进行测试二、在U-Boot中添加自己的硬件1. 添加默认配置文件2. 添加对应的头文件3. 添加对应的板级文件夹3.1 修改Makefile文件3.2 修改 mx6ull_alientek 目录下的 imximage.cfg 文件3.3 修改 mx6ull_alientek 目录下的 Kcon
uboot移植过程 IMX6ULL
文章目录
前言
uboot的移植并不是说完完全全从0开始将uboot移植到开发板或开发平台上。这对于我们来说是基本不可能的,这个工作一般是半导体厂商做的,他们会将uboot移植到他们的芯片中,通过他们自己的测试开发板完成移植,确认没问题后会将这个uboot发布出去,而我们将uboot或者Linux kernel移植到硬件上,一般流程是:
- 在uboot中找到参考的开发平台(原厂的开发板)
- 参考原厂开发板移植uboot到自己使用的硬件中
这里我使用的是IMX6ULL芯片,移植NXP官方开发板uboot为例,并在此基础上添加自己的开发板
一、从原厂中移植uboot进行测试
在NXP官网下载评估板的uboot,并移植到虚拟机中,我使用的是Ubuntu
然后使用解压命令进行解压
-
进入文件中,开始编译
-
先清除数据 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
-
配置uboot make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_14x14_defconfig
可以在configs文件中选择自己芯片的配置文件
-
虚拟机开始编译 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j4 V=1
如图 编译成功
当然如果觉得命令太多,可以写成shell脚本,进行编译(需要给脚本文件赋权限)
二、在U-Boot中添加自己的硬件
在uboot中添加自己的开发板或硬件平台有以下步骤:
1. 添加默认配置文件
先在 configs 目录下创建默认配置文件,复制mx6ull_14x14_evk_emmc_defconfig,然后重命名为 mx6ull_alientek_defconfig 并修改内容为
这一步就可以看出需要添加 所使用的芯片中添加相关文件(board/freescale,imx之前是属于freescale的)
2. 添加对应的头文件
头文件都放在include文件下,而我们需要在include/configs中添加,复 制mx6ullevk.h,并重命名为 mx6ull_alientek.h,同时需改头文件的宏定义
在这个文件中有很多配置uboot的宏定义,如I2C SPI USB 网口等功能性配置
3. 添加对应的板级文件夹
也就是在第一步时,配置出现过的文件夹,uboot 中每个板子都有一个对应的文件夹来存放板级文件,比如开发板上外设驱动文件等等。board/freescale 目录下复制 mx6ullevk,将其重命名为 mx6ull_alientek,将该目录下的.c文件同样改为mx6ull_alientek.c
3.1 修改Makefile文件
输出mx6ull_alientek.o文件,这样才会编译mx6ull_alientek.c文件
3.2 修改 mx6ull_alientek 目录下的 imximage.cfg 文件
指定使用本目录下的plugin.bin 文件
3.3 修改 mx6ull_alientek 目录下的 Kconfig 文件
这一步可以判断是否使用该目录下的文件
3.4 修改 mx6ull_alientek 目录下的 MAINTAINERS 文件
4. 修改U-Boot 图形配置文件
uboot是支持图形界面配置,需要在对应架构下的芯片文件中修改,修改文件arch/arm/cpu/armv7/mx6/Kconfig(如果用的 I.MX6UL 的话,应该修改 arch/arm/Kconfig 这个文件)
5. 修改相关驱动
该步骤需要根据硬件进行修改,如使用的LCD不一致,网口GPIO不同等,就需要单独进行配置了,这些配置都是在mx6ull_alientek.c和mx6ull_alientek.h中进行修改,这里以修改LCD为例:默认使用的LCD是 TFT43AB,现在我想使用TFT7016的,
根据自己显示屏参数进行修改,
然后打开打开 mx6ull_alientek.h文件,将所有的TFT43AB替换成TFT7016
到此LCD的参数配置结束
6. 编译验证
在创建的shell脚本中 使用自己添加的uboot配置
运行脚本文件,等待编译完成,编译完成后输入如下命令,查看mx6ull_alientek.h文件有没有被引用
grep -nR "mx6ull_alientek.h"
如果有很多文件引用了,说明新板子添加成功!
总结
uboot的移植看似简单,但也是需要细心处理,同时也是需要不断练习吸取经验,这样应当自己不熟悉的芯片,用起来也会得心应手!
更多推荐
所有评论(0)