[PATCH] lib: fdt: Fix fdtdec_setup_mem..() conversion to livetree API

Marek Vasut marek.vasut at gmail.com
Sat Sep 12 12:42:52 CEST 2020


Repair incorrectly negated condition in the original patch which broke
DT memory node parsing on everything which has more than one DT memory
node, e.g. R-Car3.

In case multiple valid memory nodes are present in the DT, the original
patch would complete parsing cycle for the first memory node, then move
on to the next one, identify it as a valid, and end the parsing. The fix
is to invert the condition, to make the code behave as it did before the
livetree conversion, so it would continue parsing the subsequent memory
nodes as well.

Fixes: c2f0950c33 ("lib: fdt: Convert fdtdes_setup_mem..() to livetree API")
Signed-off-by: Marek Vasut <marek.vasut+renesas at gmail.com>
Cc: Michal Simek <michal.simek at xilinx.com>
Cc: Simon Glass <sjg at chromium.org>
Cc: Tom Rini <trini at konsulko.com>
---
 lib/fdtdec.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lib/fdtdec.c b/lib/fdtdec.c
index d3b22ec323..5f41f58a63 100644
--- a/lib/fdtdec.c
+++ b/lib/fdtdec.c
@@ -1101,7 +1101,7 @@ int fdtdec_setup_memory_banksize(void)
 		if (ret < 0) {
 			reg = 0;
 			mem = get_next_memory_node(mem);
-			if (ofnode_valid(mem))
+			if (!ofnode_valid(mem))
 				break;
 
 			ret = ofnode_read_resource(mem, reg++, &res);
@@ -1146,7 +1146,7 @@ int fdtdec_setup_mem_size_base_lowest(void)
 		if (ret < 0) {
 			reg = 0;
 			mem = get_next_memory_node(mem);
-			if (ofnode_valid(mem))
+			if (!ofnode_valid(mem))
 				break;
 
 			ret = ofnode_read_resource(mem, reg++, &res);
-- 
2.28.0



More information about the U-Boot mailing list