Flattened Device Tree for all architectures*
Session to discuss the work required to make the Flattened Device Tree method of describing hardware available to all architectures.
One of the compelling features of the OpenFirmware design is that it makes a structured description of the hardware called the “device tree” available to the operating system. The operating system reads the device tree and uses it to figure out such things like how much memory is available, bus layout, list of devices, and how interrupts are connected. By encoding the platform layout in hardware, it removes the requirement to hardcode all known board configurations into the kernel itself, a pattern which is common in the embedded Linux world.
The data structure is useful enough that a decision was made to require all PowerPC platforms to pass a device tree to the Linux kernel at boot time and the Flattened Device Tree (FDT) data format was developed for providing a device tree on systems without OpenFirmware (ie. almost every embedded PowerPC). See this paper for a detailed description of the switch to FDT for embedded PowerPC platforms, and a discussion of the tradeoffs.
Other architectures also make use of the FDT data format. The Microblaze arch requires an FDT to be passed at boot time, and some out-of-mainline ARM and MIPS board ports use it too.
In this session we will discuss the possibility of making the Flattened Device Tree data structure available as a ‘stock’ method for describing hardware for platforms which don’t already have a firmware interface for describing configuration (in particular embedded non-x86). We will discuss how to manage and standardize data format of for new types of devices, impact (or lack thereof) on firmware, and work needed to make FDT infrastructure available on all architectures. Goal of session is to coordinate FDT development and make decisions about how common FDT support should be organized in the kernel.
firmware, flattened device tree, boot
Grant Likely has spent the last 14 years building embedded systems for the military and telecom industries. Over the course of several embedded Linux projects, Grant became an active PowerPC developer and Linux maintainer of the Xilinx Virtex and the Freescale MPC5xxx platforms. In 2005 he founded Secret Lab Technologies Ltd., an embedded Linux engineering company, where he continues to play with unique hardware and tries not to let the magic smoke out.