[v1.04][ARM] Add support for M2 Max/Ultra

This commit is contained in:
Dr-Noob
2023-09-02 21:08:43 +01:00
parent 6a5b4c3da4
commit 7d81d895b0
2 changed files with 21 additions and 3 deletions

View File

@@ -359,10 +359,14 @@ struct cpuInfo* get_cpu_info_mach(struct cpuInfo* cpu) {
fill_cpu_info_avalanche_blizzard(cpu, 4, 4); fill_cpu_info_avalanche_blizzard(cpu, 4, 4);
} }
else if(cpu_subfamily == CPUSUBFAMILY_ARM_HS) { else if(cpu_subfamily == CPUSUBFAMILY_ARM_HS) {
// Apple M2 Pro. Detect number of cores // Apple M2 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 == 10 || physicalcpu == 12) { if(physicalcpu == 24) {
// M2 Pro (or Max?) // M2 Ultra
fill_cpu_info_avalanche_blizzard(cpu, 16, 8);
}
else if(physicalcpu == 10 || physicalcpu == 12) {
// M2 Pro/Max
fill_cpu_info_avalanche_blizzard(cpu, physicalcpu-4, 4); fill_cpu_info_avalanche_blizzard(cpu, physicalcpu-4, 4);
} }
else { else {

View File

@@ -773,6 +773,20 @@ struct system_on_chip* guess_soc_apple(struct system_on_chip* soc) {
else if(cpu_subfamily == CPUSUBFAMILY_ARM_HS) { else if(cpu_subfamily == CPUSUBFAMILY_ARM_HS) {
fill_soc(soc, "M2 Pro", SOC_APPLE_M2_PRO, 5); fill_soc(soc, "M2 Pro", SOC_APPLE_M2_PRO, 5);
} }
else if(cpu_subfamily == CPUSUBFAMILY_ARM_HC_HD) {
// Could be M2 Max or M2 Ultra (2x M1 Max)
uint32_t physicalcpu = get_sys_info_by_name("hw.physicalcpu");
if(physicalcpu == 24) {
fill_soc(soc, "M2 Ultra", SOC_APPLE_M2_ULTRA, 5);
}
else if(physicalcpu == 12) {
fill_soc(soc, "M2 Max", SOC_APPLE_M2_MAX, 5);
}
else {
printBug("Found invalid physical cpu number: %d", physicalcpu);
soc->soc_vendor = SOC_VENDOR_UNKNOWN;
}
}
else { else {
printBug("Found invalid cpu_subfamily: 0x%.8X", cpu_subfamily); printBug("Found invalid cpu_subfamily: 0x%.8X", cpu_subfamily);
soc->soc_vendor = SOC_VENDOR_UNKNOWN; soc->soc_vendor = SOC_VENDOR_UNKNOWN;