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

Biju Das biju.das.jz at bp.renesas.com
Sat Sep 12 17:50:44 CEST 2020


Hi Marek,

Thanks for the patch.

> -----Original Message-----
> From: U-Boot <u-boot-bounces at lists.denx.de> On Behalf Of Marek Vasut
> Sent: 12 September 2020 11:43
> To: u-boot at lists.denx.de
> Cc: Marek Vasut <marek.vasut+renesas at gmail.com>; Michal Simek
> <michal.simek at xilinx.com>; Simon Glass <sjg at chromium.org>; Tom Rini
> <trini at konsulko.com>
> Subject: [PATCH] lib: fdt: Fix fdtdec_setup_mem..() conversion to livetree
> API
>
> 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>

Tested this patch on following RZ/G2 Boards and it reports correct DRAM size with 2020.10 uboot master branch.

1) RZ/G2H (a.k.a r8a774e1)
2) RZ/G2M (a.k.a r8a774a1)
3) RZ/G2N (a.k.a r8a774b1)

Tested-by: Biju Das <biju.das.jz at bp.renesas.com>

Cheers,
Biju

> ---
>  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



Renesas Electronics Europe GmbH, Geschaeftsfuehrer/President: Carsten Jauch, Sitz der Gesellschaft/Registered office: Duesseldorf, Arcadiastrasse 10, 40472 Duesseldorf, Germany, Handelsregister/Commercial Register: Duesseldorf, HRB 3708 USt-IDNr./Tax identification no.: DE 119353406 WEEE-Reg.-Nr./WEEE reg. no.: DE 14978647


More information about the U-Boot mailing list