summaryrefslogtreecommitdiff
path: root/common/fdt_support.c
diff options
context:
space:
mode:
authorAndre Przywara <osp@andrep.de>2015-06-21 00:29:54 +0100
committerSimon Glass <sjg@chromium.org>2015-07-20 07:21:47 -0600
commit5c1cf89f8c342c8533f730409f7dd2b21806c3d3 (patch)
tree4d64366bf88e48696396ee1bf896564e2140d7a0 /common/fdt_support.c
parent605e15db2b54302364a2528d3c6604fbc57be846 (diff)
downloadu-boot-5c1cf89f8c342c8533f730409f7dd2b21806c3d3.tar.gz
fdt: prevent clearing memory node if there are no banks
Avoid clearing the reg property in the memory DT node if no memory banks have been specified for a board (CONFIG_NR_DRAM_BANKS == 0). This allows boards to let U-Boot skip the DT memory tinkering in case other firmware has already setup the node properly before. This should be safe as all callers of fdt_fixup_memory_banks that use a computed <banks> value put at least 1 in there. Add some documentation comments to the header file. Signed-off-by: Andre Przywara <osp@andrep.de> Acked-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'common/fdt_support.c')
-rw-r--r--common/fdt_support.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/common/fdt_support.c b/common/fdt_support.c
index 10648b5a4a..f86365e8f0 100644
--- a/common/fdt_support.c
+++ b/common/fdt_support.c
@@ -454,6 +454,9 @@ int fdt_fixup_memory_banks(void *blob, u64 start[], u64 size[], int banks)
return err;
}
+ if (!banks)
+ return 0;
+
len = fdt_pack_reg(blob, tmp, start, size, banks);
err = fdt_setprop(blob, nodeoffset, "reg", tmp, len);