David Gibson - Device trees everywhere Device trees are in many powerpc mahcines historicly Newew embedded style systems often do not have open firmware, also newer powerpc64 systems may not. The openfirmware has a device tree description So what to do for systemswithout openfirmware Can maybe get a few limited bitsof information but not a whole device tree kexec will have no tree avialable because openfirmware has been clobbered by the initial kernel Flattened tree was to get around these problems by makeing a tree that is always available to the kernel. You make it available to the kernel by passing it on on exec. Created by benh in May 2005. Even used on machines with openfirmware, it hooks into code to scan the openfirmware tree that creates the flattened device tree and then that new flattened tree is passed back to the rest of the kernel. Features required - relocatable (no pointers) - insert and delete into the flattened tree easily. (also limited use of internal offsets so no modofociations changed when placed in different sized memory addressing shunks - compact (save on RAM and flash) Structure of the tree is simply a nested set of notes, a begin node tag when ever one begins. Same structure as an OF deice ree, see IEEE1275 for bindings The standard is a bit old *8 yars) so there is some stuff it does nto describe or can not. Thus they use variations where the standard can not keep up for a description David create a dtc (device tree compiler) that can be given a text representation of a tree and then create the binary blob that may be placed in firmware or similar for a board dtc can handle bad input to some extent, also can check to ensure linux specific devices are there in the tree things to hack on for dtc it couls use better checking, the checking is somewhat haphazard binary files, board specific blobs of data if need be macros? - can use cpp at present See the slides for the links to the docs and information