From patchwork Sat Apr 4 15:23:34 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dario Binacchi X-Patchwork-Id: 4518 Return-Path: X-Original-To: linux-amarula@patchwork.amarulasolutions.com Delivered-To: linux-amarula@patchwork.amarulasolutions.com Received: from mail-wr1-f70.google.com (mail-wr1-f70.google.com [209.85.221.70]) by ganimede.amarulasolutions.com (Postfix) with ESMTPS id 09B053F10C for ; Sat, 4 Apr 2026 17:27:07 +0200 (CEST) Received: by mail-wr1-f70.google.com with SMTP id ffacd0b85a97d-43d06133455sf1587197f8f.3 for ; Sat, 04 Apr 2026 08:27:07 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1775316426; cv=pass; d=google.com; s=arc-20240605; b=hLFjHQNXwreaRZIF8Ul/X3xExT80Um2D6428rVbNEunpMvbauf7sib6KyquoKe1sRl /v7RlbeTHYav67Dsqe13cfsbCSSG8PW36n3nqQcA/cdKcfED/CFk6OzvvnhFkzcK6QEr vaAV0XatpePFJZWvUrconeGjSBp1HG5F+tilmzmqKj+LbQjeL6WJy+75N1G/sqnXRqdH 3OhdcqBwuApGQ+RWZgQ2rFxTahfB3g+YauzlSgFxSvdA+SC/2Syy54+GTE7LIGUctC2p s0hez8NA0iH54saPXC0zzbILHh11vUW4xOj8MeFqsPLVfHnDgkknaN/K5VNyTH5QmC6K Y/jw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=list-unsubscribe:list-archive:list-help:list-post:list-id :mailing-list:precedence:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=MbTgTMRmX8FHdOq9o8cD6PCBmeHHoK9dZyrFiQYBo50=; fh=yUI7Uh85wGLSeTnKI1WLppjRj3YnVr5lDvv7JkV3zec=; b=MN6PDqfzFPJxoMCbMm1ow91w2EezexvHITj8UC8qVq9xLmQTqdelGC9q9nM+ZR5jaQ wK9so1qhbnfMpw23DfBxVFgfOzA3OD3EJ5JWI/MNyS/Ra6FskFGFoovhooBb0xbmksuf BmQQZv+DQyPQQpN6pw2/ozkaYokNOCiggqpEPYHsVoQc7e4if+dxBsfVedu6/wqM86pd cu0uGuzez82j0183nyXbeWBlXoYMp91zhXvm9vET4RYNHtHNTZEmYOMvEvHI00kSR2d6 osQM0m1kcTfvLwKytYi+zSqc6yLD4Z98mLzCRzgvoGky66HWKz7i+B33Rk6brfsdmRZ9 oJHg==; darn=patchwork.amarulasolutions.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=MLsgo1tN; spf=pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=dario.binacchi@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com; dara=neutral header.i=@amarulasolutions.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; t=1775316426; x=1775921226; darn=patchwork.amarulasolutions.com; h=list-unsubscribe:list-archive:list-help:list-post:list-id :mailing-list:precedence:x-original-authentication-results :x-original-sender:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=MbTgTMRmX8FHdOq9o8cD6PCBmeHHoK9dZyrFiQYBo50=; b=XCdYkv5NK9RqpT1DvyvbXNQlzNoBk3Q0sm8rY7i6zMVkE7ObsGw5zlxN+MedquRhJN YeS0rFJFqOb+hTEK4m5OQAMyWMr4lUPMPawHHjZaSEy5jcc2h4n54h9HjJDLHleKJeCE tgx45xf833xw2fmSaqvvdPEiQY72IClY5mIYQ= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775316426; x=1775921226; h=list-unsubscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence :x-original-authentication-results:x-original-sender:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from:x-gm-gg :x-beenthere:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=MbTgTMRmX8FHdOq9o8cD6PCBmeHHoK9dZyrFiQYBo50=; b=YF22Drs3klcdFZaY3QffGjKsv2FWYQ2/zNWiEI0rym4PD11yZVJFHdbYp/RCF4iDdW V+njtedsTbd8TJ1uTBg47GCDTECsXwnW9k0hSeAXGKZlLpgP/mxQE+s433sHwbb0zQLw B4gdJol0Hj0dLPuC3o/CDa22xUVgnQfKXB4Py/c4qIyG5ui8TTV5d4L8xAO011YPXkUi P8sskRFgCmia+ojLq4tvUIUeuW+rfNmbsNsfui4z/qUkreL92povOSV9bm6++Vt7XtqT tzwhAzrH2RNs4EfZGwgNOnOI+sBqlIrvOwA3wO+SvLexzePINh3nGAI9W6UPv0i68PUD N+4g== X-Forwarded-Encrypted: i=2; AJvYcCUnbX4kiUAqtsrM1zKiRKuBmr8Rq/oNo0rK6bQw9VXMSjAOHBFjduO5IJSNUnOWJUIhwLw4IAv5upc7usqq@patchwork.amarulasolutions.com X-Gm-Message-State: AOJu0YwO4hQVSFEsLAsKBJ72LkJ2dFSg2Nriz3+SnwLB9r7gM0r4AUWh Des3Z1OcPDZbKAArel4KADcinJxBXDkAWdSDHOI3O8C03F0w88DQpqWGmswL+5yxWWMgnw== X-Received: by 2002:a05:6000:1846:b0:439:b3ff:9ab9 with SMTP id ffacd0b85a97d-43d292ff52bmr10174209f8f.48.1775316426595; Sat, 04 Apr 2026 08:27:06 -0700 (PDT) X-BeenThere: linux-amarula@amarulasolutions.com; h="AYAyTiJivsGP1hL3CqMH0kdWR7kZhTerxW4Xjuvv0b1we2Q63Q==" Received: by 2002:a05:6000:4104:b0:439:bc79:9f78 with SMTP id ffacd0b85a97d-43d1f554e28ls1758778f8f.2.-pod-prod-08-eu; Sat, 04 Apr 2026 08:27:05 -0700 (PDT) X-Received: by 2002:a05:6000:2408:b0:43b:4d2e:a004 with SMTP id ffacd0b85a97d-43d29269f55mr10339261f8f.10.1775316424970; Sat, 04 Apr 2026 08:27:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1775316424; cv=none; d=google.com; s=arc-20240605; b=O1oGpYnWRueLpfxNegbg7RXqDgBvlua1V5Hn4lQgPObt4RN9ouD1jTcYP6100XvP0b vATEBJA5CBfLDATHfrQJI/kbMkr0Afe0qy5gmDonYVb8FfLmY6E8fHwYPJm0CXpJmPnP E8n9kxqt8BbJXA8A6OfrRkfnEIY7oTgl6Wu9npc++Sw3KWCoWGBfqXqxbJsv+v3TVhEN l/kKNJJ7R6N8nylcf7N7VbOBl6nXbT+i+/XXHJ1IbehJD4mdTqcs7E09UCrCq/2DMNWz Eeo+jhLlU6O3RZJk9H2pgcJf24aE2AtXfgqgPWHW67mJE/prl7NuuSTvI7wLrmgCG++y OjSw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=pvGO0HArPxKblfO1hvPOj1oWNQ73LOhu35jHyXZXYrs=; fh=bSxFN8ofQGgsTNSZRd8x00EydQvhyYnF2HxrnwkKvNY=; b=ElTPCXZF/m4d2epAVpxkt9ODa+qFqjf3VDn10iG9/2/xiI5hx5ubbhzVvV72Uwf+KK tQz7IMLNbUjGJeCWqqJIZbQ3IONewfUJWo7GLl4O3uhznaaYaRIW0wehTj6WK3hq/Ey2 WFbhP88mWuDrvPe80RZAVJM6Mxr59j5tf3HAl/T/ZrOTmTf70p6ab5mudLJdT2qw2KrH 4qmctR2shk6ntMqLK/6Ij0CdqlDIdGjekMX8xe6UOBEF9/3pQhaekMa9qc4Ev2WTjsv6 sJIP7njToI81krOifEgygMEJsbeOaMgssRqwrQXxSF37dBmmJP+fzHJfil6B26Sbtai3 k1dw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=MLsgo1tN; spf=pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=dario.binacchi@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com; dara=neutral header.i=@amarulasolutions.com Received: from mail-sor-f41.google.com (mail-sor-f41.google.com. [209.85.220.41]) by mx.google.com with SMTPS id ffacd0b85a97d-43d1e2d9759sor997785f8f.5.2026.04.04.08.27.04 for (Google Transport Security); Sat, 04 Apr 2026 08:27:04 -0700 (PDT) Received-SPF: pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) client-ip=209.85.220.41; X-Gm-Gg: AeBDietHR0nD5Iz020031JLwamIEpw/CeCW5lK4S44fGmpdkhC11dklRSG4rgVu4fYB w9ln6cZiHjLE7YvQ/nKusfnBKCe9Xtpp3CJn7JpHTXMo9l0CDoglPgRVIa2N8t13t4RmUYsfcly 03yz9tIKE/DsYj3mO5CctqK2CLzYYsSrRr2nw69S59cGvwTXhHCdGNjahiGZX5uo0bhzUZrPzOI k5k8pWhuKN5Nf8wIRoWn7LACDCpTNyBeDM3PdizK2r/FrNc8QQkQpjud8J/eD/V/mGnC799nV4L pNqf8AnrYCeuCFJWj5sY4l5tVQ/kIT5oC8ZTKyx50RrC60t/8CSSicchdZfC69C8POqM9oJdqRE sktvcPSijxXdPqzWWgWvPOdvNecukIFO75PnqqcmkilvwQGt6Cgi28qSoA3mhL7CYtas6OHBHbA f22X78jU4x9JBZelft6BdabLEIZAPAv0t38mCBRM0i+i3sFaC/N5pBG4SGF5Wh/xPNyFQW/gTBC OZRXsjKDQDOF2WL+iZNJyuJmJ75FCAVVTL/BZKxQt2Qppbl0fgGs+LhpCYYbJPek6Q43tSv2o3m xvgW8ui9k3d9D+WuxJOxLmiR X-Received: by 2002:adf:ec4c:0:b0:43d:30d1:857c with SMTP id ffacd0b85a97d-43d30d1859bmr4013249f8f.7.1775316424542; Sat, 04 Apr 2026 08:27:04 -0700 (PDT) Received: from dario-ThinkPad-P14s-Gen-5.homenet.telecomitalia.it (host-87-9-100-184.retail.telecomitalia.it. [87.9.100.184]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43d1e4f1a99sm28059462f8f.32.2026.04.04.08.27.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 04 Apr 2026 08:27:04 -0700 (PDT) From: Dario Binacchi To: u-boot@lists.denx.de Cc: linux-amarula@amarulasolutions.com, Dario Binacchi , Marek Vasut , Patrice Chotard , Patrick Delaunay , Quentin Schulz , Tom Rini , uboot-stm32@st-md-mailman.stormreply.com Subject: [PATCH v2 7/7] board: st: stm32mp25: support dynamic A/B bank bootup Date: Sat, 4 Apr 2026 17:23:34 +0200 Message-ID: <20260404152640.3297713-8-dario.binacchi@amarulasolutions.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260404152640.3297713-1-dario.binacchi@amarulasolutions.com> References: <20260404152640.3297713-1-dario.binacchi@amarulasolutions.com> MIME-Version: 1.0 X-Original-Sender: dario.binacchi@amarulasolutions.com X-Original-Authentication-Results: mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=MLsgo1tN; spf=pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=dario.binacchi@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com; dara=neutral header.i=@amarulasolutions.com Content-Type: text/plain; charset="UTF-8" Precedence: list Mailing-list: list linux-amarula@amarulasolutions.com; contact linux-amarula+owners@amarulasolutions.com List-ID: X-Spam-Checked-In-Group: linux-amarula@amarulasolutions.com X-Google-Group-Id: 476853432473 List-Post: , List-Help: , List-Archive: List-Unsubscribe: , Enable automatic detection of the active A/B bank by retrieving partition GUIDs from FWU metadata. This ensures the system correctly identifies the bootable partitions even in multi-bank scenarios, falling back to a standard bootable flag scan if the UUIDs are missing. To enable A/B bank bootup on stm32mp25 boards, add the following Kconfig options to the stm32mp25_defconfig: CONFIG_FWU_MULTI_BANK_UPDATE=y CONFIG_FWU_MDATA=y CONFIG_FWU_NUM_BANKS=2 CONFIG_FWU_NUM_IMAGES_PER_BANK=3 CONFIG_CMD_FWU_METADATA=y CONFIG_FWU_MDATA_V2=y Signed-off-by: Dario Binacchi --- Changes in v2: - Pass efi_guid_t by pointer in fwu_mdata_get_image_guid() calls. board/st/stm32mp2/stm32mp2.c | 25 +++++++++++++++++++++++++ include/configs/stm32mp25_st_common.h | 15 +++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/board/st/stm32mp2/stm32mp2.c b/board/st/stm32mp2/stm32mp2.c index 43bc583378e6..cb9a33252212 100644 --- a/board/st/stm32mp2/stm32mp2.c +++ b/board/st/stm32mp2/stm32mp2.c @@ -208,4 +208,29 @@ void fwu_plat_get_bootidx(uint *boot_idx) *boot_idx = (readl(TAMP_FWU_BOOT_INFO_REG) >> TAMP_FWU_BOOT_IDX_OFFSET) & TAMP_FWU_BOOT_IDX_MASK; } + +int fwu_platform_hook(struct udevice *dev, struct fwu_data *data) +{ + uint boot_idx; + efi_guid_t boot_uuid, root_uuid; + const efi_guid_t boot_type_guid = PARTITION_XBOOTLDR; + const efi_guid_t root_type_guid = + PARTITION_LINUX_FILE_SYSTEM_DATA_GUID; + char uuidbuf[UUID_STR_LEN + 1]; + + fwu_plat_get_bootidx(&boot_idx); + + if (!fwu_mdata_get_image_guid(&boot_uuid, &boot_type_guid, + boot_idx) && + !fwu_mdata_get_image_guid(&root_uuid, &root_type_guid, + boot_idx)) { + uuid_bin_to_str(boot_uuid.b, uuidbuf, UUID_STR_FORMAT_GUID); + env_set("boot_partuuid", uuidbuf); + + uuid_bin_to_str(root_uuid.b, uuidbuf, UUID_STR_FORMAT_GUID); + env_set("root_partuuid", uuidbuf); + } + + return 0; +} #endif /* CONFIG_FWU_MULTI_BANK_UPDATE */ diff --git a/include/configs/stm32mp25_st_common.h b/include/configs/stm32mp25_st_common.h index cb679eb1be22..0b0267ae99b0 100644 --- a/include/configs/stm32mp25_st_common.h +++ b/include/configs/stm32mp25_st_common.h @@ -8,7 +8,22 @@ #ifndef __CONFIG_STM32MP25_ST_COMMON_H__ #define __CONFIG_STM32MP25_ST_COMMON_H__ +#ifdef CONFIG_FWU_MULTI_BANK_UPDATE +#define SCAN_DEV_FOR_BOOT_PARTS \ + "setenv devplist; " \ + "env exists boot_partuuid && " \ + "part number ${devtype} ${devnum} ${boot_partuuid} devplist; " \ + "env exists devplist || " \ + "part list ${devtype} ${devnum} -bootable devplist; " + +#define ST_STM32MP25_FWU_ENV \ + "altbootcmd=${bootcmd}\0" +#else +#define ST_STM32MP25_FWU_ENV +#endif + #define STM32MP_BOARD_EXTRA_ENV \ + ST_STM32MP25_FWU_ENV \ "usb_pgood_delay=2000\0" \ "console=ttySTM0\0"