diff --git a/src/arm/uarch.c b/src/arm/uarch.c index aab10010..1301eefb 100644 --- a/src/arm/uarch.c +++ b/src/arm/uarch.c @@ -438,6 +438,50 @@ void cpuinfo_arm_decode_vendor_uarch( midr_get_part(midr)); } break; + case 'a': + *vendor = cpuinfo_vendor_apple; + switch (midr_get_part(midr)) { + case 0x022: + case 0x024: + case 0x028: + *uarch = cpuinfo_uarch_icestorm; + break; + case 0x023: + case 0x025: + case 0x029: + *uarch = cpuinfo_uarch_firestorm; + break; + case 0x032: + case 0x034: + case 0x038: + *uarch = cpuinfo_uarch_blizzard; + break; + case 0x033: + case 0x035: + case 0x039: + *uarch = cpuinfo_uarch_avalanche; + break; + case 0x042: + case 0x044: + case 0x048: + *uarch = cpuinfo_uarch_coll_sawtooth; + break; + case 0x043: + case 0x045: + case 0x049: + *uarch = cpuinfo_uarch_coll_everest; + break; + case 0x052: + *uarch = cpuinfo_uarch_donan_sawtooth; + break; + case 0x053: + *uarch = cpuinfo_uarch_donan_everest; + break; + default: + cpuinfo_log_warning( + "unknown Apple CPU part 0x%03" PRIx32 " ignored", midr_get_part(midr)); + } + break; #if CPUINFO_ARCH_ARM case 'V': *vendor = cpuinfo_vendor_marvell;