summaryrefslogtreecommitdiff
path: root/Documentation
diff options
context:
space:
mode:
authorAnton Staaf <robotboy@chromium.org>2011-10-11 10:22:29 -0700
committerJon Loeliger <jdl@jdl.com>2011-10-11 12:58:30 -0500
commit033089f29099bdfd5c2d6986cdb9fd07b16cfde0 (patch)
tree00e42d38d1bcd5013b16d72a74c3e9c98f3f7f86 /Documentation
parenta4b515c03804dbc0eff5bbf281bd22438717e773 (diff)
downloaddevice-tree-compiler-033089f29099bdfd5c2d6986cdb9fd07b16cfde0.tar.gz
dtc: Add support for variable sized elements
Elements of size 8, 16, 32, and 64 bits are supported. The new /bits/ syntax was selected so as to not pollute the reserved keyword space with uint8/uint16/... type names. With this patch the following property assignment: property = /bits/ 16 <0x1234 0x5678 0x0 0xffff>; is equivalent to: property = <0x12345678 0x0000ffff>; It is now also possible to directly specify a 64 bit literal in a cell list, also known as an array using: property = /bits/ 64 <0xdeadbeef00000000>; It is an error to attempt to store a literal into an element that is too small to hold the literal, and the compiler will generate an error when it detects this. For instance: property = /bits/ 8 <256>; Will fail to compile. It is also an error to attempt to place a reference in a non 32-bit element. The documentation has been changed to reflect that the cell list is now an array of elements that can be of sizes other than the default 32-bit cell size. The sized_cells test tests the creation and access of 8, 16, 32, and 64-bit sized elements. It also tests that the creation of two properties, one with 16 bit elements and one with 32 bit elements result in the same property contents. Signed-off-by: Anton Staaf <robotboy@chromium.org> Acked-by: David Gibson <david@gibson.dropbear.id.au>
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/dts-format.txt34
1 files changed, 23 insertions, 11 deletions
diff --git a/Documentation/dts-format.txt b/Documentation/dts-format.txt
index eae8b76..41741df 100644
--- a/Documentation/dts-format.txt
+++ b/Documentation/dts-format.txt
@@ -29,18 +29,28 @@ 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.
+Property values may be defined as an array of 8, 16, 32, or 64-bit integer
+elements, 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 or character literals.
+* Arrays are represented by angle brackets surrounding a space separated list
+ of C-style integers or character literals. Array elements default to 32-bits
+ in size. An array of 32-bit elements is also known as a cell list or a list
+ of cells. A cell being an unsigned 32-bit integer.
e.g. interrupts = <17 0xc>;
-* A 64-bit value is represented with two 32-bit cells.
+* A 64-bit value can be represented with two 32-bit elements.
e.g. clock-frequency = <0x00000001 0x00000000>;
+* The storage size of an element can be changed using the /bits/ prefix. The
+ /bits/ prefix allows for the creation of 8, 16, 32, and 64-bit elements.
+ The resulting array will not be padded to a multiple of the default 32-bit
+ element size.
+
+ e.g. interrupts = /bits/ 8 <17 0xc>;
+ e.g. clock-frequency = /bits/ 64 <0x0000000100000000>;
+
* A NUL-terminated string value is represented using double quotes
(the property value is considered to include the terminating NUL
character).
@@ -59,19 +69,20 @@ NUL-terminated strings, as bytestrings or a combination of these.
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:
+* In an 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} >;
+ References are only permitted in arrays that have an element size of
+ 32-bits.
-* Outside a cell array, a reference to another node will be expanded
- to that node's full path.
+* Outside an 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.
+ value, or between elements of an 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: ;
@@ -108,3 +119,4 @@ Version 1 DTS files have the overall layout:
-- David Gibson <david@gibson.dropbear.id.au>
-- Yoder Stuart <stuart.yoder@freescale.com>
+ -- Anton Staaf <robotboy@chromium.org>