X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=cmd%2Ffdt.c;h=28de467f9671e6dffcbc18a74522114509036f57;hb=a280e9db64ba76dc5a0c800f83da2be1681c3a64;hp=118613f405169c82d70f5d50c76dec1341761200;hpb=390194d43fa4478ddb638164ddb114c979f3e57a;p=u-boot diff --git a/cmd/fdt.c b/cmd/fdt.c index 118613f405..28de467f96 100644 --- a/cmd/fdt.c +++ b/cmd/fdt.c @@ -1,11 +1,10 @@ +// SPDX-License-Identifier: GPL-2.0+ /* * (C) Copyright 2007 * Gerald Van Baren, Custom IDEAS, vanbaren@cideas.com * Based on code written by: * Pantelis Antoniou and * Matthew McClintock - * - * SPDX-License-Identifier: GPL-2.0+ */ #include @@ -13,7 +12,7 @@ #include #include #include -#include +#include #include #include #include @@ -256,7 +255,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 +283,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 +666,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 */