]> git.ipfire.org Git - people/ms/u-boot.git/blobdiff - cmd/fdt.c
mmc: synchronize the sequence with enum bus_mode in mmc.h
[people/ms/u-boot.git] / cmd / fdt.c
index 118613f405169c82d70f5d50c76dec1341761200..b783b0df427c848ffd04f07662e27147fa6e2e22 100644 (file)
--- a/cmd/fdt.c
+++ b/cmd/fdt.c
@@ -256,7 +256,7 @@ static int do_fdt(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
                char *pathp;            /* path */
                char *prop;             /* property */
                int  nodeoffset;        /* node offset from libfdt */
-               static char data[SCRATCHPAD];   /* storage for the property */
+               static char data[SCRATCHPAD] __aligned(4);/* property storage */
                const void *ptmp;
                int  len;               /* new length of the property */
                int  ret;               /* return value */
@@ -284,16 +284,14 @@ static int do_fdt(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
                        len = 0;
                } else {
                        ptmp = fdt_getprop(working_fdt, nodeoffset, prop, &len);
-                       if (!ptmp) {
-                               printf("prop (%s) not found!\n", prop);
-                               return 1;
-                       }
                        if (len > SCRATCHPAD) {
                                printf("prop (%d) doesn't fit in scratchpad!\n",
                                       len);
                                return 1;
                        }
-                       memcpy(data, ptmp, len);
+                       if (ptmp != NULL)
+                               memcpy(data, ptmp, len);
+
                        ret = fdt_parse_prop(&argv[4], argc - 4, data, &len);
                        if (ret != 0)
                                return ret;
@@ -669,11 +667,10 @@ static int do_fdt(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
                if (!fdt_valid(&blob))
                        return CMD_RET_FAILURE;
 
-               ret = fdt_overlay_apply(working_fdt, blob);
-               if (ret) {
-                       printf("fdt_overlay_apply(): %s\n", fdt_strerror(ret));
+               /* apply method prints messages on error */
+               ret = fdt_overlay_apply_verbose(working_fdt, blob);
+               if (ret)
                        return CMD_RET_FAILURE;
-               }
        }
 #endif
        /* resize the fdt */