mirror of
https://github.com/Dr-Noob/cpufetch.git
synced 2026-03-25 07:50:40 +01:00
[v1.02][ARM] Add support for M1 Ultra
This commit is contained in:
@@ -287,13 +287,20 @@ struct cpuInfo* get_cpu_info_mach(struct cpuInfo* cpu) {
|
|||||||
fill_cpu_info_firestorm_icestorm(cpu, 4, 4);
|
fill_cpu_info_firestorm_icestorm(cpu, 4, 4);
|
||||||
}
|
}
|
||||||
else if(cpu_subfamily == CPUSUBFAMILY_ARM_HS || cpu_subfamily == CPUSUBFAMILY_ARM_HC_HD) {
|
else if(cpu_subfamily == CPUSUBFAMILY_ARM_HS || cpu_subfamily == CPUSUBFAMILY_ARM_HC_HD) {
|
||||||
// Apple M1 Pro/Max. Detect number of cores
|
// Apple M1 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 < 8 || physicalcpu > 10) {
|
if(physicalcpu == 20) {
|
||||||
printBug("Found invalid physicalcpu: 0x%.8X", physicalcpu);
|
// M1 Ultra
|
||||||
|
fill_cpu_info_firestorm_icestorm(cpu, 16, 4);
|
||||||
|
}
|
||||||
|
else if(physicalcpu == 8 || physicalcpu == 10) {
|
||||||
|
// M1 Pro/Max
|
||||||
|
fill_cpu_info_firestorm_icestorm(cpu, physicalcpu-2, 2);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
printBug("Found invalid physical cpu number: %d", physicalcpu);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
fill_cpu_info_firestorm_icestorm(cpu, physicalcpu-2, 2);
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
printBug("Found invalid cpu_subfamily: 0x%.8X", cpu_subfamily);
|
printBug("Found invalid cpu_subfamily: 0x%.8X", cpu_subfamily);
|
||||||
|
|||||||
@@ -649,6 +649,7 @@ struct system_on_chip* guess_soc_raspbery_pi(struct system_on_chip* soc) {
|
|||||||
#if defined(__APPLE__) || defined(__MACH__)
|
#if defined(__APPLE__) || defined(__MACH__)
|
||||||
struct system_on_chip* guess_soc_apple(struct system_on_chip* soc) {
|
struct system_on_chip* guess_soc_apple(struct system_on_chip* soc) {
|
||||||
uint32_t cpu_subfamily = get_sys_info_by_name("hw.cpusubfamily");
|
uint32_t cpu_subfamily = get_sys_info_by_name("hw.cpusubfamily");
|
||||||
|
|
||||||
if(cpu_subfamily == CPUSUBFAMILY_ARM_HG) {
|
if(cpu_subfamily == CPUSUBFAMILY_ARM_HG) {
|
||||||
fill_soc(soc, "M1", SOC_APPLE_M1, 5);
|
fill_soc(soc, "M1", SOC_APPLE_M1, 5);
|
||||||
}
|
}
|
||||||
@@ -656,8 +657,23 @@ struct system_on_chip* guess_soc_apple(struct system_on_chip* soc) {
|
|||||||
fill_soc(soc, "M1 Pro", SOC_APPLE_M1_PRO, 5);
|
fill_soc(soc, "M1 Pro", SOC_APPLE_M1_PRO, 5);
|
||||||
}
|
}
|
||||||
else if(cpu_subfamily == CPUSUBFAMILY_ARM_HC_HD) {
|
else if(cpu_subfamily == CPUSUBFAMILY_ARM_HC_HD) {
|
||||||
|
// Could be M1 Max or M1 Ultra (2x M1 Max)
|
||||||
|
uint32_t physicalcpu = get_sys_info_by_name("hw.physicalcpu");
|
||||||
|
if(physicalcpu == 20) {
|
||||||
|
fill_soc(soc, "M1 Ultra", SOC_APPLE_M1_ULTRA, 5);
|
||||||
|
}
|
||||||
|
else if(physicalcpu == 10) {
|
||||||
fill_soc(soc, "M1 Max", SOC_APPLE_M1_MAX, 5);
|
fill_soc(soc, "M1 Max", SOC_APPLE_M1_MAX, 5);
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
printBug("Found invalid physical cpu number: %d", physicalcpu);
|
||||||
|
soc->soc_vendor = SOC_VENDOR_UNKNOWN;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
printBug("Found invalid cpu_subfamily: 0x%.8X", cpu_subfamily);
|
||||||
|
soc->soc_vendor = SOC_VENDOR_UNKNOWN;
|
||||||
|
}
|
||||||
return soc;
|
return soc;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -256,6 +256,7 @@ enum {
|
|||||||
SOC_APPLE_M1,
|
SOC_APPLE_M1,
|
||||||
SOC_APPLE_M1_PRO,
|
SOC_APPLE_M1_PRO,
|
||||||
SOC_APPLE_M1_MAX,
|
SOC_APPLE_M1_MAX,
|
||||||
|
SOC_APPLE_M1_ULTRA,
|
||||||
// ALLWINNER
|
// ALLWINNER
|
||||||
SOC_ALLWINNER_A10,
|
SOC_ALLWINNER_A10,
|
||||||
SOC_ALLWINNER_A13,
|
SOC_ALLWINNER_A13,
|
||||||
@@ -288,7 +289,7 @@ inline static VENDOR get_soc_vendor_from_soc(SOC soc) {
|
|||||||
else if(soc >= SOC_EXYNOS_3475 && soc <= SOC_EXYNOS_880) return SOC_VENDOR_EXYNOS;
|
else if(soc >= SOC_EXYNOS_3475 && soc <= SOC_EXYNOS_880) return SOC_VENDOR_EXYNOS;
|
||||||
else if(soc >= SOC_MTK_MT6893 && soc <= SOC_MTK_MT8783) return SOC_VENDOR_MEDIATEK;
|
else if(soc >= SOC_MTK_MT6893 && soc <= SOC_MTK_MT8783) return SOC_VENDOR_MEDIATEK;
|
||||||
else if(soc >= SOC_SNAPD_QSD8650 && soc <= SOC_SNAPD_SM8350) return SOC_VENDOR_SNAPDRAGON;
|
else if(soc >= SOC_SNAPD_QSD8650 && soc <= SOC_SNAPD_SM8350) return SOC_VENDOR_SNAPDRAGON;
|
||||||
else if(soc >= SOC_APPLE_M1 && soc <= SOC_APPLE_M1_MAX) return SOC_VENDOR_APPLE;
|
else if(soc >= SOC_APPLE_M1 && soc <= SOC_APPLE_M1_ULTRA) return SOC_VENDOR_APPLE;
|
||||||
else if(soc >= SOC_ALLWINNER_A10 && soc <= SOC_ALLWINNER_R328) return SOC_VENDOR_ALLWINNER;
|
else if(soc >= SOC_ALLWINNER_A10 && soc <= SOC_ALLWINNER_R328) return SOC_VENDOR_ALLWINNER;
|
||||||
return SOC_VENDOR_UNKNOWN;
|
return SOC_VENDOR_UNKNOWN;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user