From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id BB293C44508 for ; Mon, 13 Jul 2026 13:21:44 +0000 (UTC) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 5F40984B7E; Mon, 13 Jul 2026 15:21:02 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="mfLBcrqG"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 1077F84A4A; Mon, 13 Jul 2026 08:43:47 +0200 (CEST) Received: from mail-oa1-x2b.google.com (mail-oa1-x2b.google.com [IPv6:2001:4860:4864:20::2b]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id EACE584A4B for ; Mon, 13 Jul 2026 08:43:44 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=james.hilliard1@gmail.com Received: by mail-oa1-x2b.google.com with SMTP id 586e51a60fabf-4513435cdd2so968780fac.2 for ; Sun, 12 Jul 2026 23:43:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1783925024; x=1784529824; darn=lists.denx.de; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=Byd6ZYKVfX6dp020wqqPwh/HNJ/iTlslQWUc4+3xF4o=; b=mfLBcrqG/uU8Lzreb6Bs/idsBJG+zrnv3Ku6cpXiZ+A1H5RfY/XA78HZhTWirdrFvh XG72kyOEOn81c+QsoujBlG8KsNx+2tB5F4MbMcmk65IpLltHDH/Mt8sSZhTvEzXZ1qw5 7R1Sfq11j+XOl0catfRQHLQSlEKz5zsgN1tkBEoAbtnogqk26hkAZYmUk2bfA6QLTOju owNqujjOCudVPEQ2/Zrv45KNgo4E//XkfPR1yxAAkFL7Tee1btiaf2ItsFVJnByT3yTQ qBKA83zgGrEfEG3AtcBmd/xqF2DM7mKAkIcbcDUFjHYGix4RFdt/Yh9ouD1nyZxRDVk1 Kakw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783925024; x=1784529824; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=Byd6ZYKVfX6dp020wqqPwh/HNJ/iTlslQWUc4+3xF4o=; b=FBVTwK0Ko6pug7rojfTszyjbBzIDcle9IDI25O2f15eT56lBJKx3EuaIFVes6XWLUj OeJQHAtAcu5WTAAKtx16YG0iYz5xKSB9LjYCy6Foa6rb1PVWYBJArnqqA4bPXv/uvAt6 0TYVM1RB+LYEh9JIu9TVOznqMXMRaZ2R2gg+E5Rh+IiRwdSK6LbKukDPXiaBQM/8Fi9d Zhr1tZBMv+pclKDnsV/zqpyeBwhg3ButuwDbLkoxzA2ALgEyNcWphesknWNwbcx/TFgl tlPZu2KkXeXrkjpnIj5oxGnJRF/hvf3yvcqsv5seTDOK/T0/8gOlYU9TvMDQ4vcixOVr 4TQw== X-Forwarded-Encrypted: i=1; AFNElJ8zLnMu9TT5KX4VEEhQLCZNgYw/NVeWd1vCc9tFc9UJ2y3p0VcQWDKm0az/Mmm2bXS5k1fDqzU=@lists.denx.de X-Gm-Message-State: AOJu0YyidswkfFdM/8/runAnihhyi/AwA/36F6zVH1gbMwVNv5ieAwl/ neYlMYiWvT2QAhC4hODrTXVVNjVMIJiOxtYphYXZlquTqgFLsCgexKbm X-Gm-Gg: AfdE7ckEwePIBm5FeYb8/6iwVu2kf56osIh9mXH8blLjbvJm7jy/iFjmTnYcruL7UpU Is5NcTybz/Hx0AdLffRhzBFfZwsM8l8ujtAohGSTErN2RD29HvOU28NAp3CpoIrWqLmmTXwVHTy Mw3ibhLbcG72vXxxybGUmj+MzZjlOeQQcWErd4Cv/7/timpq3fgeldnpmInK8DhUCEBv4zFOqnK dYIYfE9V3CpZa82pUGmds1BVgTmZ3vzQVnkRBfvmFUImGqmhvaqImlzxI2dSuOWC43gzUeoEjmA UQtyRjBFhC/nsPvZ1SIAfAQOjU1JTsAXettGAHaTleeWN1SdlzenSY8liJ185Yb9gOPs/6FECKM t4RCv7S8es3KZAY5JgUmCii2n1NX5ehDI4C+u/bf+kNI1CuBGgwAW84YPMYMVYf6b/3ni674QWC x+ZgFePJKag7TZ7Ev/vbKIIQBhN8943+Fgt8pwrnc0WaHSuK313T7kit8DGaV2xrWA+NqTBM1id Vh3tuR5efJp1bgpCYNli/RuOCQ8+r3rYJrErtMj0v9Q5XHyXmNKbC/1W7df+hvrlEfZk4UVpYk= X-Received: by 2002:a05:687c:3394:20b0:451:fec6:8371 with SMTP id 586e51a60fabf-451fec68c8fmr2624467fac.8.1783925023534; Sun, 12 Jul 2026 23:43:43 -0700 (PDT) Received: from [127.0.1.1] (174-29-11-8.hlrn.qwest.net. [174.29.11.8]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-451916ce98dsm12538126fac.13.2026.07.12.23.43.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Jul 2026 23:43:42 -0700 (PDT) From: James Hilliard Date: Mon, 13 Jul 2026 00:43:02 -0600 Subject: [PATCH v4 05/14] boot: image: try all DM hash providers MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20260713-submit-ce-series-v2-v4-5-ff7edc705b8a@gmail.com> References: <20260713-submit-ce-series-v2-v4-0-ff7edc705b8a@gmail.com> In-Reply-To: <20260713-submit-ce-series-v2-v4-0-ff7edc705b8a@gmail.com> To: Svyatoslav Ryhel , Ion Agorria , u-boot@lists.denx.de, Aspeed BMC SW team , Joel Stanley Cc: Chen-Yu Tsai , Samuel Holland , Tom Rini , Simon Glass , Thierry Reding , Quentin Schulz , Marek Vasut , Rasmus Villemoes , Aristo Chen , Anton Ivanov , Daniel Golle , Francois Berder , Peng Fan , Neil Armstrong , Randolph Sapp , Jonas Karlman , Wolfgang Wallner , Alexey Charkov , Ilias Apalodimas , Heiko Schocher , "Kory Maincent (TI.com)" , Anshul Dalal , Johan Jonker , Francesco Valla , Heinrich Schuchardt , Michael Walle , Andre Przywara , Lukasz Majewski , Richard Genoud , Michael Trimarchi , E Shattow , Enric Balletbo i Serra , Mattijs Korpershoek , Lucas Dietrich , David Lechner , Julien Stephan , Kuan-Wei Chiu , Bastien Curutchet , Raymond Mao , Ryan Chen , Chia-Wei Wang , "Lucien.Jheng" , Mateusz Furdyna , Dinesh Maniyam , Heiko Stuebner , James Hilliard X-Mailer: b4 0.15.2 X-Mailman-Approved-At: Mon, 13 Jul 2026 15:20:59 +0200 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean FIT hash calculation currently selects UCLASS_HASH device zero directly, so a provider which does not implement the requested algorithm prevents a later capable provider from being used. It also turns every provider error into the same generic FIT hash failure. Use the common hash provider-selection helper. Fall back to the configured software implementation only when no DM provider supports the algorithm, and preserve probe and digest failures from providers which accept it. Signed-off-by: James Hilliard --- Changes v3 -> v4: - New patch --- boot/image-fit.c | 26 +++++++++----------------- 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/boot/image-fit.c b/boot/image-fit.c index 555cbf81348..9af38ed8d82 100644 --- a/boot/image-fit.c +++ b/boot/image-fit.c @@ -1322,30 +1322,22 @@ int calculate_hash(const void *data, int data_len, const char *name, #ifndef USE_HOSTCC int rc; enum HASH_ALGO hash_algo; - struct udevice *dev; if (CONFIG_IS_ENABLED(DM_HASH)) { - rc = uclass_get_device(UCLASS_HASH, 0, &dev); - if (rc) { - debug("failed to get hash device, rc=%d\n", rc); - return -1; - } - hash_algo = hash_algo_lookup_by_name(name); - if (hash_algo == HASH_ALGO_INVALID) { - debug("Unsupported hash algorithm\n"); - return -1; + if (hash_algo != HASH_ALGO_INVALID) + rc = hash_digest_wd_lookup(hash_algo, data, data_len, + value, CHUNKSZ); + else + rc = -EOPNOTSUPP; + if (!rc) { + *value_len = hash_algo_digest_size(hash_algo); + return 0; } - - rc = hash_digest_wd(dev, hash_algo, data, data_len, value, - CHUNKSZ); - if (rc) { + if (rc != -ENODEV && rc != -EOPNOTSUPP) { debug("failed to get hash value, rc=%d\n", rc); return -1; } - - *value_len = hash_algo_digest_size(hash_algo); - return 0; } #endif -- 2.53.0