mirror of
https://github.com/Dr-Noob/cpufetch.git
synced 2026-03-25 07:50:40 +01:00
[v1.04][ARM] Some M3 fixes
This commit is contained in:
@@ -416,29 +416,22 @@ struct cpuInfo* get_cpu_info_mach(struct cpuInfo* cpu) {
|
|||||||
cpu->soc = get_soc();
|
cpu->soc = get_soc();
|
||||||
cpu->peak_performance = get_peak_performance(cpu);
|
cpu->peak_performance = get_peak_performance(cpu);
|
||||||
}
|
}
|
||||||
else if(cpu_family == CPUFAMILY_ARM_EVEREST_SAWTOOTH) {
|
else if(cpu_family == CPUFAMILY_ARM_EVEREST_SAWTOOTH ||
|
||||||
|
cpu_family == CPUFAMILY_ARM_EVEREST_SAWTOOTH_PRO ||
|
||||||
|
cpu_family == CPUFAMILY_ARM_EVEREST_SAWTOOTH_MAX) {
|
||||||
cpu->num_cpus = 2;
|
cpu->num_cpus = 2;
|
||||||
// Now detect the M3 version
|
// Now detect the M3 version
|
||||||
uint32_t cpu_subfamily = get_sys_info_by_name("hw.cpusubfamily");
|
if(cpu_family == CPUFAMILY_ARM_EVEREST_SAWTOOTH) {
|
||||||
if(cpu_subfamily == CPUSUBFAMILY_ARM_HG) {
|
|
||||||
// Apple M3
|
// Apple M3
|
||||||
fill_cpu_info_everest_sawtooth(cpu, 4, 4);
|
fill_cpu_info_everest_sawtooth(cpu, 4, 4);
|
||||||
}
|
}
|
||||||
else if(cpu_subfamily == CPUSUBFAMILY_ARM_HS) {
|
else if(cpu_subfamily == CPUFAMILY_ARM_EVEREST_SAWTOOTH_PRO) {
|
||||||
// Apple M3 Pro/Max/Ultra. Detect number of cores
|
|
||||||
uint32_t physicalcpu = get_sys_info_by_name("hw.physicalcpu");
|
uint32_t physicalcpu = get_sys_info_by_name("hw.physicalcpu");
|
||||||
if(physicalcpu == 11 || physicalcpu == 12) {
|
fill_cpu_info_everest_sawtooth(cpu, physicalcpu-6, 6);
|
||||||
// M3 Pro
|
}
|
||||||
fill_cpu_info_everest_sawtooth(cpu, physicalcpu-6, 6);
|
else if(cpu_subfamily == CPUFAMILY_ARM_EVEREST_SAWTOOTH_MAX) {
|
||||||
}
|
uint32_t physicalcpu = get_sys_info_by_name("hw.physicalcpu");
|
||||||
else if(physicalcpu >= 14 && physicalcpu <= 16) {
|
fill_cpu_info_everest_sawtooth(cpu, physicalcpu-4, 4);
|
||||||
// M3 Max
|
|
||||||
fill_cpu_info_everest_sawtooth(cpu, physicalcpu-4, 4);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
printBug("Found invalid physical cpu number: %d", physicalcpu);
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
printBug("Found invalid cpu_subfamily: 0x%.8X", cpu_subfamily);
|
printBug("Found invalid cpu_subfamily: 0x%.8X", cpu_subfamily);
|
||||||
|
|||||||
@@ -9,8 +9,8 @@
|
|||||||
#define MIDR_APPLE_M2_BLIZZARD 0x610F0300
|
#define MIDR_APPLE_M2_BLIZZARD 0x610F0300
|
||||||
#define MIDR_APPLE_M2_AVALANCHE 0x610F0310
|
#define MIDR_APPLE_M2_AVALANCHE 0x610F0310
|
||||||
// https://github.com/AsahiLinux/m1n1/blob/main/src/chickens.c
|
// https://github.com/AsahiLinux/m1n1/blob/main/src/chickens.c
|
||||||
#define MIDR_APPLE_M2_SAWTOOTH 0x610F0480
|
#define MIDR_APPLE_M3_SAWTOOTH 0x610F0480
|
||||||
#define MIDR_APPLE_M2_EVEREST 0x610F0490
|
#define MIDR_APPLE_M3_EVEREST 0x610F0490
|
||||||
|
|
||||||
// M1 / A14
|
// M1 / A14
|
||||||
#ifndef CPUFAMILY_ARM_FIRESTORM_ICESTORM
|
#ifndef CPUFAMILY_ARM_FIRESTORM_ICESTORM
|
||||||
@@ -21,9 +21,11 @@
|
|||||||
#define CPUFAMILY_ARM_AVALANCHE_BLIZZARD 0xDA33D83D
|
#define CPUFAMILY_ARM_AVALANCHE_BLIZZARD 0xDA33D83D
|
||||||
#endif
|
#endif
|
||||||
// M3 / A16 / A17
|
// M3 / A16 / A17
|
||||||
#ifndef CPUFAMILY_ARM_EVEREST_SAWTOOTH
|
// https://ratfactor.com/zig/stdlib-browseable2/c/darwin.zig.html
|
||||||
#define CPUFAMILY_ARM_EVEREST_SAWTOOTH 0x72015832
|
// https://github.com/Dr-Noob/cpufetch/issues/210
|
||||||
#endif
|
#define CPUFAMILY_ARM_EVEREST_SAWTOOTH 0x8765EDEA
|
||||||
|
#define CPUFAMILY_ARM_EVEREST_SAWTOOTH_PRO 0x5F4DEA93
|
||||||
|
#define CPUFAMILY_ARM_EVEREST_SAWTOOTH_MAX 0x72015832
|
||||||
|
|
||||||
// For detecting different M1 types
|
// For detecting different M1 types
|
||||||
// NOTE: Could also be achieved detecting different
|
// NOTE: Could also be achieved detecting different
|
||||||
|
|||||||
Reference in New Issue
Block a user