diff --git a/example/sysinfo/odp_sysinfo.c b/example/sysinfo/odp_sysinfo.c index 05635eec29..0bebac4a20 100644 --- a/example/sysinfo/odp_sysinfo.c +++ b/example/sysinfo/odp_sysinfo.c @@ -98,12 +98,18 @@ static const char *arm_isa(odp_cpu_arch_arm_t isa) return "ARMv8.6-A"; case ODP_CPU_ARCH_ARMV8_7: return "ARMv8.7-A"; + case ODP_CPU_ARCH_ARMV8_8: + return "ARMv8.8-A"; + case ODP_CPU_ARCH_ARMV8_9: + return "ARMv8.9-A"; case ODP_CPU_ARCH_ARMV9_0: return "ARMv9.0-A"; case ODP_CPU_ARCH_ARMV9_1: return "ARMv9.1-A"; case ODP_CPU_ARCH_ARMV9_2: return "ARMv9.2-A"; + case ODP_CPU_ARCH_ARMV9_3: + return "ARMv9.3-A"; default: return "Unknown"; } diff --git a/include/odp/api/spec/system_info.h b/include/odp/api/spec/system_info.h index e3420ea8e1..98efe06f78 100644 --- a/include/odp/api/spec/system_info.h +++ b/include/odp/api/spec/system_info.h @@ -88,6 +88,12 @@ typedef enum odp_cpu_arch_arm_t { /** ARMv8.7-A ISA */ ODP_CPU_ARCH_ARMV8_7, + /** ARMv8.8-A ISA */ + ODP_CPU_ARCH_ARMV8_8, + + /** ARMv8.9-A ISA */ + ODP_CPU_ARCH_ARMV8_9, + /** ARMv9.0-A ISA */ ODP_CPU_ARCH_ARMV9_0, @@ -97,6 +103,9 @@ typedef enum odp_cpu_arch_arm_t { /** ARMv9.2-A ISA */ ODP_CPU_ARCH_ARMV9_2, + /** ARMv9.3-A ISA */ + ODP_CPU_ARCH_ARMV9_3, + } odp_cpu_arch_arm_t; /** diff --git a/platform/linux-generic/arch/aarch64/odp_sysinfo_parse.c b/platform/linux-generic/arch/aarch64/odp_sysinfo_parse.c index 890004afcd..f242c845e7 100644 --- a/platform/linux-generic/arch/aarch64/odp_sysinfo_parse.c +++ b/platform/linux-generic/arch/aarch64/odp_sysinfo_parse.c @@ -263,6 +263,10 @@ static odp_cpu_arch_arm_t arm_isa_version(void) return ODP_CPU_ARCH_ARMV8_6; case 7: return ODP_CPU_ARCH_ARMV8_7; + case 8: + return ODP_CPU_ARCH_ARMV8_8; + case 9: + return ODP_CPU_ARCH_ARMV8_9; default: return ODP_CPU_ARCH_ARM_UNKNOWN; } @@ -274,6 +278,8 @@ static odp_cpu_arch_arm_t arm_isa_version(void) return ODP_CPU_ARCH_ARMV9_1; case 2: return ODP_CPU_ARCH_ARMV9_2; + case 3: + return ODP_CPU_ARCH_ARMV9_3; default: return ODP_CPU_ARCH_ARM_UNKNOWN; } diff --git a/test/validation/api/system/system.c b/test/validation/api/system/system.c index a98ebb6343..89a46a7f2c 100644 --- a/test/validation/api/system/system.c +++ b/test/validation/api/system/system.c @@ -534,12 +534,18 @@ static void system_test_info(void) printf(" ODP_CPU_ARCH_ARMV8_6\n"); else if (info.cpu_isa_sw.arm == ODP_CPU_ARCH_ARMV8_7) printf(" ODP_CPU_ARCH_ARMV8_7\n"); + else if (info.cpu_isa_sw.arm == ODP_CPU_ARCH_ARMV8_8) + printf(" ODP_CPU_ARCH_ARMV8_8\n"); + else if (info.cpu_isa_sw.arm == ODP_CPU_ARCH_ARMV8_9) + printf(" ODP_CPU_ARCH_ARMV8_9\n"); else if (info.cpu_isa_sw.arm == ODP_CPU_ARCH_ARMV9_0) printf(" ODP_CPU_ARCH_ARMV9_0\n"); else if (info.cpu_isa_sw.arm == ODP_CPU_ARCH_ARMV9_1) printf(" ODP_CPU_ARCH_ARMV9_1\n"); else if (info.cpu_isa_sw.arm == ODP_CPU_ARCH_ARMV9_2) printf(" ODP_CPU_ARCH_ARMV9_2\n"); + else if (info.cpu_isa_sw.arm == ODP_CPU_ARCH_ARMV9_3) + printf(" ODP_CPU_ARCH_ARMV9_3\n"); else CU_FAIL("Unknown CPU ISA SW ARCH found!"); @@ -566,12 +572,18 @@ static void system_test_info(void) printf(" ODP_CPU_ARCH_ARMV8_6\n"); else if (info.cpu_isa_hw.arm == ODP_CPU_ARCH_ARMV8_7) printf(" ODP_CPU_ARCH_ARMV8_7\n"); + else if (info.cpu_isa_hw.arm == ODP_CPU_ARCH_ARMV8_8) + printf(" ODP_CPU_ARCH_ARMV8_8\n"); + else if (info.cpu_isa_hw.arm == ODP_CPU_ARCH_ARMV8_9) + printf(" ODP_CPU_ARCH_ARMV8_9\n"); else if (info.cpu_isa_hw.arm == ODP_CPU_ARCH_ARMV9_0) printf(" ODP_CPU_ARCH_ARMV9_0\n"); else if (info.cpu_isa_hw.arm == ODP_CPU_ARCH_ARMV9_1) printf(" ODP_CPU_ARCH_ARMV9_1\n"); else if (info.cpu_isa_hw.arm == ODP_CPU_ARCH_ARMV9_2) printf(" ODP_CPU_ARCH_ARMV9_2\n"); + else if (info.cpu_isa_hw.arm == ODP_CPU_ARCH_ARMV9_3) + printf(" ODP_CPU_ARCH_ARMV9_3\n"); else if (info.cpu_isa_hw.arm == ODP_CPU_ARCH_ARM_UNKNOWN) printf(" ODP_CPU_ARCH_ARM_UNKNOWN\n"); else