What Are Device Trees?

dancehall flamenco, new orleans carnatic, harpischord doo-wop, psychedelic dream pop

Listen on 93

Lyrics

[Verse 1]
Before device trees came to save the day
Platform code was hardcoded every way
Each board needed custom kernel patches
Bootloaders and drivers, mismatched batches
GPIO pins and interrupt lines
Memory maps in scattered defines

[Chorus]
Device trees describe the silicon blueprint
Hardware abstraction, kernel footprint
Nodes and properties, parent-child relation
Boot-time discovery, hardware translation
DTS files compile to DTB binary
One kernel fits all, no more arbitrary

[Verse 2]
Flattened device tree blob gets passed along
From bootloader to kernel where it belongs
Compatible strings match drivers to devices
Interrupt controllers, clock sources, bus slices
Address cells and size cells define the space
Memory-mapped registers find their place

[Chorus]
Device trees describe the silicon blueprint
Hardware abstraction, kernel footprint
Nodes and properties, parent-child relation
Boot-time discovery, hardware translation
DTS files compile to DTB binary
One kernel fits all, no more arbitrary

[Bridge]
Overlays let you modify at runtime
Hot-plug devices, reconfigure on the fly
Status equals okay means device is active
Disabled nodes stay dormant, inactive
Phandles reference other nodes by name
Making connections in the hardware game

[Chorus]
Device trees describe the silicon blueprint
Hardware abstraction, kernel footprint
Nodes and properties, parent-child relation
Boot-time discovery, hardware translation
DTS files compile to DTB binary
One kernel fits all, no more arbitrary

[Outro]
From embedded ARM to server grade machines
Device trees power modern computing scenes
Hardware description, vendor independent
Platform evolution, future-transcendent

← Device Trees for Hardware Description | Device Tree Source Syntax Basics →