[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