20 Sep, 2013

1 commit


26 Jun, 2013

1 commit


15 May, 2013

1 commit

  • Iterating through subnodes with libfdt is a little painful to write as we
    need something like this:

    for (depth = 0, count = 0,
    offset = fdt_next_node(fdt, parent_offset, &depth);
    (offset >= 0) && (depth > 0);
    offset = fdt_next_node(fdt, offset, &depth)) {
    if (depth == 1) {
    /* code body */
    }
    }

    Using fdt_next_subnode() we can instead write this, which is shorter and
    easier to get right:

    for (offset = fdt_first_subnode(fdt, parent_offset);
    offset >= 0;
    offset = fdt_next_subnode(fdt, offset)) {
    /* code body */
    }

    Also, it doesn't require two levels of indentation for the loop body.

    Signed-off-by: Simon Glass
    (Cherry-picked from dtc commit 4e76ec79)
    Acked-by: Gerald Van Baren

    Simon Glass
     

11 May, 2013

2 commits


08 Feb, 2013

1 commit


16 Oct, 2012

3 commits

  • The libfdt read/write functions are now usable enough that it's become a
    moderately common pattern to use them to build and manipulate a device
    tree from scratch. For example, we do so ourself in our rw_tree1 testcase,
    and qemu is starting to use this model when building device trees for some
    targets such as e500.

    However, the read/write functions require some sort of valid tree to begin
    with, so this necessitates either having a trivial canned dtb to begin with
    or, more commonly, creating an empty tree using the serial-write functions
    first.

    This patch adds a helper function which uses the serial-write functions to
    create a trivial, empty but complete and valid tree in a supplied buffer,
    ready for manipulation with the read/write functions.

    Signed-off-by: David Gibson

    From git://git.jdl.com/software/dtc.git patch hash be6026838 with
    adaptations to include/libfdt.h and lib/libfdt/Makefile for the U-Boot
    environment.

    Signed-off-by: Gerald Van Baren

    Gerald Van Baren
     
  • In device trees in the world, properties consisting of a single 64-bit
    integer are not as common as those consisting of a single 32-bit, cell
    sized integer, but they're common enough that they're worth including
    convenience functions for.

    This patch adds helper wrappers of fdt_setprop_inplace(), fdt_setprop() and
    fdt_appendprop() for handling 64-bit integer quantities in properties. For
    better consistency with the names of these new *_u64() functions we also
    add *_u32() functions as alternative names for the existing *_cell()
    functions handling 32-bit integers.

    Signed-off-by: David Gibson

    David Gibson
     
  • Some properties may contain multiple values, these values may need
    to be added to the property respectively. this patch provides this
    functionality. The main purpose of fdt_append_prop() is to append
    the values to a existing property, or create a new property if it
    dose not exist.

    Signed-off-by: Minghuan Lian
    Signed-off-by: David Gibson

    Minghuan Lian
     

15 Jul, 2011

1 commit

  • 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: David Gibson

    This was extracted from the DTC commit:
    73dca9ae0b9abe6924ba640164ecce9f8df69c5a Mon Sep 17 00:00:00 2001

    Signed-off-by: Gerald Van Baren

    David Gibson
     

02 Apr, 2009

1 commit


04 Oct, 2008

1 commit


03 Oct, 2008

1 commit

  • Kumar has already added alias expansion to fdt_path_offset().
    However, in some circumstances it may be convenient for the user of
    libfdt to explicitly get the string expansion of an alias. This patch
    adds a function to do this, fdt_get_alias(), and uses it to implement
    fdt_path_offset().

    Signed-off-by: David Gibson

    David Gibson
     

02 Oct, 2008

1 commit

  • Using Gcc 4.3 detected this problem:

    ../dtc/libfdt/fdt.c: In function 'fdt_next_tag':
    ../dtc/libfdt/fdt.c:82: error: assuming signed overflow does not
    occur when assuming that (X + c) < X is always false

    To fix the problem, treat the offset as an unsigned int.

    The problem report and proposed fix were provided
    by Steve Papacharalambous .

    Signed-off-by: Jon Loeliger

    Jon Loeliger
     

25 Aug, 2008

3 commits

  • As well as fdt_subnode_offset(), libfdt includes an
    fdt_subnode_offset_namelen() function that takes the subnode name to
    look up not as a NUL-terminated string, but as a string with an
    explicit length. This can be useful when the caller has the name as
    part of a longer string, such as a full path.

    However, we don't have corresponding 'namelen' versions for
    fdt_get_property() and fdt_getprop(). There are less obvious use
    cases for these variants on property names, but there are
    circumstances where they can be useful e.g. looking up property names
    which need to be parsed from a longer string buffer such as user input
    or a configuration file, or looking up an alias in a path with
    IEEE1275 style aliases.

    So, since it's very easy to implement such variants, this patch does
    so. The original NUL-terminated variants are, of course, implemented
    in terms of the namelen versions.

    Signed-off-by: David Gibson

    David Gibson
     
  • Fix a few typos and mistakes.

    Signed-off-by: Wolfram Sang
    Acked-by: David Gibson

    Wolfram Sang
     
  • Enabling -Wcast-qual warnings in dtc shows up a number of places where
    we are incorrectly discarding a const qualification. There are also
    some places where we are intentionally discarding the 'const', and we
    need an ugly cast through uintptr_t to suppress the warning. However,
    most of these are pretty well isolated with the *_w() functions. So
    in the interests of maximum safety with const qualifications, this
    patch enables the warnings and fixes the existing complaints.

    Signed-off-by: David Gibson
    Acked-by: Gerald Van Baren

    David Gibson
     

21 May, 2008

1 commit

  • This commit gets rid of a huge amount of silly white-space issues.
    Especially, all sequences of SPACEs followed by TAB characters get
    removed (unless they appear in print statements).

    Also remove all embedded "vim:" and "vi:" statements which hide
    indentation problems.

    Signed-off-by: Wolfgang Denk

    Wolfgang Denk
     

19 Mar, 2008

2 commits


09 Jan, 2008

2 commits


02 Jan, 2008

2 commits


22 Nov, 2007

2 commits


06 Sep, 2007

1 commit


11 Aug, 2007

2 commits


15 Apr, 2007

1 commit


07 Apr, 2007

1 commit


04 Apr, 2007

1 commit


01 Apr, 2007

1 commit


31 Mar, 2007

1 commit