04 Dec, 2014

1 commit


01 Dec, 2014

1 commit

  • After commit 933cdbb479: "fdt: Try to use fdt_address_cells()/fdt_size_cells()"
    I noticed that allwinner boards would no longer boot.

    Switching to fdt_address_cells / fdt_size_cells changes the result from
    bytes to 32 bit words, so when we increment pointers into the blob, we must
    do so by 32 bit words now.

    This commit makes allwinner boards boot again.

    Signed-off-by: Hans de Goede
    Tested-by: Masahiro Yamada
    Acked-by: Simon Glass
    Tested-by: Stefan Roese
    Tested-by: Vince Hsu

    Hans de Goede
     

27 Nov, 2014

3 commits


25 Nov, 2014

1 commit

  • Add a generic helper to fill and enable simplefb nodes.

    The first user of this will be the sunxi display code.

    lcd_dt_simplefb_configure_node is also a good candidate to be converted
    to use this, but that requires someone to run some tests first, as
    lcd_dt_simplefb_configure_node does not honor #address-cells and #size-cells,
    but simply assumes 1 and 1 for both.

    Signed-off-by: Hans de Goede
    Tested-by: Stephen Warren
    Acked-by: Simon Glass

    Hans de Goede
     

23 Nov, 2014

1 commit

  • U-Boot has never cared about the type when we get max/min of two
    values, but Linux Kernel does. This commit gets min, max, min3, max3
    macros synced with the kernel introducing type checks.

    Many of references of those macros must be fixed to suppress warnings.
    We have two options:
    - Use min, max, min3, max3 only when the arguments have the same type
    (or add casts to the arguments)
    - Use min_t/max_t instead with the appropriate type for the first
    argument

    Signed-off-by: Masahiro Yamada
    Acked-by: Pavel Machek
    Acked-by: Lukasz Majewski
    Tested-by: Lukasz Majewski
    [trini: Fixup arch/blackfin/lib/string.c]
    Signed-off-by: Tom Rini

    Masahiro Yamada
     

21 Nov, 2014

3 commits


25 Sep, 2014

2 commits


09 Aug, 2014

1 commit


19 Jun, 2014

10 commits

  • Before this commit, fdt_initrd() just returned if initrd
    start address is zero.
    But it is possible if the RAM is located at address 0.

    This commit makes the return condition more reasonable:
    Just return if the size of initrd is zero.

    Signed-off-by: Masahiro Yamada
    Acked-by: Simon Glass

    Masahiro Yamada
     
  • Data written to DTB must be converted to big endian order.
    It is usually done by using cpu_to_fdt32(), cpu_to_fdt64(), etc.

    fdt_initrd() invoked write_cell(), which always swaps byte order.
    It means the function only worked on little endian architectures.
    (On big endian architectures, the byte order should be kept as it is)

    This commit uses cpu_to_fdt32() and cpu_to_fdt64()
    and deletes write_cell().

    Signed-off-by: Masahiro Yamada
    Acked-by: Simon Glass

    Masahiro Yamada
     
  • Data written to DTB must be converted to big endian order.
    It is usually done by using cpu_to_fdt32(), cpu_to_fdt64(), etc.

    fdt_fixup_memory_banks() invoked write_cell(), which always
    swaps byte order.
    It means the function only worked on little endian architectures.

    This commit adds and uses a new helper function, fdt_pack_reg(),
    which works on both big endian and little endian architrectures.

    Signed-off-by: Masahiro Yamada
    Acked-by: Simon Glass

    Masahiro Yamada
     
  • In the next commit, I will add a new function, fdt_pack_reg()
    which uses get_cells_len().

    Beforehand, this commit adds 'const' qualifier to get_cells_len().
    Otherwise, a warning message will appear:
    warning: passing argument 1 of 'get_cells_len' discards 'const'
    qualifier from pointer target type [enabled by default]

    Signed-off-by: Masahiro Yamada
    Acked-by: Simon Glass

    Masahiro Yamada
     
  • - Do not use a deep indentation. We have only 80-character
    on each line and 1 indentation consumes 8 spaces. Before the
    code moves far to the right, you should consider to
    fix your code. See Linux Documentation/CodingStyle.

    - Add CONFIG_OF_STDOUT_VIA_ALIAS and OF_STDOUT_PATH macros
    only to their definition. Do not add them to both
    callee and caller. This is a tip to avoid using #ifdef
    everywhere.

    - OF_STDOUT_PATH and CONFIG_OF_STDOUT_VIA_ALIAS are exclusive.
    If both are defined, the former takes precedence.
    Do not try to fix-up "linux,stdout-path" property twice.

    Signed-off-by: Masahiro Yamada
    Acked-by: Simon Glass

    Masahiro Yamada
     
  • After all, we have realized "force" argument is completely
    useless. fdt_chosen() was always called with force = 1.

    We should always want to do the same thing
    (set appropriate value to the property)
    even if the property already exists.

    Signed-off-by: Masahiro Yamada
    Acked-by: Simon Glass

    Masahiro Yamada
     
  • After all, we have realized "force" argument is completely
    useless. fdt_initrd() was always called with force = 1.

    We should always want to do the same thing
    (set appropriate value to the property)
    even if the property already exists.

    Signed-off-by: Masahiro Yamada
    Acked-by: Simon Glass

    Masahiro Yamada
     
  • Some functions in fdt_support.c do the same routine:
    search a node with a given name ("chosen", "memory", etc.)
    or newly create it if it does not exist.

    So this commit makes that routine to a helper function.

    Signed-off-by: Masahiro Yamada
    Acked-by: Simon Glass

    Masahiro Yamada
     
  • gd->bd is not used in fdt_support.c.

    Signed-off-by: Masahiro Yamada
    Acked-by: Simon Glass

    Masahiro Yamada
     
  • A board that has a USB ethernet device only may set the usbetheraddr
    and not the ethaddr.
    ethaddr will be the default MAC address that is chosen and if that
    is not populated then the usbethaddr is looked at. If neither are set
    then then device tree blob is not modified.

    Signed-off-by: Dan Murphy

    Dan Murphy
     

