Support ePAPR compliant phandle properties
authorDavid Gibson <david@gibson.dropbear.id.au>
Thu, 26 Nov 2009 04:37:13 +0000 (15:37 +1100)
committerGerald Van Baren <gvb@unssw.com>
Fri, 15 Jul 2011 01:03:53 +0000 (21:03 -0400)
commit05a22ba096fb996bb69ab020a8d08aafac2c28ba
tree8f4019af405604abed59b5e05df4be05f166637d
parent68d4230c3ccce96a72c5b99e48399bf1796fe3c6
Support ePAPR compliant phandle properties

Currently, the Linux kernel, libfdt and dtc, when using flattened
device trees encode a node's phandle into a property named
"linux,phandle".  The ePAPR specification, however - aiming as it is
to not be a Linux specific spec - requires that phandles be encoded in
a property named simply "phandle".

This patch adds support for this newer approach to dtc and libfdt.
Specifically:

- fdt_get_phandle() will now return the correct phandle if it
          is supplied in either of these properties

- fdt_node_offset_by_phandle() will correctly find a node with
          the given phandle encoded in either property.

- By default, when auto-generating phandles, dtc will encode
          it into both properties for maximum compatibility.  A new -H
          option allows either only old-style or only new-style
          properties to be generated.

- If phandle properties are explicitly supplied in the dts
  file, dtc will not auto-generate ones in the alternate format.

- If both properties are supplied, dtc will check that they
          have the same value.

- Some existing testcases are updated to use a mix of old and
          new-style phandles, partially testing the changes.

- A new phandle_format test further tests the libfdt support,
          and the -H option.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This was extracted from the DTC commit:
d75b33af676d0beac8398651a7f09037555a550b Mon Sep 17 00:00:00 2001

Signed-off-by: Gerald Van Baren <vanbaren@cideas.com>
lib/libfdt/fdt_ro.c