Devicetree
Jump to navigation
Jump to search
Device tree is a standard for describing the layout of devices attached to a computer. As opposed to discovering devices by e.g. enumerating PCI devices as is the case with x86, kernels which use device tree are handed a static device tree blob by the bootloader. The device tree specification specifies two formats for device trees:
- DTS (Device Tree Source) which is a human-readable plain text specification describing the various devices attached to the system and their layout in memory.
- DTB (Device Tree Blob) which is a flattened device tree binary blob to be parsed by the kernel at boot.
The command line tool dtc, or Device Tree Compiler, can be used to compile a DTS into a DTB. Device trees are used by Linux and iOS/Darwin to boot on a variety of architectures including aarch64.
Resources
- RasPi documentation describing the format and usage of DTS: https://www.raspberrypi.org/documentation/configuration/device-tree.md
- The Device Tree Specification: https://www.devicetree.org/specifications/
- The Device Tree Compiler: https://github.com/dgibson/dtc
- Linux Kernel Documentation about Device Tree: https://www.kernel.org/doc/Documentation/devicetree/