symbian-qemu-0.9.1-12/dtc-trunk/Documentation/dts-format.txt
author johnathan.white@2718R8BGH51.accenture.com
Mon, 08 Mar 2010 18:45:03 +0000
changeset 46 b6935a90ca64
parent 1 2fb8b9db1c86
permissions -rw-r--r--
Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer Add example minigui application with hooks to profiler (which writes results to S:\). Modified NGA framebuffer to run its own dfc queue at high priority

Device Tree Source Format (version 1)
=====================================

The Device Tree Source (DTS) format is a textual representation of a
device tree in a form that can be processed by dtc into a binary
device tree in the form expected by the kernel.  The description below
is not a formal syntax definition of DTS, but describes the basic
constructs used to represent device trees.

Node and property definitions
-----------------------------

Device tree nodes are defined with a node name and unit address with
braces marking the start and end of the node definition.  They may be
preceded by a label.

	[label:] node-name[@unit-address] {
		[properties definitions]
		[child nodes]
	}

Nodes may contain property definitions and/or child node
definitions. If both are present, properties must come before child
nodes.

Property definitions are name value pairs in the form:
	[label:] property-name = value;
except for properties with empty (zero length) value which have the
form:
	[label:] property-name;

Property values may be defined as an array of 32-bit integer cells, as
NUL-terminated strings, as bytestrings or a combination of these.

* Arrays of cells are represented by angle brackets surrounding a
  space separated list of C-style integers

	e.g. interrupts = <17 0xc>;

* A 64-bit value is represented with two 32-bit cells.

	e.g. clock-frequency = <0x00000001 0x00000000>;

* A NUL-terminated string value is represented using double quotes
  (the property value is considered to include the terminating NUL
  character).

	e.g. compatible = "simple-bus";

* A bytestring is enclosed in square brackets [] with each byte
  represented by two hexadecimal digits.  Spaces between each byte are
  optional.

	e.g. local-mac-address = [00 00 12 34 56 78]; or equivalently
	     local-mac-address = [000012345678];

* Values may have several comma-separated components, which are
  concatenated together.
	e.g. compatible = "ns16550", "ns8250";
	     example = <0xf00f0000 19>, "a strange property format";

* In a cell array a reference to another node will be expanded to that
  node's phandle.  References may by '&' followed by a node's label:
	e.g. interrupt-parent = < &mpic >;
  or they may be '&' followed by a node's full path in braces:
	e.g. interrupt-parent = < &{/soc/interrupt-controller@40000} >;

* Outside a cell array, a reference to another node will be expanded
  to that node's full path.
	e.g. ethernet0 = &EMAC0;

* Labels may also appear before or after any component of a property
  value, or between cells of a cell array, or between bytes of a
  bytestring.
	e.g. reg = reglabel: <0 sizelabel: 0x1000000>;
	e.g. prop = [ab cd ef byte4: 00 ff fe];
	e.g. str = start: "string value" end: ;


File layout
-----------

Version 1 DTS files have the overall layout:
	/dts-v1/;

	[memory reservations]

	/ {
		[property definitions]
		[child nodes]
	};

* The "/dts-v1/;" must be present to identify the file as a version 1
  DTS (dts files without this tag will be treated by dtc as being in
  the obsolete "version 0", which uses a different format for integers
  amongst other small but incompatible changes).

* Memory reservations define an entry for the device tree blob's
  memory reservation table.  They have the form:
	e.g. /memreserve/ <address> <length>;
  Where <address> and <length> are 64-bit C-style integers.

* The / { ... }; section defines the root node of the device tree.

* C style (/* ... */) and C++ style (// ...) comments are supported.



	-- David Gibson <david@gibson.dropbear.id.au>
	-- Yoder Stuart <stuart.yoder@freescale.com>