[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