23 Apr, 2014

2 commits

  • This patch adds a helper function that can be used to interpret most
    "ranges" properties in the device tree.

    It reads the n'th range out of a "ranges" array and returns the node's
    virtual address of the range, the physical address that range starts at
    and the size of the range.

    Signed-off-by: Alexander Graf
    Acked-by: Scott Wood
    Reviewed-by: York Sun

    Alexander Graf
     
  • We already have a nice helper to give us a property cell value with default
    fall back from a path. Split that into two helpers - one for the old path
    based lookup and one to give us a value based on a node offset.

    Signed-off-by: Alexander Graf
    Acked-by: Scott Wood
    Reviewed-by: York Sun

    Alexander Graf
     

21 Jan, 2014

1 commit

  • The change to add 64bit initrd support broke 32bit initrd support as it
    always set 64bits worth of data into the properties, even on 32bit
    systems. The fix is to use addr_cell_len (which already says how much
    data is in 'tmp') to set the property, rather than always setting 8.
    Thanks to Stephen Warren for pointing out the fix here.

    Reported-by: Otavio Salvador
    Signed-off-by: Tom Rini

    Tom Rini
     

10 Jan, 2014

1 commit


09 Jan, 2014

1 commit


16 Dec, 2013

1 commit


16 Oct, 2013

