如何在构建时将设备树覆盖合并到单个 .dtb?

如何在构建时将设备树覆盖合并到单个 .dtb?

我的主板通过 U-Boot 启动,据我所知,引导加载程序不支持设备树覆盖,所以我可能被迫生成一个单一、静态 .dtb所有相关的覆盖(和设置??)是否已应用到它。原则上这对我来说没问题,但该怎么做呢?

是否有一些命令行工具可以分别获取.dtb.dtbo文件。.dts.dtsi文件并将它们组合成一个.dtb/ .dts?

dtc似乎不做那项工作。

最终目标是让 I²C 在启动的 Raspberry B+ 上工作通过U盘启动

答案1

你不需要这样做。

通过此更改,覆盖层将出现在 u-boot 中! https://github.com/u-boot/u-boot/commit/e6628ad7b99b285b25147366c68a7b956e362878

享受 :)

答案2

dts 的格式使得合并变得微不足道:您所需要做的就是 cat 或#include单独的 dts,因为:

/dts-v1/;

/ {
    a;
};

/ {
    b;
};

是相同的:

/dts-v1/;

/ {
        a;
        b;
};

因为两者都指定了 node 的属性/

这可以通过以下方式观察到:

dtc a.dts

关于上面的第一个dts

然而,我还无法找到一种更自动化的方法来使用 Linux 内核构建系统来完成此操作。

相关内容