[PATCH] arm: imx9: Update i.MX91 part number detection

Ye Li ye.li at nxp.com
Mon May 11 09:47:39 CEST 2026


Change to not use NXP_RECOG fuse, but detect part number according
to feature disable fuses and SPEED fuse.

Signed-off-by: Ye Li <ye.li at nxp.com>
---
 arch/arm/mach-imx/imx9/soc.c | 21 +++++----------------
 1 file changed, 5 insertions(+), 16 deletions(-)

diff --git a/arch/arm/mach-imx/imx9/soc.c b/arch/arm/mach-imx/imx9/soc.c
index 44b3e0f5310..ec0cb18e954 100644
--- a/arch/arm/mach-imx/imx9/soc.c
+++ b/arch/arm/mach-imx/imx9/soc.c
@@ -198,26 +198,15 @@ static u32 get_cpu_variant_type(u32 type)
 	bool npu_disable = !!(val & BIT(13));
 	bool core1_disable = !!(val & BIT(15));
 	u32 pack_9x9_fused = BIT(4) | BIT(5) | BIT(17) | BIT(19) | BIT(24);
-	u32 nxp_recog = (val & GENMASK(23, 16)) >> 16;
+	u32 speed = (val & GENMASK(11, 6)) >> 6;
 
 	/* For iMX91 */
 	if (type == MXC_CPU_IMX91) {
-		switch (nxp_recog) {
-		case 0x9:
-		case 0xA:
+		if ((val2 & pack_9x9_fused) == pack_9x9_fused)
 			type = MXC_CPU_IMX9111;
-			break;
-		case 0xD:
-		case 0xE:
-			type = MXC_CPU_IMX9121;
-			break;
-		case 0xF:
-		case 0x10:
-			type = MXC_CPU_IMX9101;
-			break;
-		default:
-			break;	/* 9131 as default */
-		}
+
+		if (speed == 0xf) /* 800Mhz arm */
+			type += 1;
 
 		return type;
 	}
-- 
2.37.1



More information about the U-Boot mailing list