[{"id":3679207,"web_url":"http://patchwork.ozlabs.org/comment/3679207/","msgid":"<CAFLszTimLSp8BFunaTzZszUhMXRtTE5vP=TpR3r2sCMBjQjtyA@mail.gmail.com>","list_archive_url":null,"date":"2026-04-20T04:06:40","subject":"Re: [PATCH v3 2/7] mach-snapdragon: Add FIT multi-DTB selection\n support","submitter":{"id":6170,"url":"http://patchwork.ozlabs.org/api/people/6170/","name":"Simon Glass","email":"sjg@chromium.org"},"content":"Hi Aswin,\n\nOn 2026-04-17T12:09:44, Aswin Murugan <aswin.murugan@oss.qualcomm.com> wrote:\n> mach-snapdragon: Add FIT multi-DTB selection support\n>\n> Implement multi DTB selection from FIT images based on hardware\n> detection via SMEM.\n>\n> The implementation provides:\n>\n> 1. Hardware Detection: Reads SoC parameters from SMEM including chip ID,\n>    version, platform ID, OEM variant, DDR size, and storage type from IMEM.\n>\n> 2. Metadata DTB Processing: Parses a metadata DTB (first image in FIT)\n>    to build a \"bucket list\" of hardware-specific node names that match\n>    the detected hardware parameters.\n>\n> 3. FIT Configuration Matching: Uses standard FIT mechanisms to find the\n>    configuration with the most matching tokens in its compatible string\n>    compared to the hardware-derived bucket list.\n>\n> 4. DTB Loading and Overlays: Loads the base DTB and applies any DTBOs\n>    specified in the selected configuration using standard FIT overlay\n> [...]\n>\n> arch/arm/mach-snapdragon/Kconfig             |    8 +\n>  arch/arm/mach-snapdragon/Makefile            |    1 +\n>  arch/arm/mach-snapdragon/board.c             |    7 +\n>  arch/arm/mach-snapdragon/qcom_fit_multidtb.c | 1103 ++++++++++++++++++++++++++\n>  arch/arm/mach-snapdragon/qcom_fit_multidtb.h |  189 +++++\n>  5 files changed, 1308 insertions(+)\n\n> diff --git a/arch/arm/mach-snapdragon/board.c b/arch/arm/mach-snapdragon/board.c\n> @@ -585,6 +586,12 @@ int board_late_init(void)\n> +     /* Try FIT multi-DTB selection if enabled */\n> +     if (IS_ENABLED(CONFIG_QCOM_FIT_MULTIDTB)) {\n> +             if (!qcom_fit_multidtb_setup())\n> +                     log_debug(\"FIT multi-DTB selection not available or failed\\n\");\n> +     }\n\nThe logic seems inverted, since qcom_fit_multidtb_setup() returns 0 on success.\n\n> diff --git a/arch/arm/mach-snapdragon/qcom_fit_multidtb.c b/arch/arm/mach-snapdragon/qcom_fit_multidtb.c\n> @@ -0,0 +1,1103 @@\n> +#define TCSR_SOC_HW_VERSION        0x01fc8000\n\nThis address is hardcoded - does this mean the same TCSR base is used\non all SoCs?\n\n> diff --git a/arch/arm/mach-snapdragon/qcom_fit_multidtb.c b/arch/arm/mach-snapdragon/qcom_fit_multidtb.c\n> @@ -0,0 +1,1103 @@\n> +     *ddr_type = 0;\n> +     if (total_ddr_size <= DDR_128MB)\n> +             *ddr_type = DDRTYPE_128MB;\n> +     else if (total_ddr_size <= DDR_256MB)\n> +             *ddr_type = DDRTYPE_256MB;\n> +     else if (total_ddr_size <= DDR_512MB)\n> +             *ddr_type = DDRTYPE_512MB;\n> +     else if (total_ddr_size <= DDR_1024MB)\n> +             *ddr_type = DDRTYPE_1024MB;\n> +     else if (total_ddr_size <= DDR_2048MB)\n> +             *ddr_type = DDRTYPE_2048MB;\n> +     else if (total_ddr_size <= DDR_3072MB)\n> +             *ddr_type = DDRTYPE_3072MB;\n> +     else if (total_ddr_size <= DDR_4096MB)\n> +             *ddr_type = DDRTYPE_4096MB;\n\nIf total_ddr_size > 4 GB, ddr_type remains 0. Is that intentional, or\nshould there be a final else clause for larger memory configurations?\n\n> diff --git a/arch/arm/mach-snapdragon/qcom_fit_multidtb.c b/arch/arm/mach-snapdragon/qcom_fit_multidtb.c\n> @@ -0,0 +1,1103 @@\n> +     printf(\"DTB: %s\\n\", fdt_name);\n\nMaybe use log_info() here for consistency with the rest of the file?\n\nReviewed-by: Simon Glass <sjg@chromium.org>\n\nRegards,\nSimon","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 (1024-bit key;\n unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256\n header.s=google header.b=EEKkT9aj;\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=chromium.org","phobos.denx.de;\n spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de","phobos.denx.de;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=chromium.org header.i=@chromium.org\n header.b=\"EEKkT9aj\";\n\tdkim-atps=neutral","phobos.denx.de;\n dmarc=pass (p=none dis=none) header.from=chromium.org","phobos.denx.de;\n spf=pass smtp.mailfrom=sjg@chromium.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 4fzX4V49Dgz1yCv\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 20 Apr 2026 14:07:06 +1000 (AEST)","from h2850616.stratoserver.net (localhost [IPv6:::1])\n\tby phobos.denx.de (Postfix) with ESMTP id C4E6283FF5;\n\tMon, 20 Apr 2026 06:07:00 +0200 (CEST)","by phobos.denx.de (Postfix, from userid 109)\n id 7862980087; Mon, 20 Apr 2026 06:07:00 +0200 (CEST)","from mail-ej1-x62b.google.com (mail-ej1-x62b.google.com\n [IPv6:2a00:1450:4864:20::62b])\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 C305C83FF5\n for <u-boot@lists.denx.de>; Mon, 20 Apr 2026 06:06:57 +0200 (CEST)","by mail-ej1-x62b.google.com with SMTP id\n a640c23a62f3a-b9c745e18a0so438306866b.1\n for <u-boot@lists.denx.de>; Sun, 19 Apr 2026 21:06: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,DKIMWL_WL_HIGH,\n DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,\n RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS autolearn=ham\n autolearn_force=no version=3.4.2","ARC-Seal":"i=1; a=rsa-sha256; t=1776658017; cv=none;\n d=google.com; s=arc-20240605;\n b=cIP/DJ8BgdNmT3DZl4xQxnGapcwPTWsU/xp9SKYJVh1zi1LtrPD52vZ4Iq0eg/kwlo\n rUucdOsBWsqbXXrvIUwnU0KCmakYoVPmrw+SWx3eos+ZszRsD9YAZP4f2Iu6LWYPgZ4f\n 9bBBbw2jVPlrwu5Idm0FBXhpbi1RkUH7880mckznynu7lRjHRo0rCG8qFZN7FOQ0L1Er\n bHVCXBGVCv3mG5gq/4pXHQtxw7EER/xbeEGGWkArT6rAX64yiyFmZAGWgjPE4Hyqg3cf\n +FB7/NAJG83wRATJT/gVE2rAn4iJxdzm/N4EkppxKyNZNoWVSBHQz64H3YEQDRaF853W\n x41g==","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=jutW5CJA7Au8f5SRE9lGXcSXQZPeTahFwQVeKmGsSFw=;\n fh=P+mPADOC4JY7F1QcPIf2jkotJUUo5seZt1UiNM0KlC0=;\n b=jB8GmfbOdTUAKJ/Vvkrq/LbWBwPv5PTjiTGj21wz7ugbgb1Q7I46lYeil54nMLPtVs\n peqSrwTvkZUpIlsbhwmP8u7OH2qke+3xB6aVGf2aarhLJCP9mYVH0IQdBJQX68hinP5u\n kiGcwjey4kanCq1DWjgGJ6/pDB4x/FjmXmDlKSltBjV6ZxCUwHMhMP0qpBZzfjXaEeVL\n ZN5SGtodly3dnpe0dE4c/vzAwiSDShGvChR2Tkc2vPcRE8SSAcASsTxoZ+HASz01xh6R\n 6DjQZzWSw5FLNiewiGAWCULhouRrAUT26tWWbxc61/JDssiezPDWBJKTG0gRReyEbvvm\n ghPw==; 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=chromium.org; s=google; t=1776658017; x=1777262817; 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=jutW5CJA7Au8f5SRE9lGXcSXQZPeTahFwQVeKmGsSFw=;\n b=EEKkT9ajHVOqv9716bQND4bDPtrLfAJz0t93Oa/HCfcOoPbMNOu/NitqEnVFzPmATd\n ALt9QRyi0nCdUktZu2yzLwK5X06KE8rArVExErgJ+FLJfeDSe2zJlZp+nYghjL0WMhNk\n un5+mMvryQSm4TU346APAc0uXHENJPZDF8bak=","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1776658017; x=1777262817;\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=jutW5CJA7Au8f5SRE9lGXcSXQZPeTahFwQVeKmGsSFw=;\n b=me9OH3l1lNV4Cz7d74Q/TZiIjsaXzeFbjBkLi/3G4Gqg3iLahT1VpITLSu+9LbqZa2\n kII32evaEjSfnauYMLTNTh1ni0TxW3D9q6/mD10VSWFA105CxE6TFk52kPoDDsv3Q0Zi\n r0P7SMxvMKrbcN94WdYDVIfx4gWwLbhTXpdDzeknQyisToW7t1SBBrTumH6vLOwDlEsZ\n scMgpZ4VJTTv3llRzUPjh/zYIN++TfOHuU5U31J8osSwWKrXIy496/JtwQ4cIRpDff0R\n ahSS2LSszQUYTz9hrmE19dsOOCo8SQdkLPgxvNLZo5ITAq3iKXcGrbjxL39/ZsH4oBvI\n w8eg==","X-Forwarded-Encrypted":"i=1;\n AFNElJ8IFeSLHwwPEUtUmModUh4rI+bl0Z5pVSzxYKb1pGfs+vn5x2iXcj1GI23AaSpnYD7WarAtAYQ=@lists.denx.de","X-Gm-Message-State":"AOJu0YyBox+m9iIsoOfApnwseJWajWd8b9iK8+Ca0y//+Bx3uFij3mzo\n DsjtNlY5ZtEyVTw+mmfQurJrOS4AKm79tutlt8U8xIY0BBCcwjA8YEEmkXISmjHWvvaqJnt++wH\n p/86Dxecpcgrvr0EjBXWswQn7CuzyFd4c/WDSR+ZP","X-Gm-Gg":"AeBDieuAtIgQZXGaPZzVDMOuLRZEHsQHrpS42C9nHAkoG/5Y5CeKmJG9y4uRBnAXWAE\n Yc6LVHDE3DxhCQyIZj9oYCn06o1IVSghbY8fVOvpOfbGlF18SK1pocKVeYxBI17e/JI/kc1WDxK\n 1MT73n/1xTnBWwir+Lv7MKpOg35urzKWoFCqGHM8rPncUYFDRPfzOVttELd7lC2cJxtjVqMYzJP\n HWiXejQFeGZXMf7gZUokurbPwfv13sAGTkBAk9cJfGILNo516qiEXHiZ8mtA6U0mNi4skU+3AOx\n JKCmErQKgHEekZS4cTG0","X-Received":"by 2002:a17:906:7946:b0:ba3:bc3e:d5f3 with SMTP id\n a640c23a62f3a-ba420066392mr433784666b.5.1776658017198; Sun, 19 Apr 2026\n 21:06:57 -0700 (PDT)","MIME-Version":"1.0","References":"<20260417120951.3454249-1-aswin.murugan@oss.qualcomm.com>\n <20260417120951.3454249-3-aswin.murugan@oss.qualcomm.com>","In-Reply-To":"<20260417120951.3454249-3-aswin.murugan@oss.qualcomm.com>","From":"Simon Glass <sjg@chromium.org>","Date":"Mon, 20 Apr 2026 16:06:40 +1200","X-Gm-Features":"AQROBzC_09IVQTj7R1DMY3aAHDhvIat973gv1LssVGTqsC5yui73Ly14YPe3Cj4","Message-ID":"\n <CAFLszTimLSp8BFunaTzZszUhMXRtTE5vP=TpR3r2sCMBjQjtyA@mail.gmail.com>","Subject":"Re: [PATCH v3 2/7] mach-snapdragon: Add FIT multi-DTB selection\n support","To":"aswin.murugan@oss.qualcomm.com","Cc":"trini@konsulko.com, casey.connolly@linaro.org, neil.armstrong@linaro.org,\n sumit.garg@kernel.org, sughosh.ganu@arm.com, ilias.apalodimas@linaro.org,\n gchan9527@gmail.com, mchitale@ventanamicro.com, maximmosk4@gmail.com,\n jonas@kwiboo.se, marek.vasut@mailbox.org, quentin.schulz@cherry.de,\n peng.fan@nxp.com, sajattack@postmarketos.org,\n balaji.selvanathan@oss.qualcomm.com, wolfgang.wallner@at.abb.com,\n e@freeshell.de, yangshiji66@outlook.com, jan.kiszka@siemens.com,\n funderscore@postmarketos.org, hs@nabladev.com, kory.maincent@bootlin.com,\n jj251510319013@gmail.com, carlos.lopezr4096@gmail.com, u-boot-qcom@groups.io,\n u-boot@lists.denx.de","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"}}]