Device Tree Reference
Contents
- 1 Reference Manual
- 1.1 Introduction
- 1.2 Device Tree Usage
- 1.3 Miscellaneous Tips
- 1.4 Device Tree Source
- 1.5 Bindings
- 1.6 Subsystem specific
- 1.7 Overlays
- 1.8 Device Tree Source Validation
- 1.9 Compiling .dtb (FDT binary blob)
- 1.10 install
- 1.11 boot loaders
- 1.12 booting
- 1.13 debugging
- 1.14 Tools
- 1.15 man pages
- 1.16 Glossary
- 1.17 Definitions
Reference Manual
Introduction
Device Tree Usage
The Device Tree Usage page was previously located at devicetree.org
It walks through how to write a device tree for a new machine.
It is intended to provide an overview of device tree concepts and how they are used to describe a machine.
Miscellaneous Tips
Linux Drivers Device Tree Guide
Device Tree Source
- Power.org Standard for Embedded Power Architecture Platform Requirements (ePAPR) v1.1
- chapter 2 "The Device Tree"
- Appendix A "Device Tree Source Format (Version 1)"
- dtc compiler repository documentation
- Documentation/dts-format.txt Device Tree Source Format
- xxx differences between ePAPR and the Linux dtc compiler
- presentations
Bindings
Subsystem specific
- gpio / pinctrl
- interrupts
- timers
- etc
Overlays
Device Tree Source Validation
Compiling .dtb (FDT binary blob)
- via kernel make system
- all configured .dtb
- make dtbs
- specific .dtb
- make arch/arm/boot/dts/qcom-apq8074-dragonboard.dtb
- all configured .dtb
- via generated script in build directory
- arch/arm/boot/dts/.*.dtb.cmd
- arch/${ARCH}/boot/dts/.*.dtb.cmd
- Documentation/manual.txt Device Tree Compiler Manual
install
- make dtbs_install
- installs in /boot/dtbs/<kernel version> ???? -- is this useful ???
- many other ways to install ....
boot loaders
booting
debugging
- tutorials
- "Solving Device Tree Issues" (updated), LinuxCon North America August 2015 by Frank Rowand
- diffing .dts, .dtb, /proc/devicetree/
- locating source location for properties
- boot time messages
- device creation
- driver registration
- binding driver to device
- deferred binding
Tools
- Device Tree Compiler (dtc) - converts between the human editable device tree source "dts" format and the compact device tree blob "dtb" representation usable by the kernel or assembler source. dtc is also a dtb decompiler.
- The linux version of dtc is maintained in scripts/dtc/ in the kernel source directory.
- The upstream project is maintained in
- Documentation
- Documentation/manual.txt Device Tree Compiler Manual
- Documentation/dts-format.txt Device Tree Source Format
- The Maintainers are listed in the file README
- Xilinx EDK device-tree generator - Generates an FDT from Xilinx FPGA design files.
"The device tree generator is a Xilinx EDK tool that plugs into the Automatic BSP Generation features of the tool, XPS"
man pages
Glossary
- .dtb - File name suffix, by convention, for compiled devicetree.
- .dts - File name suffix, by convention, for devicetree source.
- .dtsi - File name suffix, by convention, for devicetree source to be included by a .dts or .dtsi file.
- Binary Blob - File containing a compiled devicetree.
- dtc - Devicetree compiler.
- EDT Expanded Device Tree - A copy of an FDT, but converted to kernel data structures, in the kernel memory space.
- FDT Flattened Device Tree - A copy of a binary blob in the kernel memory space.