#DeviceTree

Albert ARIBAUD Ⓜaaribaud@piaille.fr
2026-02-28

Currently peppering the #LinuxKernel 's include/linux/of.h and of/base.c with call-hijacking-macros to get legible logs of how drivers rummage inside the #DeviceTree. As one does on a Saturday morning.

Mobilní Linux - Československomobilni_linux_cs_sk@mastodonczech.cz
2026-01-09

Stálá témata:

- Budou dostupné telefony, na kterých si budete moci zkusit rozběhnout Linux
- Rozběhnutí u-boot a EFI, testování a integrace na telefonech s Snapdragonem #sdm845.
- patches review & mainlining
- Balíčkování užitečných věcí pro mobilní distribuce
- Hackování na jádře, psaní #devicetree

2/2

2026-01-04

So I'm now told I'm holding it wrong, and I need to boot with UEFI. Which is *>2000* ages of specification, plus a load more reading on how to configure UEFI. And UEFI isn't even mentioned in the qemu docs for the machine I'm emulating (risc-v virt), so I don't even know if it's available.

How the hell is a human being meant to be able to understand all this stuff to actually use the hardware?

#OSDev #UBoot #Qemu #DeviceTree #UEFI

2026-01-04

I've been trying to write a very basic OS. The goal: to make the thing understandable to one person. But modern hardware and systems... *sigh*.

I'm booting with U-Boot, because I couldn't get qemu to boot the kernel directly. Now I need some information from the device tree, but booting with u-boot's `bootelf` doesn't pass the DT to the kernel it's starting.

1/2

#OSDev #UBoot #Qemu #DeviceTree #UEFI

2026-01-03

Строим свой остров: как создать минимальный Linux для Raspberry Pi

Ещё три года назад меня просили рассказать, как собрать минимальный Linux для Raspberry Pi, — и сейчас я выполняю эту просьбу. Несмотря на то, что первоначальной целью Raspberry Pi было создание дешёвого устройства для обучения базовым навыкам программирования, информации о том как, создать минимальный Linux для Raspberry Pi в интернете немного. Я хочу восполнить этот пробел для желающих начать погружение в embedded-разработку. Linux для встраиваемых систем, включая Raspberry Pi, и Linux для PC имеют ряд различий. Различия касаются используемых загрузчиков, платформо-зависимого кода ядра, файловых систем и прочего. Для встраиваемых систем большое значение имеет Board Support Package (BSP), который обычно сопровождает различные системы на кристалле (System on Chip — SoC) или одноплатные компьютеры (Single Board Computer — SBC). Чтобы сделать статью интереснее и полезнее, я рассмотрю создание Linux для Raspberry Pi 3 и для Raspberry Pi 4 и укажу на различие этих одноплатных компьютеров в контексте загрузки и сборки ядра Linux. Также мы соберём и запустим downstream и upstream Linux-ядра для Raspberry Pi. Под Raspberry Pi 3 и Raspberry Pi 4 подразумеваются модели Raspberry Pi 3 Model B и Raspberry Pi 4 Model B соответственно. А обе модели называются в статье Raspberry Pi. Как и в моей прошлой статье по сборке Linux для PC собирать мы будем без использования Buildroot или Yocto Project , только сделаем его более практичным, так как он будет поддерживать работу с SD-картой. Такие сборки минимального Linux без Buildroot и Yocto Project мне чем-то напоминают высадку на необитаемый остров, где вы вынуждены минимальным набором инструментов благоустраивать свою жизнь. Да, вашей жизни ничего не угрожает, но определённая закалка в виде полученных базовых знаний остаётся. Поэтому системе Linux, создаваемой в статье, я дал кодовое название Robinson Linux. Я надеюсь, что после прочтения статьи вам будет гораздо проще собрать Linux для другого одноплатного компьютера, например, Orange Pi. Кому интересно погрузиться в embedded-разработку, добро пожаловать под кат.

habr.com/ru/companies/ruvds/ar

#linux #embedded_linux #raspberry_pi #linux_kernel #crosscompilation #devicetree #bootloader #uart #arm #статьи_ruvds

2026-01-03

Строим свой остров: как создать минимальный Linux для Raspberry Pi

