]> git.baikalelectronics.ru Git - uboot.git/commitdiff
cmd: fdt: Fix handling of empty properties for fdt get addr and fdt get size
authorMarek Vasut <marek.vasut+renesas@mailbox.org>
Thu, 2 Mar 2023 03:08:15 +0000 (04:08 +0100)
committerSimon Glass <sjg@chromium.org>
Thu, 9 Mar 2023 16:50:46 +0000 (08:50 -0800)
It is perfectly valid to request an address or size of FDT property
without value, the only special case if requesting of the value of
FDT property without value. Invert the test such, that properties
without value still set the variable from 'fdt get addr/size' to
address of the property or size of the property, where the later
is 0.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
cmd/fdt.c

index bf2415661e2e2276f0b38804195e4d0603f7ff0e..56b3585c3ac59201d00beb67dee4d6edb46b291d 100644 (file)
--- a/cmd/fdt.c
+++ b/cmd/fdt.c
@@ -446,15 +446,17 @@ static int do_fdt(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
                } else {
                        nodep = fdt_getprop(
                                working_fdt, nodeoffset, prop, &len);
-                       if (len == 0) {
-                               /* no property value */
-                               env_set(var, "");
-                               return 0;
-                       } else if (nodep && len > 0) {
+                       if (nodep && len >= 0) {
                                if (subcmd[0] == 'v') {
                                        int index = 0;
                                        int ret;
 
+                                       if (len == 0) {
+                                               /* no property value */
+                                               env_set(var, "");
+                                               return 0;
+                                       }
+
                                        if (argc == 7)
                                                index = simple_strtoul(argv[6], NULL, 10);