
From: Stefan Agner stefan.agner@toradex.com
There are lots of reason why a FDT application might fail, the error code might give an indication. Let the error code translate in a error string so users can try to understand what went wrong.
Signed-off-by: Stefan Agner stefan.agner@toradex.com Acked-by: Maxime Ripard maxime.ripard@free-electrons.com Acked-by: Simon Glass sjg@chromium.org --- Currently I get this when I apply a device tree overlay to a device tree without symbols:
Colibri iMX7 # fdt apply ${loadaddr} Colibri iMX7 # fdt print libfdt fdt_path_offset() returned FDT_ERR_BADMAGIC Colibri iMX7 #
With this change, the situation is a bit more indicative:
Colibri iMX7 # fdt apply ${loadaddr} fdt_overlay_apply(): FDT_ERR_NOTFOUND Colibri iMX7 # fdt print libfdt fdt_path_offset() returned FDT_ERR_BADMAGIC Colibri iMX7 #
Changes in v2: None
cmd/fdt.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/cmd/fdt.c b/cmd/fdt.c index 8bd345a..6883e75 100644 --- a/cmd/fdt.c +++ b/cmd/fdt.c @@ -642,6 +642,7 @@ static int do_fdt(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) else if (strncmp(argv[1], "ap", 2) == 0) { unsigned long addr; struct fdt_header *blob; + int ret;
if (argc != 3) return CMD_RET_USAGE; @@ -654,8 +655,11 @@ static int do_fdt(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) if (!fdt_valid(&blob)) return CMD_RET_FAILURE;
- if (fdt_overlay_apply(working_fdt, blob)) + ret = fdt_overlay_apply(working_fdt, blob); + if (ret) { + printf("fdt_overlay_apply(): %s\n", fdt_strerror(ret)); return CMD_RET_FAILURE; + } } #endif /* resize the fdt */