On embedded systems, the Linux kernel doesn't have the BIOS to tell it what the hardware is like. On the other hand, the traditional solution of having the hardware information hardcoded in the kernel source is leading to an overpopulation of platform-specific hacks (read: a disaster).
The Device Tree (Open Firmware) is the rising solution for embedded platforms that are based upon a common processor architecture (ARM in particular): It's a collection of hardware information given to the kernel in runtime, allowing it to load and configure the correct drivers, just like PCI/PCIe's plug and play allows the kernel to detect its peripherals.
This talk will explain the device tree's structure, show real device tree code and show how to compile and reverse engineer a device tree. A typical definition of a peripheral will be shown as well, along with the corresponding kernel code.
Download the slides in PDF format.