From 959b4bfb30d0cf587088c16a8e6b46e405019a39 Mon Sep 17 00:00:00 2001 From: Nicolas Pitre Date: Wed, 15 Apr 2026 17:16:18 -0400 Subject: [PATCH] Add Cortex-A320 to MIDR decode table ARM Cortex-A320 (MIDR part 0xD8F) is an ARMv9.2-A efficiency core. Add its uarch enum and MIDR mapping so XNNPACK can select optimized kernels when running on this core. Signed-off-by: Nicolas Pitre --- include/cpuinfo.h | 2 ++ src/arm/uarch.c | 15 +++++++++------ tools/cpu-info.c | 2 ++ 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/include/cpuinfo.h b/include/cpuinfo.h index 321998c5..381018da 100644 --- a/include/cpuinfo.h +++ b/include/cpuinfo.h @@ -525,6 +525,8 @@ enum cpuinfo_uarch { cpuinfo_uarch_cortex_a510 = 0x00300551, /** ARM Cortex-A520. */ cpuinfo_uarch_cortex_a520 = 0x00300552, + /** ARM Cortex-A320. */ + cpuinfo_uarch_cortex_a320 = 0x00300553, /** ARM Cortex-A710. */ cpuinfo_uarch_cortex_a710 = 0x00300571, /** ARM Cortex-A715. */ diff --git a/src/arm/uarch.c b/src/arm/uarch.c index 6f92c7d2..aab10010 100644 --- a/src/arm/uarch.c +++ b/src/arm/uarch.c @@ -141,18 +141,21 @@ void cpuinfo_arm_decode_vendor_uarch( case 0xD87: /* Cortex-A725 */ *uarch = cpuinfo_uarch_cortex_a725; break; + case 0xD8A: + *uarch = cpuinfo_uarch_lumex_c1_nano; + break; + case 0xD8B: + *uarch = cpuinfo_uarch_lumex_c1_pro; + break; case 0xD8C: *uarch = cpuinfo_uarch_lumex_c1_ultra; break; + case 0xD8F: /* Cortex-A320 */ + *uarch = cpuinfo_uarch_cortex_a320; + break; case 0xD90: *uarch = cpuinfo_uarch_lumex_c1_premium; break; - case 0xD8B: - *uarch = cpuinfo_uarch_lumex_c1_pro; - break; - case 0xD8A: - *uarch = cpuinfo_uarch_lumex_c1_nano; - break; default: switch (midr_get_part(midr) >> 8) { #if CPUINFO_ARCH_ARM diff --git a/tools/cpu-info.c b/tools/cpu-info.c index 98257e0a..4a5983b2 100644 --- a/tools/cpu-info.c +++ b/tools/cpu-info.c @@ -212,6 +212,8 @@ static const char* uarch_to_string(enum cpuinfo_uarch uarch) { return "Cortex-A510"; case cpuinfo_uarch_cortex_a520: return "Cortex-A520"; + case cpuinfo_uarch_cortex_a320: + return "Cortex-A320"; case cpuinfo_uarch_cortex_a710: return "Cortex-A710"; case cpuinfo_uarch_cortex_a715: