aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Vasut <marek.vasut+renesas@mailbox.org>2023-03-02 04:08:15 +0100
committerSimon Glass <sjg@chromium.org>2023-03-08 11:40:57 -0800
commit45d20f55a178bd00f631460909881176fb12b37d (patch)
treeb6b65a4fbae62388c72f4168e4ebf1a988008ab3
parent56915fa4ccc7d995f832723b62ed403bd9a4cf44 (diff)
downloadu-boot-45d20f55a178bd00f631460909881176fb12b37d.zip
u-boot-45d20f55a178bd00f631460909881176fb12b37d.tar.gz
u-boot-45d20f55a178bd00f631460909881176fb12b37d.tar.bz2
cmd: fdt: Fix handling of empty properties for fdt get addr and fdt get size
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>
-rw-r--r--cmd/fdt.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/cmd/fdt.c b/cmd/fdt.c
index bf24156..56b3585 100644
--- 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);