From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefan Agner Date: Thu, 15 Dec 2016 15:03:27 -0800 Subject: [U-Boot] [PATCH 2/2] cmd: fdt: Print error message when fdt application fails In-Reply-To: <20161215230327.28896-1-stefan@agner.ch> References: <20161215230327.28896-1-stefan@agner.ch> Message-ID: <20161215230327.28896-2-stefan@agner.ch> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de From: Stefan Agner 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 --- 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 # 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 */ -- 2.10.2