{"id":2228203,"url":"http://patchwork.ozlabs.org/api/1.1/patches/2228203/?format=json","web_url":"http://patchwork.ozlabs.org/project/uboot/patch/20260423-b4-imx95_img_set_sel-v1-1-1681ea8b1507@ifm.com/","project":{"id":18,"url":"http://patchwork.ozlabs.org/api/1.1/projects/18/?format=json","name":"U-Boot","link_name":"uboot","list_id":"u-boot.lists.denx.de","list_email":"u-boot@lists.denx.de","web_url":null,"scm_url":null,"webscm_url":null},"msgid":"<20260423-b4-imx95_img_set_sel-v1-1-1681ea8b1507@ifm.com>","date":"2026-04-23T11:54:42","name":"[1/2] imx: Add SPI NOR A/B switching support","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"e30c2a90061d4035c2d46a2057174401875df9f7","submitter":{"id":89888,"url":"http://patchwork.ozlabs.org/api/1.1/people/89888/?format=json","name":"Fedor Ross","email":"fedor.ross@ifm.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/uboot/patch/20260423-b4-imx95_img_set_sel-v1-1-1681ea8b1507@ifm.com/mbox/","series":[{"id":501454,"url":"http://patchwork.ozlabs.org/api/1.1/series/501454/?format=json","web_url":"http://patchwork.ozlabs.org/project/uboot/list/?series=501454","date":"2026-04-23T11:54:43","name":"Add SPI NOR A/B switching support and detect A/B image on MX95","version":1,"mbox":"http://patchwork.ozlabs.org/series/501454/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2228203/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2228203/checks/","tags":{},"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=ifm.com header.i=@ifm.com header.a=rsa-sha256\n header.s=pps header.b=Gz/cZwNZ;\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=reject dis=none) header.from=ifm.com","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=ifm.com header.i=@ifm.com header.b=\"Gz/cZwNZ\";\n\tdkim-atps=neutral","phobos.denx.de;\n dmarc=pass (p=reject dis=none) header.from=ifm.com","phobos.denx.de;\n spf=pass smtp.mailfrom=fedor.ross@ifm.com"],"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 4g2w632j4mz1y2d\n\tfor <incoming@patchwork.ozlabs.org>; Sun, 26 Apr 2026 02:20:11 +1000 (AEST)","from h2850616.stratoserver.net (localhost [IPv6:::1])\n\tby phobos.denx.de (Postfix) with ESMTP id 3D6D984099;\n\tSat, 25 Apr 2026 18:20:09 +0200 (CEST)","by phobos.denx.de (Postfix, from userid 109)\n id 1EED383FB0; Sat, 25 Apr 2026 18:20:08 +0200 (CEST)","from pp2023.ppsmtp.net (pp2023.ppsmtp.net [132.145.231.115])\n (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n (No client certificate requested)\n by phobos.denx.de (Postfix) with ESMTPS id 989FC840ED\n for <u-boot@lists.denx.de>; Sat, 25 Apr 2026 18:20:03 +0200 (CEST)","from pps.filterd (pp2023.ppsmtp.internal [127.0.0.1])\n by pp2023.ppsmtp.internal (8.18.1.7/8.18.1.7) with ESMTP id 63NBsBHE002802;\n Thu, 23 Apr 2026 13:54:58 +0200"],"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 RCVD_IN_MSPIKE_H5,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_PASS\n autolearn=ham autolearn_force=no version=3.4.2","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=ifm.com; h=cc\n :content-transfer-encoding:content-type:date:from:in-reply-to\n :message-id:mime-version:references:subject:to; s=pps; bh=gq1nTI\n y+/CDUeeEW0Wf7DuXiYs29wnqt7zrmzUhsIes=; b=Gz/cZwNZBRiDMKTaSyIopF\n 5GsU9bjyo65RWXeo57c8aDv1lWgteXD+jLma74AR1aOhYrIZdR/0WdUswjTbMze0\n gPNu2mRRCld0VgKIGwPbSowJ3cfWNq1dP/bdfCIQNAced6qBxV9VZ8XU7Nl3sE/i\n sYnO50TlGK+gLGvCzUxs0s4xbr6l4PNjAhuttn6XFg8yZfOeWXgJ1q2BzunAP0vJ\n USPr5fXz9aW1gly0CJoFKQHVMaCVmbMaIhlhXc08JdWCfKFuN7C0S6Y76NrxCEV6\n PlsKZuCby6s/qoEgTjr/Rpqjxi0c0v6hUAq07Bi98aV6qmfDKn87a5riu+t78/lg\n ==","From":"<fedor.ross@ifm.com>","Date":"Thu, 23 Apr 2026 13:54:42 +0200","Subject":"[PATCH 1/2] imx: Add SPI NOR A/B switching support","MIME-Version":"1.0","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"7bit","Message-ID":"<20260423-b4-imx95_img_set_sel-v1-1-1681ea8b1507@ifm.com>","References":"<20260423-b4-imx95_img_set_sel-v1-0-1681ea8b1507@ifm.com>","In-Reply-To":"<20260423-b4-imx95_img_set_sel-v1-0-1681ea8b1507@ifm.com>","To":"NXP i.MX U-Boot Team <uboot-imx@nxp.com>, <u-boot@lists.denx.de>","CC":"Stefano Babic <sbabic@nabladev.com>, Fabio Estevam <festevam@gmail.com>,\n Tom Rini <trini@konsulko.com>, Peng Fan <peng.fan@nxp.com>,\n Alice Guo <alice.guo@nxp.com>, Ye Li <ye.li@nxp.com>,\n Jacky Bai <ping.bai@nxp.com>, Marek Vasut <marex@nabladev.com>,\n Rasmus Villemoes <ravi@prevas.dk>,\n =?utf-8?q?Jo=C3=A3o_Paulo_Gon=C3=A7alves?= <joao.goncalves@toradex.com>,\n Fedor Ross <fedor.ross@ifm.com>","X-Mailer":"b4 0.14.3","X-Developer-Signature":"v=1; a=ed25519-sha256; t=1776945295; l=1766;\n i=fedor.ross@ifm.com; s=20251127; h=from:subject:message-id;\n bh=uR3X3hZ2xg9FNfKuMBITAnOd9FWGT1xbvVk4gG0nyEw=;\n b=4+TNGKzuXgj41mOjHbJaK04PrHJUp+auCfoS8ZE1NYWJy8K4xVBysb14v27HT74X/2rrHifs2\n NABt5Gkqt40AWZGvFW+SVVBVj9oWiSwKU3Qzg8ItykSYnY1/nbD4V2O","X-Developer-Key":"i=fedor.ross@ifm.com; a=ed25519;\n pk=QXV2AUGQzqdu1EMmSJgH2f2Z1Mu1wSx7+5+dcQzQ864=","X-Originating-IP":"[172.19.129.122]","X-ClientProxiedBy":"DEESEX10.intra.ifm (172.26.140.25) To DEESEX10.intra.ifm\n (172.26.140.25)","X-Proofpoint-ID":"SID=4dpjh9dc95 QID=4dpjh9dc95-1","X-Proofpoint-Virus-Version":"vendor=baseguard\n engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49\n definitions=2026-04-23_03,2026-04-21_02,2025-10-01_01","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"},"content":"From: Marek Vasut <marex@nabladev.com>\n\nQuery the SM via SCMI, obtain rom_passover_t->img_set_sel and based on\nthat, add 0 or 0x400000 offset (A or B copy offset) to boot container\nread address.\n\nSigned-off-by: Marek Vasut <marex@nabladev.com>\nSigned-off-by: Fedor Ross <fedor.ross@ifm.com>\n---\n arch/arm/mach-imx/image-container.c | 10 ++++++++++\n arch/arm/mach-imx/imx9/scmi/soc.c   | 13 +++++++++++++\n 2 files changed, 23 insertions(+)","diff":"diff --git a/arch/arm/mach-imx/image-container.c b/arch/arm/mach-imx/image-container.c\nindex 7bfcc9d7e9d..eeea0b80b39 100644\n--- a/arch/arm/mach-imx/image-container.c\n+++ b/arch/arm/mach-imx/image-container.c\n@@ -204,6 +204,8 @@ static int get_dev_container_size(void *dev, int dev_type, unsigned long offset,\n \treturn ret;\n }\n \n+extern u8 imx95_detect_secondary_image_boot(void);\n+\n static bool check_secondary_cnt_set(unsigned long *set_off)\n {\n #if IS_ENABLED(CONFIG_ARCH_IMX8)\n@@ -227,6 +229,14 @@ static bool check_secondary_cnt_set(unsigned long *set_off)\n \t}\n #endif\n \n+#if IS_ENABLED(CONFIG_IMX95)\n+\tu8 img_set_sel = imx95_detect_secondary_image_boot();\n+\n+\t*set_off = img_set_sel ? 0x400000 : 0;\n+\n+\treturn !!img_set_sel;\n+#endif\n+\n \treturn false;\n }\n \ndiff --git a/arch/arm/mach-imx/imx9/scmi/soc.c b/arch/arm/mach-imx/imx9/scmi/soc.c\nindex fbee435786c..330b276b23a 100644\n--- a/arch/arm/mach-imx/imx9/scmi/soc.c\n+++ b/arch/arm/mach-imx/imx9/scmi/soc.c\n@@ -745,6 +745,19 @@ void build_info(void)\n \tputs(\"\\n\");\n }\n \n+#if IS_ENABLED(CONFIG_IMX95)\n+u8 imx95_detect_secondary_image_boot(void)\n+{\n+\trom_passover_t rdata = { 0 };\n+\tint ret = scmi_get_rom_data(&rdata);\n+\n+\tif (!ret)\n+\t\treturn rdata.img_set_sel;\n+\n+\treturn 0;\n+}\n+#endif\n+\n int arch_misc_init(void)\n {\n \tbuild_info();\n","prefixes":["1/2"]}