我正在为设备开发设备驱动程序。我想知道除了编写设备驱动程序之外什么以及何时需要它 - 设备树blob(dtb)或设备树覆盖(dtbo)。
是否可以动态插入dtb(在使用dtc编译器编译之后)并测试驱动程序(可动态加载)。
对于静态构建dtb,除了设备驱动程序的Kconfig之外,我还需要处理dtb文件的任何Kconfig。
答案 0 :(得分:0)
您没有提到这是什么平台,但我假设它是广泛使用设备树进行硬件描述的架构之一,例如ARM,PPC和您实际上需要的设备树。
设备树覆盖图需要以覆盖管理器的形式从用户空间获得支持,该管理器知道在运行时要加载哪些覆盖图。除非您的设备处于动态环境中,否则它可能会消失,在大多数情况下,您需要一个简单的硬编码设备树。
编写驱动程序后,需要定义compatible property来告诉内核何时加载该驱动程序,然后在arch/<foo>/boot/dts/*/*
下的devicetree(.dts / .dtsi)文件中添加一个节点,最能描述您的董事会。
例如在一堆特定于SoC的设备树registration,1,2中,请参阅此兼容3和相应的硬件描述。这个驱动程序通过在兼容标志后面询问SoC特定的功能来在所有这些SoC上工作。