August 28, 2014

Device Tree Overlay Support Lands Upstream

Pantelis Antoniou originated device tree overlay support for the purpose of enabling dynamic hardware configuration under Linux on devices like BeagleBone that use device tree for hardware configuration. Device tree was introduced to Linux for the purpose of putting the description of hardware into data structures, rather than building it up programmatically, greatly reducing the amount of code required to be maintained within the Linux kernel sources.cMm5cTU.jpgUntil now, the device tree data structure was only processed at boot time and that simply can't work for devices that might change hardware configurations after boot. While many BeagleBone capes can be probed by the bootloader, a common use-case is hardware that is reconfigurable. The most obvious example is a cape with an FPGA on it.

Pantelis' early code was used in the kernel provided with the launch of BeagleBone Black. This became the standard for how BeagleBone cape hardware is supported with numerous tutorials showing up and probing of the on-board cape EEPROMs by Capemgr. This was all done specifically for BeagleBone kernels and was not part of mainline Linux until today whenLinus' accepted Pantelis' patch for device tree transactional supportwhich introduces changesets to device tree support.