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

Michal Simek michal.simek at xilinx.com
Tue Sep 15 15:58:43 CEST 2020



On 12. 09. 20 12:42, Marek Vasut wrote:
> 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);
> 

We are not using multiple memory node. We use multiple tuples inside one
memory node that's why it didn't come up. Good catch.

Reviewed-by: Michal Simek <michal.simek at xilinx.com>

Tom: Can you please take it to your tree?

Thanks,
Michal


More information about the U-Boot mailing list