]> git.sur5r.net Git - u-boot/commitdiff
Merge branch 'master' of git://git.denx.de/u-boot-fsl-qoriq
authorTom Rini <trini@konsulko.com>
Mon, 20 Jul 2015 21:12:52 +0000 (17:12 -0400)
committerTom Rini <trini@konsulko.com>
Mon, 20 Jul 2015 21:12:52 +0000 (17:12 -0400)
common/cmd_fdt.c
common/fdt_support.c
drivers/spi/fsl_dspi.c
include/fdt_support.h
include/libfdt.h
lib/fdtdec.c
lib/libfdt/fdt_ro.c

index 682b6553958fe5afcf60fe78af4c3230f5d03915..4c18962d853283b501729d0b36c6326548c00a1c 100644 (file)
@@ -45,7 +45,7 @@ void set_working_fdt_addr(ulong addr)
 
        buf = map_sysmem(addr, 0);
        working_fdt = buf;
-       setenv_ulong("fdtaddr", addr);
+       setenv_hex("fdtaddr", addr);
 }
 
 /*
index 10648b5a4a86e0d94765b94b02af7b0e4ca9fc76..f86365e8f0da60caddb0444518e72bb8e46ea0b7 100644 (file)
@@ -454,6 +454,9 @@ int fdt_fixup_memory_banks(void *blob, u64 start[], u64 size[], int banks)
                return err;
        }
 
+       if (!banks)
+               return 0;
+
        len = fdt_pack_reg(blob, tmp, start, size, banks);
 
        err = fdt_setprop(blob, nodeoffset, "reg", tmp, len);
index 6476f913c8d73b8892c5942fc21fc26b2c041afa..792853192ed78fc661b467d2f5c21405f97bdd47 100644 (file)
@@ -664,8 +664,8 @@ static int fsl_dspi_ofdata_to_platdata(struct udevice *bus)
        plat->speed_hz = fdtdec_get_int(blob,
                        node, "spi-max-frequency", FSL_DSPI_DEFAULT_SCK_FREQ);
 
-       debug("DSPI: regs=0x%x, max-frequency=%d, endianess=%s, num-cs=%d\n",
-             plat->regs_addr, plat->speed_hz,
+       debug("DSPI: regs=0x%llx, max-frequency=%d, endianess=%s, num-cs=%d\n",
+             (u64)plat->regs_addr, plat->speed_hz,
              plat->flags & DSPI_FLAG_REGMAP_ENDIAN_BIG ? "be" : "le",
              plat->num_chipselect);
 
index 0edc4fa5b1445e594368ebd6ac7c214687c9ef3d..296add01f34f9ece7f172b4a59c3cff9eb63d474 100644 (file)
@@ -67,8 +67,34 @@ void do_fixup_by_compat(void *fdt, const char *compat,
                        const char *prop, const void *val, int len, int create);
 void do_fixup_by_compat_u32(void *fdt, const char *compat,
                            const char *prop, u32 val, int create);
+/**
+ * Setup the memory node in the DT. Creates one if none was existing before.
+ * Calls fdt_fixup_memory_banks() to populate a single reg pair covering the
+ * whole memory.
+ *
+ * @param blob         FDT blob to update
+ * @param start                Begin of DRAM mapping in physical memory
+ * @param size         Size of the single memory bank
+ * @return 0 if ok, or -1 or -FDT_ERR_... on error
+ */
 int fdt_fixup_memory(void *blob, u64 start, u64 size);
+
+/**
+ * Fill the DT memory node with multiple memory banks.
+ * Creates the node if none was existing before.
+ * If banks is 0, it will not touch the existing reg property. This allows
+ * boards to not mess with the existing DT setup, which may have been
+ * filled in properly before.
+ *
+ * @param blob         FDT blob to update
+ * @param start                Array of size <banks> to hold the start addresses.
+ * @param size         Array of size <banks> to hold the size of each region.
+ * @param banks                Number of memory banks to create. If 0, the reg
+ *                     property will be left untouched.
+ * @return 0 if ok, or -1 or -FDT_ERR_... on error
+ */
 int fdt_fixup_memory_banks(void *blob, u64 start[], u64 size[], int banks);
+
 void fdt_fixup_ethernet(void *fdt);
 int fdt_find_and_setprop(void *fdt, const char *node, const char *prop,
                         const void *val, int len, int create);
index f3cbb637be419d16c35e59aec1aaf08f7819e310..421d64fd8b6328f0241bf32762febd2b958b049e 100644 (file)
@@ -915,7 +915,7 @@ int fdt_get_string_index(const void *fdt, int node, const char *property,
                         int index, const char **output);
 
 /**
- * fdt_get_string() - obtain the string at a given index in a string list
+ * fdt_get_string() - obtain the first string in a string list
  * @fdt: pointer to the device tree blob
  * @node: offset of the node
  * @property: name of the property containing the string list
index 9877849f99b490607d8ffc0d33048290f19a1058..9c6b3619da24cd9ad5c4894d848298ff380d3419 100644 (file)
@@ -102,8 +102,8 @@ fdt_addr_t fdtdec_get_addr_size(const void *blob, int node,
                        size = (fdt_size_t *)((char *)cell +
                                        sizeof(fdt_addr_t));
                        *sizep = fdt_size_to_cpu(*size);
-                       debug("addr=%08lx, size=%08x\n",
-                             (ulong)addr, *sizep);
+                       debug("addr=%08lx, size=%llx\n",
+                             (ulong)addr, (u64)*sizep);
                } else {
                        debug("%08lx\n", (ulong)addr);
                }
index 44fc0aa900d2556996ab5f9ef7c87f12fca517ce..7b0777b67eb3cbb92609ae81366ef4bf66d1944b 100644 (file)
@@ -517,7 +517,7 @@ int fdt_count_strings(const void *fdt, int node, const char *property)
 
        list = fdt_getprop(fdt, node, property, &length);
        if (!list)
-               return -length;
+               return length;
 
        for (i = 0; i < length; i++) {
                int len = strlen(list);
@@ -577,7 +577,7 @@ int fdt_get_string_index(const void *fdt, int node, const char *property,
                index--;
        }
 
-       return FDT_ERR_NOTFOUND;
+       return -FDT_ERR_NOTFOUND;
 }
 
 int fdt_get_string(const void *fdt, int node, const char *property,