User:Knuxify/Draft:Devicetree take 2

From Mainlining Wiki
Revision as of 09:20, 20 February 2025 by Knuxify (talk | contribs) (Created page with "{{Navbox devicetree}} The '''devicetree''' (device tree, DT) is a tree structure that describes the hardware register layout and configuration of a device. Devicetrees are written in a plaintext format known as the '''Devicetree Source (DTS)''' format. The DTS is later compiled into a '''Devicetree Blob (DTB)'''; in this form, it can be loaded by software/firmware. Devicetrees are validated using '''devicetree schema''', which is described in '''DT bindings'''; see /...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

The devicetree (device tree, DT) is a tree structure that describes the hardware register layout and configuration of a device.

Devicetrees are written in a plaintext format known as the Devicetree Source (DTS) format. The DTS is later compiled into a Devicetree Blob (DTB); in this form, it can be loaded by software/firmware.

Devicetrees are validated using devicetree schema, which is described in DT bindings; see /Bindings for more information.

In the Linux kernel, as well as in other DT-using projects like U-Boot, it is the primary method of discovering peripherals on embedded platforms such as ARM.

Introduction

On a standard x86 system, peripherals are usually autodetected, through either ACPI, or by being on a bus like PCI or USB (TODO - not actually sure how this works?). On an ARM system, however, things are somewhat more complicated.

A devicetree is a map of the various peripherals that make up an SoC or device;