{"id":2228900,"url":"http://patchwork.ozlabs.org/api/1.1/patches/2228900/?format=json","web_url":"http://patchwork.ozlabs.org/project/uboot/patch/20260427-b4-imx95_img_set_sel-v2-1-b5d760ebc89b@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":"<20260427-b4-imx95_img_set_sel-v2-1-b5d760ebc89b@ifm.com>","date":"2026-04-27T13:32:50","name":"[v2,1/2] imx: Add SPI NOR A/B switching support","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"8187bf1181cf0cf216746f1c47ac110903cc2cef","submitter":{"id":89888,"url":"http://patchwork.ozlabs.org/api/1.1/people/89888/?format=json","name":"Fedor Ross","email":"fedor.ross@ifm.com"},"delegate":{"id":151988,"url":"http://patchwork.ozlabs.org/api/1.1/users/151988/?format=json","username":"festevam","first_name":"Fabio","last_name":"Estevam","email":"festevam@gmail.com"},"mbox":"http://patchwork.ozlabs.org/project/uboot/patch/20260427-b4-imx95_img_set_sel-v2-1-b5d760ebc89b@ifm.com/mbox/","series":[{"id":501649,"url":"http://patchwork.ozlabs.org/api/1.1/series/501649/?format=json","web_url":"http://patchwork.ozlabs.org/project/uboot/list/?series=501649","date":"2026-04-27T13:32:50","name":"Add SPI NOR A/B switching support and detect A/B image on MX95","version":2,"mbox":"http://patchwork.ozlabs.org/series/501649/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2228900/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2228900/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=Jb7T5P01;\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=\"Jb7T5P01\";\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 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g44JW26mMz1yHX\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 27 Apr 2026 23:33:15 +1000 (AEST)","from h2850616.stratoserver.net (localhost [IPv6:::1])\n\tby phobos.denx.de (Postfix) with ESMTP id CF8D683AA9;\n\tMon, 27 Apr 2026 15:33:05 +0200 (CEST)","by phobos.denx.de (Postfix, from userid 109)\n id AEF0B8410D; Mon, 27 Apr 2026 15:33:03 +0200 (CEST)","from pp0155.ppsmtp.net (pp0155.ppsmtp.net [132.145.231.114])\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 F3B8483C14\n for <u-boot@lists.denx.de>; Mon, 27 Apr 2026 15:33:00 +0200 (CEST)","from pps.filterd (pp2080.ppsmtp.internal [127.0.0.1])\n by pp2080.ppsmtp.internal (8.18.1.7/8.18.1.7) with ESMTP id 63RDUsSK001223;\n Mon, 27 Apr 2026 15:32:59 +0200"],"X-Spam-Checker-Version":"SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de","X-Spam-Level":"","X-Spam-Status":"No, score=-3.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=SUur+G\n Bm5+jTW/OjYookQkjsGU/Dc9HCh4sMgsxfddY=; b=Jb7T5P01c34jdbyV5If0Qh\n PryayjdECUu0elMSATcKxZ5gv8jDVPhFYKLVfxsFnysQFU6KW7x86cr2MIXykJ2V\n 6Hkh0v/F8SmvE/6rxthrUhtEWQzvJgBsXeBA8XX/b+s8CbC+FBcfWOnc8+4FI1EX\n 2mQBRhnbbai7HsPXeGItOFGUQQgZxlCiz/pdneqbaMZB65NZDAaBlzBQSflkyeyJ\n jmFL6ywJtxs0Dj5PLNrZRaPd6IzhaFjhCOnRJKQeNF3HfoVN0er5FDsASlXfOpRf\n R669557CaXXsK+hKzG31vnhrqWp3cpUJZleXnFNEbNVBCocU4VmEc6wd0b5oZjtg\n ==","From":"<fedor.ross@ifm.com>","Date":"Mon, 27 Apr 2026 15:32:50 +0200","Subject":"[PATCH v2 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":"<20260427-b4-imx95_img_set_sel-v2-1-b5d760ebc89b@ifm.com>","References":"<20260427-b4-imx95_img_set_sel-v2-0-b5d760ebc89b@ifm.com>","In-Reply-To":"<20260427-b4-imx95_img_set_sel-v2-0-b5d760ebc89b@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 \"Ji Luo\" <ji.luo@nxp.com>, Primoz Fiser <primoz.fiser@norik.com>,\n \"Ranjani Vaidyanathan\" <ranjani.vaidyanathan@nxp.com>,\n Fedor Ross <fedor.ross@ifm.com>","X-Mailer":"b4 0.14.3","X-Developer-Signature":"v=1; a=ed25519-sha256; t=1777296777; l=2189;\n i=fedor.ross@ifm.com; s=20251127; h=from:subject:message-id;\n bh=jaquh9s509zrsu8+ldJ8b0HCncdm8d0kvbcz/FO8NgE=;\n b=doCJHzP5WRZQLYRQnq9xtsUFD1H3PllGn5dRsNd4ZXibhv8TgPzmuOq59mkgGBZ4ch/ScVyeg\n 5yPaKtbDfobDyf0n4jkr8pWNxZ+7ZM3nd3x+N/RcbKDi77c7f0+/kLd","X-Developer-Key":"i=fedor.ross@ifm.com; a=ed25519;\n pk=QXV2AUGQzqdu1EMmSJgH2f2Z1Mu1wSx7+5+dcQzQ864=","X-Originating-IP":"[172.19.129.123]","X-ClientProxiedBy":"DEESEX10.intra.ifm (172.26.140.25) To DEESEX10.intra.ifm\n (172.26.140.25)","X-Proofpoint-ID":"SID=4drntpc4nc QID=4drntpc4nc-3","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-27_04,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/include/asm/arch-imx9/sys_proto.h |  2 ++\n arch/arm/mach-imx/image-container.c        |  8 +++++++-\n arch/arm/mach-imx/imx9/scmi/soc.c          | 13 +++++++++++++\n 3 files changed, 22 insertions(+), 1 deletion(-)","diff":"diff --git a/arch/arm/include/asm/arch-imx9/sys_proto.h b/arch/arm/include/asm/arch-imx9/sys_proto.h\nindex dead7a99a66..73df8715f22 100644\n--- a/arch/arm/include/asm/arch-imx9/sys_proto.h\n+++ b/arch/arm/include/asm/arch-imx9/sys_proto.h\n@@ -23,6 +23,8 @@ int low_drive_freq_update(void *blob);\n enum imx9_soc_voltage_mode soc_target_voltage_mode(void);\n int get_reset_reason(bool sys, bool lm);\n \n+u8 imx95_detect_secondary_image_boot(void);\n+\n #define is_voltage_mode(mode) (soc_target_voltage_mode() == (mode))\n \n #endif\ndiff --git a/arch/arm/mach-imx/image-container.c b/arch/arm/mach-imx/image-container.c\nindex 7bfcc9d7e9d..63cf8596316 100644\n--- a/arch/arm/mach-imx/image-container.c\n+++ b/arch/arm/mach-imx/image-container.c\n@@ -225,9 +225,15 @@ static bool check_secondary_cnt_set(unsigned long *set_off)\n \t\t\t}\n \t\t}\n \t}\n-#endif\n+#elif 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+#else\n \treturn false;\n+#endif\n }\n \n static unsigned long get_boot_device_offset(void *dev, int dev_type)\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":["v2","1/2"]}