Ещё три года назад меня просили рассказать, как собрать минимальный Linux для Raspberry Pi, — и сейчас я выполняю эту просьбу. Несмотря на то, что первоначальной целью Raspberry Pi было создание дешёвого устройства для обучения базовым навыкам программирования, информации о том как, создать минимальный Linux для Raspberry Pi в интернете немного. Я хочу восполнить этот пробел для желающих начать погружение в embedded-разработку. Linux для встраиваемых систем, включая Raspberry Pi, и Linux для PC имеют ряд различий. Различия касаются используемых загрузчиков, платформо-зависимого кода ядра, файловых систем и прочего. Для встраиваемых систем большое значение имеет Board Support Package (BSP), который обычно сопровождает различные системы на кристалле (System on Chip — SoC) или одноплатные компьютеры (Single Board Computer — SBC). Чтобы сделать статью интереснее и полезнее, я рассмотрю создание Linux для Raspberry Pi 3 и для Raspberry Pi 4 и укажу на различие этих одноплатных компьютеров в контексте загрузки и сборки ядра Linux. Также мы соберём и запустим downstream и upstream Linux-ядра для Raspberry Pi. Под Raspberry Pi 3 и Raspberry Pi 4 подразумеваются модели Raspberry Pi 3 Model B и Raspberry Pi 4 Model B соответственно. А обе модели называются в статье Raspberry Pi. Как и в моей прошлой статье по сборке Linux для PC собирать мы будем без использования Buildroot или Yocto Project , только сделаем его более практичным, так как он будет поддерживать работу с SD-картой. Такие сборки минимального Linux без Buildroot и Yocto Project мне чем-то напоминают высадку на необитаемый остров, где вы вынуждены минимальным набором инструментов благоустраивать свою жизнь. Да, вашей жизни ничего не угрожает, но определённая закалка в виде полученных базовых знаний остаётся. Поэтому системе Linux, создаваемой в статье, я дал кодовое название Robinson Linux. Я надеюсь, что после прочтения статьи вам будет гораздо проще собрать Linux для другого одноплатного компьютера, например, Orange Pi. Кому интересно погрузиться в embedded-разработку, добро пожаловать под кат.

habr.com/ru/companies/ruvds/ar

#linux #embedded_linux #raspberry_pi #linux_kernel #crosscompilation #devicetree #bootloader #uart #arm #статьи_ruvds

2025-11-12

@phoronix

Why the hell is #DeviceTree even a thing on modern smartphones? PCs described themselves with ACPI 20 years ago. A modern #smartphone not only dwarfs those PCs in storage capacity and computing power but can emulate them, ACPI and all, at full speed!

Thomas Liskeliske@ibh.social
2025-09-16

6) Interfaces are now identified by a dedicated `identify` setting. While it was already possible to identify interfaces unambiguously by their permanent MAC or bus address, it is now also possible to use their distributed switch architecture (DSA) attributes or path in the firmware devicetree! ifstate.net/2.0/examples/dsa/

IfState 2.x is expected to be shipped with Alpine Linux 3.23 and NixOS 25.11. 💪

4/4

#ifstate #devicetree #dsa

2025-06-30

proposing something kinda cursed over on the devicetree-schema repo to let us fix devicetree loading on dev boards and laptops that boot with EFI

github.com/devicetree-org/dt-s

#embedded #linux #kernel #devicetree

2025-05-25

Coming from BIOS/UEFI systems where it's generally relatively straightforward to boot a generic kernel into a desktop nowadays, #ARM #DeviceTree systems really are a mess...

Detlev Zundel [Team Human]dzu@hostsharing.coop
2025-02-16

Das einzig gute an der Zeit, die ich da investiert habe, ist die zusätzliche Unterstützung von #DeviceTree File Syntax Coloring aus orgmode Posts, was jetzt auch funktioniert!

Ok, bei 8 Zeilen dts File ist das jetzt noch nicht sooo wichtig, aber cool ist es schon 😂

#orgmode rules!

2024-11-08

@haui

I couldn't resist to have a quick look into the device tree file(s) in the kernel sources of Bianbu Linux:

see here: gitee.com/bianbu-linux/linux-6

On a quick look (didn't check entry by entry) the 'riscv,isa-extensions' entries per cpu seems to match your table.

Anyway as I said before, I think this does not need to reflect the real capabilities of the SOC too.

#riscv #spacemit #spacemitk1 #spacemitx60 #devicetree #linux #bananapif3 #bpif3

2024-11-08

@haui

Regarding this I found an article from RedHat:

see research.redhat.com/blog/artic

According to the article the DeviceTree can be used to get that information, but since that's just a configuration describing the hardware it could be incomplete too.

#riscv #spacemit #spacemitk1 #bananapif3 #bpif3 #linux #devicetree

2024-09-05

"Operating system provided device-trees" by Heinrich Schuchardt

While it was not the initial goal, in practice, when booting Linux, device trees need to be coupled with a given kernel version.

This brings its own sets of challenge, because the bootloader needs to patch the device tree to provide information to the OS.

When using EFI, there is now the EFI_DT_FIXUP_PROTOCOL.

Outside of EFI, the flash-kernel tool helps picking the correct device tree depending on the board model.

The way forward would be to use Unified Kernel Images, which would contain all device trees for supported platform, with the efistub used to select the correct one.

#OSFC #OSFC2024 #DeviceTree

Heinrich next to the title slide.
Marcin Juszkiewicz 🙃hrw@society.oftrolls.com
2024-08-09
Marcin Juszkiewicz 🙃hrw@society.oftrolls.com
2024-08-09

I thought that booting Seriously Bad Computers in ACPI mode is crippled compared to booting in DeviceTree mode.

NanoPC-T6 is otherwise. Same 6.11-rc2 kernel gives working system in ACPI mode and fail-to-boot one in DT.

DT = no USB, no PCIe while rootfs is on NVME cause it worked fine in ACPI mode.

And DT is from 6.11-rc2 kernel.

#SystemNotReady #ACPI #DeviceTree #SBC #RK3588 #FriendlyELEC #NanoPC-T6

Client Info

Server: https://mastodon.social
Version: 2025.07
Repository: https://github.com/cyevgeniy/lmst