1 commit

  • commit 39ac34473f3c96e77cbe03a49141771ed1639486 ("cmd_mtdparts: use 64
    bits for flash size, partition size & offset") introduced warnings
    in a couple places due to printf formats or pointer casting.

    This patch fixes the warnings pointed out here:
    http://lists.denx.de/pipermail/u-boot/2013-October/164981.html

    Signed-off-by: Scott Wood
    Cc: York Sun
    Cc: Stefan Roese
    Cc: Paul Burton
    Cc: Tom Rini

    Scott Wood
     

24 Jul, 2013

1 commit


08 Jun, 2013

1 commit

  • Some ARM compilers may emit code that makes unaligned accesses when
    faced with constructs such as:

    char mac[16] = "ethaddr";

    Replace this with a strcpy() call instead to avoid this. strcpy() is
    used here, rather than replacing all usage of the mac variable with the
    string itself, since the loop itself sprintf()s to the variable each
    iteration, so strcpy() is doing basically the same thing.

    Reported-by: Florian Meier
    Signed-off-by: Stephen Warren

    Stephen Warren
     

18 May, 2013

1 commit


08 Feb, 2013

2 commits

  • trivial:

    fdt_support.c:89:64: warning: Using plain integer as NULL pointer
    fdt_support.c:325:65: warning: Using plain integer as NULL pointer
    fdt_support.c:352:65: warning: Using plain integer as NULL pointer

    For the following bad constant expression, We hardcode the max. number of
    memory banks to four for the foreseeable future, and add an error with
    instructions on what to do once it's exceeded:

    fdt_support.c:397:22: error: bad constant expression

    For the rest below, sparse found a couple of wrong endian conversions
    in of_bus_default_translate() and fdt_get_base_address(), but
    otherwise the rest is mostly annotation fixes:

    fdt_support.c:64:24: warning: cast to restricted __be32
    fdt_support.c:192:21: warning: incorrect type in assignment (different base types)
    fdt_support.c:192:21: expected unsigned int [unsigned] [usertype] tmp
    fdt_support.c:192:21: got restricted __be32 [usertype]
    fdt_support.c:201:21: warning: incorrect type in assignment (different base types)
    fdt_support.c:201:21: expected unsigned int [unsigned] [addressable] [usertype] tmp
    fdt_support.c:201:21: got restricted __be32 [usertype]
    fdt_support.c:304:13: warning: incorrect type in assignment (different base types)
    fdt_support.c:304:13: expected unsigned int [unsigned] [usertype] val
    fdt_support.c:304:13: got restricted __be32 [usertype]
    fdt_support.c:333:13: warning: incorrect type in assignment (different base types)
    fdt_support.c:333:13: expected unsigned int [unsigned] [usertype] val
    fdt_support.c:333:13: got restricted __be32 [usertype]
    fdt_support.c:359:13: warning: incorrect type in assignment (different base types)
    fdt_support.c:359:13: expected unsigned int [unsigned] [usertype] val
    fdt_support.c:359:13: got restricted __be32 [usertype]
    fdt_support.c:373:21: warning: cast to restricted __be32
    fdt_support.c:963:48: warning: incorrect type in argument 1 (different base types)
    fdt_support.c:963:48: expected restricted __be32 const [usertype] *p
    fdt_support.c:963:48: got unsigned int [usertype] *
    fdt_support.c:971:48: warning: incorrect type in argument 1 (different base types)
    fdt_support.c:971:48: expected restricted __be32 const [usertype] *p
    fdt_support.c:971:48: got unsigned int [usertype] *
    fdt_support.c:984:29: warning: incorrect type in argument 1 (different base types)
    fdt_support.c:984:29: expected restricted __be32 const [usertype] *cell
    fdt_support.c:984:29: got unsigned int [usertype] *addr
    fdt_support.c:996:32: warning: incorrect type in argument 1 (different base types)
    fdt_support.c:996:32: expected restricted __be32 const [usertype] *cell
    fdt_support.c:996:32: got unsigned int [usertype] *addr
    fdt_support.c:1041:41: warning: incorrect type in argument 1 (different base types)
    fdt_support.c:1041:41: expected restricted __be32 const [usertype] *cell
    fdt_support.c:1041:41: got unsigned int [usertype] *addr
    fdt_support.c:1053:41: warning: incorrect type in argument 2 (different base types)
    fdt_support.c:1053:41: expected restricted __be32 const [usertype] *range
    fdt_support.c:1053:41: got unsigned int const [usertype] *[assigned] ranges
    fdt_support.c:1064:53: warning: incorrect type in argument 2 (different base types)
    fdt_support.c:1064:53: expected restricted __be32 const [usertype] *addr
    fdt_support.c:1064:53: got unsigned int [usertype] *addr
    fdt_support.c:1110:50: warning: incorrect type in argument 2 (different base types)
    fdt_support.c:1110:50: expected restricted __be32 const [usertype] *addr
    fdt_support.c:1110:50: got unsigned int *
    fdt_support.c:1121:49: warning: incorrect type in argument 1 (different base types)
    fdt_support.c:1121:49: expected restricted __be32 const [usertype] *cell
    fdt_support.c:1121:49: got unsigned int *
    fdt_support.c:1147:60: warning: incorrect type in argument 2 (different base types)
    fdt_support.c:1147:60: expected restricted __be32 const [usertype] *addr
    fdt_support.c:1147:60: got unsigned int *
    fdt_support.c:1081:5: warning: symbol '__of_translate_address' was not declared. Should it be static?
    fdt_support.c:1154:5: error: symbol 'fdt_translate_address' redeclared with different type (originally declared at include/fdt_support.h:95) - incompatible argument 3 (different base types)
    fdt_support.c: In function 'fdt_node_offset_by_compat_reg':
    fdt_support.c:1173:17: warning: initialization discards 'const' qualifier from pointer target type [enabled by default]

    See also linux kernel commit 0131d897 "of/address: use proper
    endianess in get_flags".

    Signed-off-by: Kim Phillips
    Cc: Jerry Van Baren

    Kim Phillips
     
  • and, if including libfdt.h which includes libfdt_env.h in
    the correct order, don't include fdt.h before libfdt.h.

    this is needed to get the fdt type definitions set from
    the project environment before fdt.h uses them.

    Signed-off-by: Kim Phillips
    Cc: Jerry Van Baren

    Kim Phillips
     

12 Dec, 2012

1 commit


16 Oct, 2012

1 commit


14 Nov, 2011

2 commits


18 Oct, 2011

1 commit

  • Add common function fdt_set_node_status() to assist in various locations
    that we set a nodes status. This function utilizes the status values
    that are part of the EPAPR spec (on power.org).

    fdt_set_status_by_alias() is based on fdt_set_node_status() but uses an
    alias string to identify the node to update.

    We also add some shortcut functions to help the common cases of setting
    "okay" and "disabled":

    fdt_status_okay()
    fdt_status_disabled()
    fdt_status_okay_by_alias()
    fdt_status_disabled_by_alias()

    Finally, we fixup the corenet_ds ethernet code which previously had
    a function by the same name that can be replaced with the new helpers.

    Signed-off-by: Shengzhou Liu
    Signed-off-by: Kumar Gala
    Acked-by: Gerald Van Baren

    Shengzhou Liu