Device Tree for Dummies!
summary
Explains why ARM kernels move hardware description into a separate DTB blob, how bootloaders load a kernel plus a DTB and how appended DTB works as a compatibility hack; shows using the device tree compiler (DTC), DTS/I overlay inclusion, and kernel APIs (of_* functions) to bind UART, I2C, IRQs, clocks and pinctrl; warns bindings must be documented in Documentation/devicetree/bindings, notes the dts directory is rapidly growing and reviews backlog delays, and recommends precise compatible strings and minimal hardware-specific properties.
AI-written summary · about
chapters (15)
- 0:00Intro
- 2:32User perspective: before the Device Tree
- 4:51User perspective: booting with a Device Tree
- 6:59What is the Device Tree?
- 8:22Basic Device Tree syntax
- 18:49A simple example, driver side (3)
- 22:39Device Tree inclusion example (2)
- 23:43Concept of Device Tree binding
- 25:31Documentation of Device Tree bindings
- 27:34Device Tree binding documentation example
- 33:52Top-level compatible property
- 42:43Interrupt handling
- 49:00Clock tree example, Marvell Armada XP
- 49:43Clock examples: instantiating clocks
- 56:00DT is hardware description, not configuration
related talks
34mDTS 101: From Roots To Trees, Aka Devicetree for Beginners
01h 10mBoF: Devicetree
50mRethinking U-Boot Devicetree Story
29mDevice Tree Metadata: How Bootloaders Pick DTBs and Apply Overlays
44mSolving Devicetree Issues, part 3.0
51mShipping Multiple Devicetrees: How to Identify Which DTB Is for My Board?
40mSecond Source Component Probing on Device Tree Platforms
44mBoF: Devicetree
