我正在为设备开发一个设备驱动程序。我想知道除了编写设备驱动程序之外,何时需要使用设备树 blob(dtb)或设备树叠加(dtbo)。
是否可以在使用 dtc 编译器编译 dtb 并测试驱动程序(动态可加载的)之后,动态插入 dtb。
对于静态构建 dtb,除了设备驱动程序的 Kconfig,是否还有任何需要注意的 dtb 文件的 Kconfig。
我正在为设备开发一个设备驱动程序。我想知道除了编写设备驱动程序之外,何时需要使用设备树 blob(dtb)或设备树叠加(dtbo)。
是否可以在使用 dtc 编译器编译 dtb 并测试驱动程序(动态可加载的)之后,动态插入 dtb。
对于静态构建 dtb,除了设备驱动程序的 Kconfig,是否还有任何需要注意的 dtb 文件的 Kconfig。
您没有提到这是哪个平台,但我假设它是一个广泛使用设备树进行硬件描述的架构之一,如ARM、PPC,并且您实际上需要设备树。
设备树叠加需要来自用户空间的支持,以覆盖管理器的形式在运行时了解要加载的覆盖。除非您的设备处于非常动态的环境中,否则对于大多数情况,您需要一个简单的硬编码设备树。
编写驱动程序后,您需要定义兼容属性,以便在何时加载此驱动程序时告知内核,然后在arch/<foo>/boot/dts/*/*
下的设备树(.dts/.dtsi)文件中添加一个节点,最好描述您的板子。