Linux内核dtb vs dtbo

时间:2016-07-25 11:52:41

标签: linux-kernel linux-device-driver device-tree

我正在为设备开发设备驱动程序。我想知道除了编写设备驱动程序之外什么以及何时需要它 - 设备树blob(dtb)或设备树覆盖(dtbo)。

是否可以动态插入dtb(在使用dtc编译器编译之后)并测试驱动程序(可动态加载)。

对于静态构建dtb,除了设备驱动程序的Kconfig之外,我还需要处理dtb文件的任何Kconfig。

1 个答案:

答案 0 :(得分:0)

您没有提到这是什么平台,但我假设它是广泛使用设备树进行硬件描述的架构之一,例如ARM,PPC和您实际上需要的设备树。

设备树覆盖图需要以覆盖管理器的形式从用户空间获得支持,该管理器知道在运行时要加载哪些覆盖图。除非您的设备处于动态环境中,否则它可能会消失,在大多数情况下,您需要一个简单的硬编码设备树。

编写驱动程序后,需要定义compatible property来告诉内核何时加载该驱动程序,然后在arch/<foo>/boot/dts/*/*下的devicetree(.dts / .dtsi)文件中添加一个节点,最能描述您的董事会。

例如在一堆特定于SoC的设备树registration12中,请参阅此兼容3和相应的硬件描述。这个驱动程序通过在兼容标志后面询问SoC特定的功能来在所有这些SoC上工作。