Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions include/cpuinfo.h
Original file line number Diff line number Diff line change
Expand Up @@ -645,6 +645,11 @@ enum cpuinfo_uarch {
/** Apple M4 processor (little cores). */
cpuinfo_uarch_donan_sawtooth = 0x00700309,

/** Apple M5 Pro / Max processor (super cores). */
Comment thread
JakeStevens marked this conversation as resolved.
cpuinfo_uarch_sotra_super = 0x0070030A,
/** Apple M5 Pro / Max processor (performance cores). */
cpuinfo_uarch_sotra_performance = 0x0070030B,

/** Cavium ThunderX. */
cpuinfo_uarch_thunderx = 0x00800100,
/** Cavium ThunderX2 (originally Broadcom Vulkan). */
Expand Down
10 changes: 10 additions & 0 deletions src/arm/mach/init.c
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,10 @@
#ifndef CPUFAMILY_ARM_HIDRA
#define CPUFAMILY_ARM_HIDRA 0x1d5a87e8
#endif
// M5 Pro / M5 Max
#ifndef CPUFAMILY_ARM_SOTRA
#define CPUFAMILY_ARM_SOTRA 0xf76c5b1a
#endif
// A19
#ifndef CPUFAMILY_ARM_TILOS
#define CPUFAMILY_ARM_TILOS 0x01d7a72b
Expand Down Expand Up @@ -184,6 +188,12 @@ static enum cpuinfo_uarch decode_uarch(uint32_t cpu_family, uint32_t core_index,
case CPUFAMILY_ARM_HIDRA: /* M5 */
/* 10-core: 4x Tilos Everest v4 + 6x Tilos Sawtooth v4 */
return core_index + 6 < core_count ? cpuinfo_uarch_tilos_everest : cpuinfo_uarch_tilos_sawtooth;
case CPUFAMILY_ARM_SOTRA: /* M5 Pro / M5 Max */
/* Pro 15-core: 5x Sotra Super + 10x Sotra Performance */
/* Max 18-core: 6x Sotra Super + 12x Sotra Performance */
return (core_count > 15 ? core_index + 12 : core_index + 10) < core_count
? cpuinfo_uarch_sotra_super
: cpuinfo_uarch_sotra_performance;

default:
/* Use hw.cpusubtype for detection */
Expand Down
20 changes: 12 additions & 8 deletions tools/cpu-info.c
Original file line number Diff line number Diff line change
Expand Up @@ -318,25 +318,29 @@ static const char* uarch_to_string(enum cpuinfo_uarch uarch) {
case cpuinfo_uarch_sawtooth:
return "Sawtooth";
case cpuinfo_uarch_coll_everest:
return "Coll_Everest";
return "Coll Everest";
case cpuinfo_uarch_coll_sawtooth:
return "Coll_Sawtooth";
return "Coll Sawtooth";
case cpuinfo_uarch_tupai_everest:
return "Tupai_Everest";
return "Tupai Everest";
case cpuinfo_uarch_tupai_sawtooth:
return "Tupai_Sawtooth";
return "Tupai Sawtooth";
case cpuinfo_uarch_tahiti_everest:
return "Tahiti_Everest";
return "Tahiti Everest";
case cpuinfo_uarch_tahiti_sawtooth:
return "Tahiti_Sawtooth";
return "Tahiti Sawtooth";
case cpuinfo_uarch_tilos_everest:
return "Tilos_Everest";
return "Tilos Everest";
case cpuinfo_uarch_tilos_sawtooth:
return "Tilos_Sawtooth";
return "Tilos Sawtooth";
case cpuinfo_uarch_donan_everest:
return "Donan Everest";
case cpuinfo_uarch_donan_sawtooth:
return "Donan Sawtooth";
case cpuinfo_uarch_sotra_super:
return "Sotra Super";
case cpuinfo_uarch_sotra_performance:
return "Sotra Performance";
case cpuinfo_uarch_thunderx:
return "ThunderX";
case cpuinfo_uarch_thunderx2:
Expand Down
Loading