基于buildroot修改编译设备树

文摘   科技   2024-07-22 19:14   天津  


欢迎点击蓝字关注我

扫二维码回复“加群”或加入飞腾爱好者交流群



一、设备树介绍

设备树(Device Tree)也是一种描述硬件的数据结构,主要为Linux内核提供板级的硬件描述。

在早期的内核版本中(如 Linux 2.6),CPU 架构的板极硬件特性一般被硬编码在类似 arch/arm/plat-xxx和arch/arm/mach-xxx的目录中,导致内核代码量庞大且板级代码多,采用设备树后,许多硬件的细节可以直接通过它传递给内核,而不再需要在内核中进行大量的冗余编码.

设备树由一个dts文件以及可能的多个dtsi文件组成,经过编译后,生成二进制的dtb文件。

dts 文件 :描述硬件板级的设备树源文件。

dtsi 文件 :为了将 SOC 以及板级的公用硬件特性进行统一,进而简化最终的板级描述文件,一般将SOC公共特性组织成dtsi文件,dts直接或间接的包含多个dtsi(类似于C语言的include头文件),组成最终的板级描述。

dtb :即 Device Tree Blob,dts经过dtc工具编译之后得到dtb文件,dtb通过固件传递到内核。

二、E2000设备树

E2000的dts 和 dtsi 文件一般位于内核的如下目录:arch/arm64/boot/dts/phytium 。

E2000 CPU由E2000D、E2000Q和E2000S三个系列组成,针对E2000 CPU的公共特性形成描述文件pe220x.dtsi,而针对各系列 CPU的公共特性分别形成pe2202.dtsi,pe2204.dtsi和pe2201.dtsi,在各系列的CPU描述文件中,均会引用pe220x.dtsi,以包含 E2000 CPU的共有特性。

三、buildroot中修改编译

基于phytium-linux-buildroot如何修改编译设备树呢?

首先最重要的,就是要找到buildroot中的内核在哪里。

我的buildroot是按照https://gitee.com/phytium_embedded/phytium-linux-buildroot所述,在/home/york/kernel/phytium-linux-buildroot这里面制作的。

那么完成整个buildroot编译后,对应的内核位置应该是在其output/build/linux-kernel-5.10v2.0中,即对于我来说的完整内核路径为/home/york/kernel/phytium-linux-buildroot/output/build/linux-kernel-5.10v2.0

剩下的我们就可以按照对内核的操作来操作设备树了,对于飞腾的设备树,会在内核的arch/arm64/boot/dts/phytium,即对于我的完整路径为/home/york/kernel/phytium-linux-buildroot/output/build/linux-kernel-5.10_v2.0/arch/arm64/boot/dts/phytium

如果需要修改编译新的设备树,可以分为两步:

1.找到一个基础的dts,复制一份,在这个dts上做针对自己板子的修改。

2.在Makefile中增加一行,声明你新修改的设备树文件。

下面示例以e2000q-edu-board.dts为基础,我复制出来了一个e2000q-vpx-board-shuangRGMII.dts的文件,这个新的dts文件我就不展示改啥了,自己按需修改就好了。

之后打开Makefile,增加一行

  1. dtb-$(CONFIG_ARCH_PHYTIUM) += e2000q-vpx-board-shuangRGMII.dtb


之后我们回到内核源码的根目录,也就是/home/york/kernel/phytium-linux-buildroot/output/build/linux-kernel-5.10_v2.0这里,直接执行

  1. #make dtbs

就可以了。

对于我,在/home/york/kernel/phytium-linux-buildroot/output/build/linux-kernel-5.10_v2.0/arch/arm64/boot/dts/phytium中就有了e2000q-vpx-board-shuangRGMII.dtb文件。



欢迎点击“点赞、收藏、在看”,分享给更多人看到

扫二维码回复“加群”加入飞腾爱好者交流群


往期文章

交流群:
PSPA:
硬件:
固件:
调试:

欢迎飞腾爱好者加入微信交流群。 群内大家可以在群内交流遇到的问题,分享自己的调试心得。 希望大家共建飞腾友谊!

乌拉大喵喵
建立了飞腾爱好者技术交流群,公众号文章扫码进群,或私信加vx进群。
 最新文章