Skip to content
Snippets Groups Projects
  1. Jul 15, 2011
    • David Gibson's avatar
      libfdt: Implement property iteration functions · d1c63148
      David Gibson authored
      
      For ages, we've been talking about adding functions to libfdt to allow
      iteration through properties.  So, finally, here are some.
      
      I got bogged down on this for a long time because I didn't want to
      expose offsets directly to properties to the callers.  But without
      that, attempting to make reasonable iteration functions just became
      horrible.  So eventually, I settled on an interface which does now
      expose property offsets.  fdt_first_property_offset() and
      fdt_next_property_offset() are used to step through the offsets of the
      properties starting from a particularly node offset.  The details of
      the property at each offset can then be retrieved with either
      fdt_get_property_by_offset() or fdt_getprop_by_offset() which have
      interfaces similar to fdt_get_property() and fdt_getprop()
      respectively.
      
      No explicit testcases are included, but we do use the new functions to
      reimplement the existing fdt_get_property() function.
      
      Signed-off-by: default avatarDavid Gibson <david@gibson.dropbear.id.au>
      
      This was extracted from the DTC commit:
      73dca9ae0b9abe6924ba640164ecce9f8df69c5a Mon Sep 17 00:00:00 2001
      
      Signed-off-by: default avatarGerald Van Baren <vanbaren@cideas.com>
      d1c63148
    • David Gibson's avatar
      Support ePAPR compliant phandle properties · 05a22ba0
      David Gibson authored
      
      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: default avatarDavid Gibson <david@gibson.dropbear.id.au>
      
      This was extracted from the DTC commit:
      d75b33af676d0beac8398651a7f09037555a550b Mon Sep 17 00:00:00 2001
      
      Signed-off-by: default avatarGerald Van Baren <vanbaren@cideas.com>
      05a22ba0
  2. Nov 17, 2010
    • Sebastien Carlier's avatar
      Switch from archive libraries to partial linking · 6d8962e8
      Sebastien Carlier authored
      
      Before this commit, weak symbols were not overridden by non-weak symbols
      found in archive libraries when linking with recent versions of
      binutils.  As stated in the System V ABI, "the link editor does not
      extract archive members to resolve undefined weak symbols".
      
      This commit changes all Makefiles to use partial linking (ld -r) instead
      of creating library archives, which forces all symbols to participate in
      linking, allowing non-weak symbols to override weak symbols as intended.
      This approach is also used by Linux, from which the gmake function
      cmd_link_o_target (defined in config.mk and used in all Makefiles) is
      inspired.
      
      The name of each former library archive is preserved except for
      extensions which change from ".a" to ".o".  This commit updates
      references accordingly where needed, in particular in some linker
      scripts.
      
      This commit reveals board configurations that exclude some features but
      include source files that depend these disabled features in the build,
      resulting in undefined symbols.  Known such cases include:
      - disabling CMD_NET but not CMD_NFS;
      - enabling CONFIG_OF_LIBFDT but not CONFIG_QE.
      
      Signed-off-by: default avatarSebastien Carlier <sebastien.carlier@gmail.com>
      6d8962e8
  3. Apr 13, 2010
Loading