Difference between revisions of "Device Trees"

From eLinux.org
Jump to: navigation, search
(Update Introduction section and add Definition of FDT)
(Redirect this page (plural) to the 'device tree' (singular) page.)
 
(21 intermediate revisions by 6 users not shown)
Line 1: Line 1:
== Introduction ==
+
#REDIRECT [[Device Tree]]
The Flattened Device Tree (FDT) is a data structure for describing the
 
hardware in a system.  It is a derived from the device tree format used
 
by Open Firmware to encapsulate platform information and convey it to the-
 
operating system.  The operating system uses the FDT data to find and
 
register the devices in the system.
 
 
 
Currently the Linux kernel can read device tree information in the x86,
 
PowerPC and Sparc architectures.  There is interest in extending support for
 
device trees to other platforms, to unify the handling of platform description
 
across kernel architectures.
 
 
 
The Linux kernel includes a "compiler" which takes a device tree description
 
in "dts" format and produces a binary, "dtb", format, suitable for linking
 
into the kernel.  See <tt>scripts/dtc</tt> in the kernel source directory.
 
 
 
There is documentation describing device tree support (with information current as of 2006) in the
 
Linux kernel source tree at:
 
[http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob_plain;f=Documentation/powerpc/booting-without-of.txt;hb=HEAD Documentation/powerpc/booting-without-of.txt]
 
 
 
== The Flattened Device Tree is... ==
 
The Flattened Device Tree (FDT) is a data structure.  Nothing more.
 
 
 
It describes a machine hardware configuration.  It is
 
derived from the device tree format used by Open Firmware.  The format is expressive and able to describe
 
most board design aspects including:
 
* the number and type of CPUs,
 
* base addresses and size of RAM,
 
* busses and bridges,
 
* peripheral device connections, and
 
* interrupt controllers and IRQ line connections.
 
 
 
Just like initrd images, an FDT image can either be statically linked into the kernel or passed to the kernel
 
at boot time.
 
 
 
== Resources ==
 
=== Presentations and Papers ===
 
"Using the Device Tree to Describe
 
Embedded Hardware" - Grant Likely, Embedded Linux Conference, 2008
 
http://www.celinux.org/elc08_presentations/glikely--device-tree.pdf
 
 
 
"A Symphony of Flavours: Using the device tree to describe embedded
 
hardware" - Grant Likely and Josh Boyer - paper for OLS 2008
 
http://ols.fedoraproject.org/OLS/Reprints-2008/likely2-reprint.pdf
 
 
 
Note from Device Tree Birds of a Feature session at OLS 2008:
 
http://lists.ozlabs.org/pipermail/devicetree-discuss/2008-July/000004.html
 
 
 
==== Coming Up Soon ====
 
Grant's talk at Plumber's conference 2009 - http://linuxplumbersconf.org/ocw/proposals/47
 
 
 
=== Device-tree Mailing List ===
 
https://lists.ozlabs.org/listinfo/devicetree-discuss
 
 
 
=== Mailing list discussion ===
 
Recent discussion of "Flattened Device Tree" work on linux-embedded mailing list:
 
http://www.mail-archive.com/linux-embedded@vger.kernel.org/msg01721.html
 
 
 
Russel King is against adding support for FDT to the ARM platform:
 
http://lkml.indiana.edu/hypermail/linux/kernel/0905.3/01942.html
 
(see whole thread for interesting discussion)
 
 
 
David Gibson defends FDT:
 
http://lkml.indiana.edu/hypermail/linux/kernel/0905.3/02304.html
 
 
 
=== Xilink device tree generator documentation ===
 
Xilinx provides a device-tree generator:
 
http://xilinx.wikidot.com/device-tree-generator
 
"The device tree generator is a Xilinx EDK tool that plugs into the Automatic BSP Generation features of the tool, XPS"
 

Latest revision as of 09:55, 5 September 2013

Redirect to: