[{"id":3669572,"web_url":"http://patchwork.ozlabs.org/comment/3669572/","msgid":"<CAC_iWj+BtaUn-8zo6jARgOcM57i+octphEg8ADDM8bBGTQq7KA@mail.gmail.com>","list_archive_url":null,"date":"2026-03-26T09:35:59","subject":"Re: [RFC][PATCH 1/3] fdtdec: Deduplicate iterator function","submitter":{"id":74147,"url":"http://patchwork.ozlabs.org/api/people/74147/","name":"Ilias Apalodimas","email":"ilias.apalodimas@linaro.org"},"content":"On Wed, 25 Mar 2026 at 05:17, Marek Vasut\n<marek.vasut+renesas@mailbox.org> wrote:\n>\n> Both fdtdec_setup_memory_banksize() and fdtdec_setup_mem_size_base_lowest()\n> implement the exact same iterator over all memory banks, the only difference\n> is the body that is executed for each bank. Deduplicate the functionality\n> into iterator function fdtdec_setup_mem_for_each_bank(), which takes a\n> function pointer to a function which implements the body as a parameter.\n> No functional change.\n>\n> Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>\n\nReviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>\n\n> ---\n> Cc: Casey Connolly <casey.connolly@linaro.org>\n> Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>\n> Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>\n> Cc: Raymond Mao <raymondmaoca@gmail.com>\n> Cc: Simon Glass <sjg@chromium.org>\n> Cc: Tom Rini <trini@konsulko.com>\n> Cc: u-boot@lists.denx.de\n> ---\n>  lib/fdtdec.c | 77 ++++++++++++++++++++--------------------------------\n>  1 file changed, 30 insertions(+), 47 deletions(-)\n>\n> diff --git a/lib/fdtdec.c b/lib/fdtdec.c\n> index c38738b48c7..d820f75b031 100644\n> --- a/lib/fdtdec.c\n> +++ b/lib/fdtdec.c\n> @@ -1092,7 +1092,7 @@ ofnode get_next_memory_node(ofnode mem)\n>         return mem;\n>  }\n>\n> -int fdtdec_setup_memory_banksize(void)\n> +static int fdtdec_setup_mem_for_each_bank(void (*bankfn)(struct resource *res, int bank))\n>  {\n>         int bank, ret, reg = 0;\n>         struct resource res;\n> @@ -1120,63 +1120,46 @@ int fdtdec_setup_memory_banksize(void)\n>                 if (ret != 0)\n>                         return -EINVAL;\n>\n> -               gd->bd->bi_dram[bank].start = (phys_addr_t)res.start;\n> -               gd->bd->bi_dram[bank].size =\n> -                       (phys_size_t)(res.end - res.start + 1);\n> -\n> -               debug(\"%s: DRAM Bank #%d: start = 0x%llx, size = 0x%llx\\n\",\n> -                     __func__, bank,\n> -                     (unsigned long long)gd->bd->bi_dram[bank].start,\n> -                     (unsigned long long)gd->bd->bi_dram[bank].size);\n> +               bankfn(&res, bank);\n>         }\n>\n>         return 0;\n>  }\n>\n> -int fdtdec_setup_mem_size_base_lowest(void)\n> +static void fdtdec_setup_memory_banksize_bankfn(struct resource *res, int bank)\n>  {\n> -       int bank, ret, reg = 0;\n> -       struct resource res;\n> -       unsigned long base;\n> -       phys_size_t size;\n> -       ofnode mem = ofnode_null();\n> +       gd->bd->bi_dram[bank].start = (phys_addr_t)res->start;\n> +       gd->bd->bi_dram[bank].size = (phys_size_t)(res->end - res->start + 1);\n>\n> -       gd->ram_base = (unsigned long)~0;\n> -\n> -       mem = get_next_memory_node(mem);\n> -       if (!ofnode_valid(mem)) {\n> -               debug(\"%s: Missing /memory node\\n\", __func__);\n> -               return -EINVAL;\n> -       }\n> -\n> -       for (bank = 0; bank < CONFIG_NR_DRAM_BANKS; bank++) {\n> -               ret = ofnode_read_resource(mem, reg++, &res);\n> -               if (ret < 0) {\n> -                       reg = 0;\n> -                       mem = get_next_memory_node(mem);\n> -                       if (!ofnode_valid(mem))\n> -                               break;\n> -\n> -                       ret = ofnode_read_resource(mem, reg++, &res);\n> -                       if (ret < 0)\n> -                               break;\n> -               }\n> -\n> -               if (ret != 0)\n> -                       return -EINVAL;\n> +       debug(\"%s: DRAM Bank #%d: start = 0x%llx, size = 0x%llx\\n\",\n> +             __func__, bank,\n> +             (unsigned long long)gd->bd->bi_dram[bank].start,\n> +             (unsigned long long)gd->bd->bi_dram[bank].size);\n> +}\n>\n> -               base = (unsigned long)res.start;\n> -               size = (phys_size_t)(res.end - res.start + 1);\n> +int fdtdec_setup_memory_banksize(void)\n> +{\n> +       return fdtdec_setup_mem_for_each_bank(fdtdec_setup_memory_banksize_bankfn);\n> +}\n>\n> -               if (gd->ram_base > base && size) {\n> -                       gd->ram_base = base;\n> -                       gd->ram_size = size;\n> -                       debug(\"%s: Initial DRAM base %lx size %lx\\n\",\n> -                             __func__, base, (unsigned long)size);\n> -               }\n> +static void fdtdec_setup_mem_size_base_lowest_bankfn(struct resource *res, int bank)\n> +{\n> +       unsigned long base = (unsigned long)res->start;\n> +       phys_size_t size = (phys_size_t)(res->end - res->start + 1);\n> +\n> +       if (gd->ram_base > base && size) {\n> +               gd->ram_base = base;\n> +               gd->ram_size = size;\n> +               debug(\"%s: Initial DRAM base %lx size %lx\\n\",\n> +                     __func__, base, (unsigned long)size);\n>         }\n> +}\n>\n> -       return 0;\n> +int fdtdec_setup_mem_size_base_lowest(void)\n> +{\n> +       gd->ram_base = (unsigned long)~0;\n> +\n> +       return fdtdec_setup_mem_for_each_bank(fdtdec_setup_mem_size_base_lowest_bankfn);\n>  }\n>\n>  static int uncompress_blob(const void *src, ulong sz_src, void **dstp)\n> --\n> 2.53.0\n>","headers":{"Return-Path":"<u-boot-bounces@lists.denx.de>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256\n header.s=google header.b=Pxeb43/R;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de\n (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de;\n envelope-from=u-boot-bounces@lists.denx.de; receiver=patchwork.ozlabs.org)","phobos.denx.de;\n dmarc=pass (p=none dis=none) header.from=linaro.org","phobos.denx.de;\n spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de","phobos.denx.de;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=linaro.org header.i=@linaro.org header.b=\"Pxeb43/R\";\n\tdkim-atps=neutral","phobos.denx.de;\n dmarc=pass (p=none dis=none) header.from=linaro.org","phobos.denx.de;\n spf=pass smtp.mailfrom=ilias.apalodimas@linaro.org"],"Received":["from phobos.denx.de (phobos.denx.de\n [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fhJZN3lbFz1y1x\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 26 Mar 2026 20:36:44 +1100 (AEDT)","from h2850616.stratoserver.net (localhost [IPv6:::1])\n\tby phobos.denx.de (Postfix) with ESMTP id 6BCBF83FE1;\n\tThu, 26 Mar 2026 10:36:41 +0100 (CET)","by phobos.denx.de (Postfix, from userid 109)\n id 6B33283FED; Thu, 26 Mar 2026 10:36:40 +0100 (CET)","from mail-yx1-xb133.google.com (mail-yx1-xb133.google.com\n [IPv6:2607:f8b0:4864:20::b133])\n (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits))\n (No client certificate requested)\n by phobos.denx.de (Postfix) with ESMTPS id 106FA83FA7\n for <u-boot@lists.denx.de>; Thu, 26 Mar 2026 10:36:38 +0100 (CET)","by mail-yx1-xb133.google.com with SMTP id\n 956f58d0204a3-64937edbc9eso732172d50.2\n for <u-boot@lists.denx.de>; Thu, 26 Mar 2026 02:36:38 -0700 (PDT)"],"X-Spam-Checker-Version":"SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de","X-Spam-Level":"","X-Spam-Status":"No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED,\n DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED,\n SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.2","ARC-Seal":"i=1; a=rsa-sha256; t=1774517797; cv=none;\n d=google.com; s=arc-20240605;\n b=FUp+lZZTn0Yl0JdHAGdUnSde6+W9wdA26LG6HCjsBzhgRGBHVhKckPgMcAgwY99Ihm\n KO01LjdbsUdRX1V7M01Lrbvd5llAlqhZYzk03dkykciotnhPoCUVQhJN7PIpG9dsoEkD\n tOY8l3HnQG8Gj3V6zQBXFCZ4nu/L2yJrWGuaf26wLMKnwGEIZzl/o+nTjfpT5TMLUDpt\n Iqrb7+cBs3BT1bvs/cDq6TS7IUjs38aHyjtvi0vJcVRsMTQqgaShkU40/hHheQh2wcm7\n 12nNFZyu5HWl3zgCVqh0ZrmWcRSwkjVkFMAjypVIIUlejB2oAELWhSD+Vlr+SQXgAm5S\n 74Kg==","ARC-Message-Signature":"i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;\n s=arc-20240605;\n h=cc:to:subject:message-id:date:from:in-reply-to:references\n :mime-version:dkim-signature;\n bh=xsdcjAwBdwguZMJfN2XY0eQB1VgoNMIcHUXxsmgEzv4=;\n fh=nEkXRhqCjx3ONPRTdOk67xC+ThsQtT0sulRkQM3zgmo=;\n b=gJiSmSLgmenwWqXFXMQ5w1FO6OnhDOnFfUTDddMyCf5KlaM4hj80X+AORvE2xcaSf2\n hqd+7oJRFCieWlxLnLsdwomLjuCHxccd2CFdZjzitCwvBs834u5QrfFDStEjG6TBE98V\n avIds4sFDSQSzkZdFqtqLvs0y2/rUGVa5wzCggJ3VBRj9nkNE6OdeCnz16ERRqeomiwS\n guuCdnBDvn8EJ8MZdMbs75QD9G68LxotPczkcGml0BlerKBr3cPntnpwq/z2aqtnFA9y\n tJ7lifMp0hU/V+/y3V43diaj575OfZPGo3hEGLknUQ9vFRXI4+e69oqgwpgdK/2AvCDD\n 4ZRg==; darn=lists.denx.de","ARC-Authentication-Results":"i=1; mx.google.com; arc=none","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=linaro.org; s=google; t=1774517797; x=1775122597; darn=lists.denx.de;\n h=cc:to:subject:message-id:date:from:in-reply-to:references\n :mime-version:from:to:cc:subject:date:message-id:reply-to;\n bh=xsdcjAwBdwguZMJfN2XY0eQB1VgoNMIcHUXxsmgEzv4=;\n b=Pxeb43/RdgKm0T/hE6w7i+Skoux0wgzZy4CbTfQ0+1mRegrGEOxTp9ILeTMOPNAYoR\n +hrsoswNS9RIkfUkLnsu1WrKKEXKALhGApdemtF4MB2NOAnDPhIgife99IAiikvCqAAq\n xnsJSgCiL8e/20Hp9Y9ZLE69xmdS4LhnX8p1Ms571wLxqEU3USz3a66J3d/I+9P54j1X\n WF7tAH5lqwZHANuBsw30Tfk0zyWluaF/U+t4tMgQHEDJSP733lTveujbWuFg19Y0nGun\n p/Jlk8yztpypmzBxMqKfx1nWiv3fCsVUk8TaLT77BdEYiRilmRNPOFixYZTSZZS567uI\n KxfA==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1774517797; x=1775122597;\n h=cc:to:subject:message-id:date:from:in-reply-to:references\n :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date\n :message-id:reply-to;\n bh=xsdcjAwBdwguZMJfN2XY0eQB1VgoNMIcHUXxsmgEzv4=;\n b=mAsHIqLeHph78SB23Z2mtshYKY9ilu6AjBtvzxI5mXR8ONSfLcxxzk6RjR5UV6COpA\n uHSqC1+kway805VPbWyHMEXewgcGTbw9eHYI0QnGD9Pdr+nKepmW0sZom8K+6wI7Xrbl\n DBuJ5v9C36TyF1msUisArnMoQSj3cPvMJizE+DmHv5XegvfJQKg7jOUCtNSodJyhDygn\n 0bEgBARZfNxFbsjw294KZpzo8dYR658UzJcNJIM1msThO1CP6CmNR8gR5esuEKobVpJG\n fGC2HSYAct9veAyxkgwvUiJJcO4Ag4I3darKCv78jihvn6UHpNRe+TJOXjaFDAbgae2Q\n FeVw==","X-Gm-Message-State":"AOJu0YzHHf55DNOVcVCLZhfSM7v2EFgP3MM5GaP615qu3th4mkwxciUi\n xbPtzdpOBzk6O4ZvXo/R7Ca5MmXJtjP3bYhXChgFOlumcMmioiC8EU3uUUjam0zGpjwVOP866TM\n RQ7ZwjtkdzD34fmIZlEZDz9BR8Eoj5DKHKZL/wFEHpg==","X-Gm-Gg":"ATEYQzzkkk6KpTZmw5BdQiumuMk7x4CaDdRCUQf3zn+t3v1W6xZy44msm8DLV5EMY1S\n kFyAYobhe/A/W/AyRriUZ9A0IKixGoN+MZ3qdiX7e4avirU+W/vb4eP23BG0EAEQHIlLxJR5pUO\n H276AH979GzbHJ81pdc/28ZpTN0jkJFWZ9ORnuL0DuJRLRk1XLMrhRhCqMDnHQDjYEYo3mJ2htw\n jgowq3yNOAh+etviRcJGLtOfEtPdcBxWcfaF5ui4yvv0N1Hzh6PpAEJnnUk97+x98wq7/Tmj1a4\n /yHtjYcp0SLjEB7X54yVFwTSWxjjx0zWuKcIIR9jQx8rI4/DdfbiuXZc+lKqDb3Oa1SNrS8DZ1c\n nVRnG/RWosGnNnQJUZCOEo/JFzWqkwvQz6Yt3b+7DOIRto4Oe7rj3Koco90wwQoDZe5B5sc0ls7\n Gexpp7+qc1ypuFJ2U1J/vE6JCjDL7lNnnLNSO6M3Y8j/hDayWC8MT7bogXPywo1DUJ0nr0gOWZL\n G2c8wd7eXSHE83UkoO1Z/p2G/TXCRySozFxrGjfKJmGSOxGLl1T9NSLqg/jS9bjA/Ki1co1+xQl\n +1Cl3LK27hpcW+FiLP1YlT3L39QixwCIGc1X0LNtpLNp","X-Received":"by 2002:a53:ac99:0:b0:64e:f106:60e4 with SMTP id\n 956f58d0204a3-64ef1066a8emr4192138d50.53.1774517796740; Thu, 26 Mar 2026\n 02:36:36 -0700 (PDT)","MIME-Version":"1.0","References":"<20260325031743.371728-1-marek.vasut+renesas@mailbox.org>","In-Reply-To":"<20260325031743.371728-1-marek.vasut+renesas@mailbox.org>","From":"Ilias Apalodimas <ilias.apalodimas@linaro.org>","Date":"Thu, 26 Mar 2026 11:35:59 +0200","X-Gm-Features":"AaiRm50JWAvwaE7c9lTac9EsncRQHPCxTIJPkl2vaJrKg7G_1FdgGP4vohIEb7M","Message-ID":"\n <CAC_iWj+BtaUn-8zo6jARgOcM57i+octphEg8ADDM8bBGTQq7KA@mail.gmail.com>","Subject":"Re: [RFC][PATCH 1/3] fdtdec: Deduplicate iterator function","To":"Marek Vasut <marek.vasut+renesas@mailbox.org>","Cc":"u-boot@lists.denx.de, Casey Connolly <casey.connolly@linaro.org>,\n Nobuhiro Iwamatsu <iwamatsu@nigauri.org>,\n Raymond Mao <raymondmaoca@gmail.com>,\n Simon Glass <sjg@chromium.org>, Tom Rini <trini@konsulko.com>","Content-Type":"text/plain; charset=\"UTF-8\"","X-BeenThere":"u-boot@lists.denx.de","X-Mailman-Version":"2.1.39","Precedence":"list","List-Id":"U-Boot discussion <u-boot.lists.denx.de>","List-Unsubscribe":"<https://lists.denx.de/options/u-boot>,\n <mailto:u-boot-request@lists.denx.de?subject=unsubscribe>","List-Archive":"<https://lists.denx.de/pipermail/u-boot/>","List-Post":"<mailto:u-boot@lists.denx.de>","List-Help":"<mailto:u-boot-request@lists.denx.de?subject=help>","List-Subscribe":"<https://lists.denx.de/listinfo/u-boot>,\n <mailto:u-boot-request@lists.denx.de?subject=subscribe>","Errors-To":"u-boot-bounces@lists.denx.de","Sender":"\"U-Boot\" <u-boot-bounces@lists.denx.de>","X-Virus-Scanned":"clamav-milter 0.103.8 at phobos.denx.de","X-Virus-Status":"Clean"}},{"id":3669778,"web_url":"http://patchwork.ozlabs.org/comment/3669778/","msgid":"<61e458bd-3b1a-4b7b-bb03-797c7ac8dc27@linaro.org>","list_archive_url":null,"date":"2026-03-26T15:08:56","subject":"Re: [RFC][PATCH 1/3] fdtdec: Deduplicate iterator function","submitter":{"id":90679,"url":"http://patchwork.ozlabs.org/api/people/90679/","name":"Casey Connolly","email":"casey.connolly@linaro.org"},"content":"On 25/03/2026 04:17, Marek Vasut wrote:\n> Both fdtdec_setup_memory_banksize() and fdtdec_setup_mem_size_base_lowest()\n> implement the exact same iterator over all memory banks, the only difference\n> is the body that is executed for each bank. Deduplicate the functionality\n> into iterator function fdtdec_setup_mem_for_each_bank(), which takes a\n> function pointer to a function which implements the body as a parameter.\n> No functional change.\n\nThis is a nice optimisation! It will be good to de-dup some thing in\nmach-snapdragon too with this.\n\nReviewed-by: Casey Connolly <casey.connolly@linaro.org>\n\nKind regards,>\n> Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>\n> ---\n> Cc: Casey Connolly <casey.connolly@linaro.org>\n> Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>\n> Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>\n> Cc: Raymond Mao <raymondmaoca@gmail.com>\n> Cc: Simon Glass <sjg@chromium.org>\n> Cc: Tom Rini <trini@konsulko.com>\n> Cc: u-boot@lists.denx.de\n> ---\n>  lib/fdtdec.c | 77 ++++++++++++++++++++--------------------------------\n>  1 file changed, 30 insertions(+), 47 deletions(-)\n> \n> diff --git a/lib/fdtdec.c b/lib/fdtdec.c\n> index c38738b48c7..d820f75b031 100644\n> --- a/lib/fdtdec.c\n> +++ b/lib/fdtdec.c\n> @@ -1092,7 +1092,7 @@ ofnode get_next_memory_node(ofnode mem)\n>  \treturn mem;\n>  }\n>  \n> -int fdtdec_setup_memory_banksize(void)\n> +static int fdtdec_setup_mem_for_each_bank(void (*bankfn)(struct resource *res, int bank))\n>  {\n>  \tint bank, ret, reg = 0;\n>  \tstruct resource res;\n> @@ -1120,63 +1120,46 @@ int fdtdec_setup_memory_banksize(void)\n>  \t\tif (ret != 0)\n>  \t\t\treturn -EINVAL;\n>  \n> -\t\tgd->bd->bi_dram[bank].start = (phys_addr_t)res.start;\n> -\t\tgd->bd->bi_dram[bank].size =\n> -\t\t\t(phys_size_t)(res.end - res.start + 1);\n> -\n> -\t\tdebug(\"%s: DRAM Bank #%d: start = 0x%llx, size = 0x%llx\\n\",\n> -\t\t      __func__, bank,\n> -\t\t      (unsigned long long)gd->bd->bi_dram[bank].start,\n> -\t\t      (unsigned long long)gd->bd->bi_dram[bank].size);\n> +\t\tbankfn(&res, bank);\n>  \t}\n>  \n>  \treturn 0;\n>  }\n>  \n> -int fdtdec_setup_mem_size_base_lowest(void)\n> +static void fdtdec_setup_memory_banksize_bankfn(struct resource *res, int bank)\n>  {\n> -\tint bank, ret, reg = 0;\n> -\tstruct resource res;\n> -\tunsigned long base;\n> -\tphys_size_t size;\n> -\tofnode mem = ofnode_null();\n> +\tgd->bd->bi_dram[bank].start = (phys_addr_t)res->start;\n> +\tgd->bd->bi_dram[bank].size = (phys_size_t)(res->end - res->start + 1);\n>  \n> -\tgd->ram_base = (unsigned long)~0;\n> -\n> -\tmem = get_next_memory_node(mem);\n> -\tif (!ofnode_valid(mem)) {\n> -\t\tdebug(\"%s: Missing /memory node\\n\", __func__);\n> -\t\treturn -EINVAL;\n> -\t}\n> -\n> -\tfor (bank = 0; bank < CONFIG_NR_DRAM_BANKS; bank++) {\n> -\t\tret = ofnode_read_resource(mem, reg++, &res);\n> -\t\tif (ret < 0) {\n> -\t\t\treg = 0;\n> -\t\t\tmem = get_next_memory_node(mem);\n> -\t\t\tif (!ofnode_valid(mem))\n> -\t\t\t\tbreak;\n> -\n> -\t\t\tret = ofnode_read_resource(mem, reg++, &res);\n> -\t\t\tif (ret < 0)\n> -\t\t\t\tbreak;\n> -\t\t}\n> -\n> -\t\tif (ret != 0)\n> -\t\t\treturn -EINVAL;\n> +\tdebug(\"%s: DRAM Bank #%d: start = 0x%llx, size = 0x%llx\\n\",\n> +\t      __func__, bank,\n> +\t      (unsigned long long)gd->bd->bi_dram[bank].start,\n> +\t      (unsigned long long)gd->bd->bi_dram[bank].size);\n> +}\n>  \n> -\t\tbase = (unsigned long)res.start;\n> -\t\tsize = (phys_size_t)(res.end - res.start + 1);\n> +int fdtdec_setup_memory_banksize(void)\n> +{\n> +\treturn fdtdec_setup_mem_for_each_bank(fdtdec_setup_memory_banksize_bankfn);\n> +}\n>  \n> -\t\tif (gd->ram_base > base && size) {\n> -\t\t\tgd->ram_base = base;\n> -\t\t\tgd->ram_size = size;\n> -\t\t\tdebug(\"%s: Initial DRAM base %lx size %lx\\n\",\n> -\t\t\t      __func__, base, (unsigned long)size);\n> -\t\t}\n> +static void fdtdec_setup_mem_size_base_lowest_bankfn(struct resource *res, int bank)\n> +{\n> +\tunsigned long base = (unsigned long)res->start;\n> +\tphys_size_t size = (phys_size_t)(res->end - res->start + 1);\n> +\n> +\tif (gd->ram_base > base && size) {\n> +\t\tgd->ram_base = base;\n> +\t\tgd->ram_size = size;\n> +\t\tdebug(\"%s: Initial DRAM base %lx size %lx\\n\",\n> +\t\t      __func__, base, (unsigned long)size);\n>  \t}\n> +}\n>  \n> -\treturn 0;\n> +int fdtdec_setup_mem_size_base_lowest(void)\n> +{\n> +\tgd->ram_base = (unsigned long)~0;\n> +\n> +\treturn fdtdec_setup_mem_for_each_bank(fdtdec_setup_mem_size_base_lowest_bankfn);\n>  }\n>  \n>  static int uncompress_blob(const void *src, ulong sz_src, void **dstp)","headers":{"Return-Path":"<u-boot-bounces@lists.denx.de>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256\n header.s=google header.b=mOe6oVsl;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de\n (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de;\n envelope-from=u-boot-bounces@lists.denx.de; receiver=patchwork.ozlabs.org)","phobos.denx.de;\n dmarc=pass (p=none dis=none) header.from=linaro.org","phobos.denx.de;\n spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de","phobos.denx.de;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=linaro.org header.i=@linaro.org header.b=\"mOe6oVsl\";\n\tdkim-atps=neutral","phobos.denx.de;\n dmarc=pass (p=none dis=none) header.from=linaro.org","phobos.denx.de;\n spf=pass smtp.mailfrom=casey.connolly@linaro.org"],"Received":["from phobos.denx.de (phobos.denx.de\n [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fhRy501Xrz1y1x\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 27 Mar 2026 02:09:16 +1100 (AEDT)","from h2850616.stratoserver.net (localhost [IPv6:::1])\n\tby phobos.denx.de (Postfix) with ESMTP id 2BC2681E18;\n\tThu, 26 Mar 2026 16:09:08 +0100 (CET)","by phobos.denx.de (Postfix, from userid 109)\n id A8C6683CD3; Thu, 26 Mar 2026 16:09:06 +0100 (CET)","from mail-wm1-x329.google.com (mail-wm1-x329.google.com\n [IPv6:2a00:1450:4864:20::329])\n (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits))\n (No client certificate requested)\n by phobos.denx.de (Postfix) with ESMTPS id 9813580517\n for <u-boot@lists.denx.de>; Thu, 26 Mar 2026 16:08:58 +0100 (CET)","by mail-wm1-x329.google.com with SMTP id\n 5b1f17b1804b1-486fb14227cso13504465e9.3\n for <u-boot@lists.denx.de>; Thu, 26 Mar 2026 08:08:58 -0700 (PDT)","from [192.168.1.36] (p5b29eb0d.dip0.t-ipconnect.de. [91.41.235.13])\n by smtp.gmail.com with ESMTPSA id\n 5b1f17b1804b1-48722fa8dc6sm64775835e9.1.2026.03.26.08.08.56\n (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);\n Thu, 26 Mar 2026 08:08:57 -0700 (PDT)"],"X-Spam-Checker-Version":"SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de","X-Spam-Level":"","X-Spam-Status":"No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED,\n DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED,\n SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.2","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=linaro.org; s=google; t=1774537738; x=1775142538; darn=lists.denx.de;\n h=content-transfer-encoding:in-reply-to:from:references:cc:to\n :content-language:subject:user-agent:mime-version:date:message-id\n :from:to:cc:subject:date:message-id:reply-to;\n bh=9p9rJDpDSYtxi+4RtJYQwc0QbRwtDKj+gYeaGbYPetU=;\n b=mOe6oVslXsSPQzPbl+Phc2J7xlW3sL1l5gBUf5YaCJkVu6v/fm57NRfUBu5hoShGSJ\n 7XkIGuSiFpj9lTeOqJgUxjoQ8cVDD4eGYcRl9Oatj+6KSR/vSYcCMq6ennq7XfNGGmdM\n vXPJvjeBoCxQdMsVI35aPU4SxZvGuMTlQSnDjbRwrX7yRbzXjm5pB70a2aC+Kd9vOpJe\n 54cyoZsm3sNJoPDfrvGNcwFhNUUfqtt+8Y2IGPiynGZKbAISb8+uq/YFELEgrSPDoqdN\n 08amyjjaGPHvsHnkG6u74V7eE26OxjWZrRpzoxJ34DlSL2+owa9J8D6r7Ynmrc2QmGMx\n GiLw==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1774537738; x=1775142538;\n h=content-transfer-encoding:in-reply-to:from:references:cc:to\n :content-language:subject:user-agent:mime-version:date:message-id\n :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id\n :reply-to;\n bh=9p9rJDpDSYtxi+4RtJYQwc0QbRwtDKj+gYeaGbYPetU=;\n b=Kn4MsIurnT48yvmccZvlDJ5iBxOe2CuvttuJtm8V2qikV0tdbswqHydbWxNWGvyoik\n MT7q7pdW705JUjkydKflfEjlYDgnWfQj3YSs41+j0WEpa/NGbEPfo1LxXLAsPbwGJUgh\n gIXltVNwyOomzhOqfKN72kVYaP0oYb4nQ4LDx43ydu81HORvoA3GOEyh7JVdbreikJkB\n EsqEOzKUJe1TxjVHigsauwik8bhf3jTFiu2vyzNL+h0MDpJbcKnx4C6hAQqvwGqK+KIN\n kxZC6hTbD4vvksxp1TmEXkxkqejD6yR5PxjOe6KNRbomrz9lfZHlgknDvFebVLW25tLq\n nSgw==","X-Forwarded-Encrypted":"i=1;\n AJvYcCUAY1XIhGz/b1mvpc5wQ7/7Jdd670lR1jRh7R8qWIHjGYlbK69lJpOPmeJBj2egpvzByc6YZPQ=@lists.denx.de","X-Gm-Message-State":"AOJu0YxcmeYa5AZjdps+UAKtc3iGeakW5mwYq7mSMkvsNUVXYcyksx8Y\n JYBkc5erp+sliia/Uj7NAnuU2ljdJUwnXPG3ujhixTe34YcZyEtc6CbQEfFIvdGAtf4=","X-Gm-Gg":"ATEYQzz2CyNmzUZeZQc5OV0xux+T7rkhRj/P2J82bwiC0Pl7G6AG0UDT9L5DYwOXRW0\n E6x3v+KM9l6hf6kBvcsWMXfNxtjMi0Abp6qBAZedjXNESKl+w4Gcvw5jFeKBUZp1AB6HkhX127L\n NdVMuk9UyPFvmH42L5sk/ijt3jUYeRtOrXRD7lXo0RnGiI8nyi22zxfHA3xTqzwLu5zRfybcUn7\n fluxxpyYeSztcfpd3SbdgmXWZVJNVuoGndb1uOUpu1cK8wykeXSj66WQyH61ml7ZZNb3ei0PTza\n z4CVSNW9Ame1WgyFy5QZBoBTGJzLCUET9kBxkNkQJgRtduHGyMR8hbrZrmUn289vzhKVYZo5zcb\n r65DCvdvO1fYi/AebrVgey2DSZ76pEDt3stiapXD6ZRBjXRiUhCL+UAsgGkgoxOZsK3I51UrXoU\n 4aSR0NUzP49wDbFsY0F1tnzooIMGPCxJsP8Nw6KCCptIyW2+0GqwTY5kVRSqz/nKaG3NVFlpGd+\n g==","X-Received":"by 2002:a05:600c:4685:b0:486:5f71:5829 with SMTP id\n 5b1f17b1804b1-48715fc3870mr125719795e9.5.1774537737747;\n Thu, 26 Mar 2026 08:08:57 -0700 (PDT)","Message-ID":"<61e458bd-3b1a-4b7b-bb03-797c7ac8dc27@linaro.org>","Date":"Thu, 26 Mar 2026 16:08:56 +0100","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [RFC][PATCH 1/3] fdtdec: Deduplicate iterator function","Content-Language":"en-US","To":"Marek Vasut <marek.vasut+renesas@mailbox.org>, u-boot@lists.denx.de","Cc":"Ilias Apalodimas <ilias.apalodimas@linaro.org>,\n Nobuhiro Iwamatsu <iwamatsu@nigauri.org>,\n Raymond Mao <raymondmaoca@gmail.com>, Simon Glass <sjg@chromium.org>,\n Tom Rini <trini@konsulko.com>","References":"<20260325031743.371728-1-marek.vasut+renesas@mailbox.org>","From":"Casey Connolly <casey.connolly@linaro.org>","In-Reply-To":"<20260325031743.371728-1-marek.vasut+renesas@mailbox.org>","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"7bit","X-BeenThere":"u-boot@lists.denx.de","X-Mailman-Version":"2.1.39","Precedence":"list","List-Id":"U-Boot discussion <u-boot.lists.denx.de>","List-Unsubscribe":"<https://lists.denx.de/options/u-boot>,\n <mailto:u-boot-request@lists.denx.de?subject=unsubscribe>","List-Archive":"<https://lists.denx.de/pipermail/u-boot/>","List-Post":"<mailto:u-boot@lists.denx.de>","List-Help":"<mailto:u-boot-request@lists.denx.de?subject=help>","List-Subscribe":"<https://lists.denx.de/listinfo/u-boot>,\n <mailto:u-boot-request@lists.denx.de?subject=subscribe>","Errors-To":"u-boot-bounces@lists.denx.de","Sender":"\"U-Boot\" <u-boot-bounces@lists.denx.de>","X-Virus-Scanned":"clamav-milter 0.103.8 at phobos.denx.de","X-Virus-Status":"Clean"}}]