Devicetree (дерево устройств)
Текстовый файл с описанием оборудования платы, благодаря которому одно и то же ядро работает на множестве плат без пересборки.
На ПК операционная система сама обнаруживает оборудование через PCI и ACPI. На встраиваемой плате UART, контроллеры I²C и GPIO сидят по фиксированным адресам, и спросить о них некого. Годами Linux решал это отдельным C-файлом на каждую плату, а в 2011 году Линус Торвальдс публично потерял терпение от этой свалки. Тогда ARM перешла на devicetree, который уже использовал PowerPC и который восходит к Open Firmware от Sun.
Исходник (.dts) компилируется утилитой dtc в двоичный файл (.dtb), который загрузчик, чаще всего U-Boot, передаёт ядру при старте. Zephyr использует тот же формат во время сборки: дерево превращается в макросы C, и в готовой прошивке никакого блоба не остаётся.