dtoverlay and /boot/config.txt is a very nice method to quickly tell the kernel that you've got new device tree information.
Worth making explicit that config.txt
is not accessed by the kernel at all, it's used by the boot firmware, and presumably much of the information there is used directly to configure the hardware, the state of which the kernel receives when it is started.
The device tree overlays, however, are passed to it as data (based on what's in config.txt
), since these are a linux thing -- .dtb
and .dtbo
files are compiled from .dts
files, as you are likely aware -- but based on this, it looks to me like they are not unique to it and are part of the independent Open Firmware standard.
If you are curious about exactly how the bootloader shares this information with the kernel, I'd start with the "Entry point for arch/arm" section here.
Interestingly that wikipedia article mentions (under "Usage in Linux"):
that on ARM, device trees have been mandatory for all new SoCs since 2012
Which is about when the Pi started to get going. As far as I can recall though, the presence of compiled device tree files and the ability to select amongst them was not part of the original implementation and appeared a few years later (but I could be misremembering that).