@@ -809,7 +809,7 @@ static std::set<CPUID> get_cpuinfo(void)
809
809
static CPU get_cpu_name (CPUID cpuid)
810
810
{
811
811
switch (cpuid.implementer ) {
812
- case 0x41 : // ARM
812
+ case 0x41 : // 'A': ARM
813
813
switch (cpuid.part ) {
814
814
case 0xb02 : return CPU::arm_mpcore;
815
815
case 0xb36 : return CPU::arm_1136jf_s;
@@ -856,13 +856,14 @@ static CPU get_cpu_name(CPUID cpuid)
856
856
case 0xd4a : return CPU::arm_neoverse_e1;
857
857
default : return CPU::generic;
858
858
}
859
- case 0x42 : // Broadcom (Cavium)
859
+ case 0x42 : // 'B': Broadcom (Cavium)
860
860
switch (cpuid.part ) {
861
+ // case 0x00f: return CPU::broadcom_brahma_b15;
861
862
// case 0x100: return CPU::broadcom_brahma_b53;
862
863
case 0x516 : return CPU::cavium_thunderx2t99p1;
863
864
default : return CPU::generic;
864
865
}
865
- case 0x43 : // Cavium
866
+ case 0x43 : // 'C': Cavium
866
867
switch (cpuid.part ) {
867
868
case 0xa0 : return CPU::cavium_thunderx;
868
869
case 0xa1 :
@@ -881,73 +882,87 @@ static CPU get_cpu_name(CPUID cpuid)
881
882
case 0xb8 : return CPU::marvell_thunderx3t110;
882
883
default : return CPU::generic;
883
884
}
884
- case 0x46 : // Fujitsu
885
+ case 0x46 : // 'F': Fujitsu
885
886
switch (cpuid.part ) {
886
887
case 0x1 : return CPU::fujitsu_a64fx;
887
888
default : return CPU::generic;
888
889
}
889
- case 0x48 : // HiSilicon
890
+ case 0x48 : // 'H': HiSilicon
890
891
switch (cpuid.part ) {
891
892
case 0xd01 : return CPU::hisilicon_tsv110;
893
+ case 0xd40 : return CPU::arm_cortex_a76; // Kirin 980
892
894
default : return CPU::generic;
893
895
}
894
- case 0x4e : // NVIDIA
896
+ case 0x4e : // 'N': NVIDIA
895
897
switch (cpuid.part ) {
896
898
case 0x000 : return CPU::nvidia_denver1;
897
899
case 0x003 : return CPU::nvidia_denver2;
898
900
case 0x004 : return CPU::nvidia_carmel;
899
901
default : return CPU::generic;
900
902
}
901
- case 0x50 : // AppliedMicro
903
+ case 0x50 : // 'P': AppliedMicro
902
904
// x-gene 2
903
905
// x-gene 3
904
906
switch (cpuid.part ) {
905
907
case 0x000 : return CPU::apm_xgene1;
906
908
default : return CPU::generic;
907
909
}
908
- case 0x51 : // Qualcomm
910
+ case 0x51 : // 'Q': Qualcomm
909
911
switch (cpuid.part ) {
910
912
case 0x00f :
911
913
case 0x02d :
912
914
return CPU::qualcomm_scorpion;
913
915
case 0x04d :
914
916
case 0x06f :
915
917
return CPU::qualcomm_krait;
916
- case 0x201 :
917
- case 0x205 :
918
- case 0x211 :
918
+ case 0x201 : // silver
919
+ case 0x205 : // gold
920
+ case 0x211 : // silver
919
921
return CPU::qualcomm_kyro;
920
- case 0x800 :
921
- case 0x801 :
922
- case 0x802 :
923
- case 0x803 :
924
- case 0x804 :
925
- case 0x805 :
926
- return CPU::arm_cortex_a73; // second-generation Kryo
922
+ // kryo 2xx
923
+ case 0x800 : // gold
924
+ return CPU::arm_cortex_a73;
925
+ case 0x801 : // silver
926
+ return CPU::arm_cortex_a53;
927
+ // kryo 3xx
928
+ case 0x802 : // gold
929
+ return CPU::arm_cortex_a75;
930
+ case 0x803 : // silver
931
+ return CPU::arm_cortex_a55;
932
+ // kryo 4xx
933
+ case 0x804 : // gold
934
+ return CPU::arm_cortex_a76;
935
+ case 0x805 : // silver
936
+ return CPU::arm_cortex_a55;
937
+ // kryo 5xx seems to be using ID for cortex-a77 directly
927
938
case 0xc00 :
928
939
return CPU::qualcomm_falkor;
929
940
case 0xc01 :
930
941
return CPU::qualcomm_saphira;
931
942
default : return CPU::generic;
932
943
}
933
- case 0x53 : // Samsung
934
- if (cpuid.part == 1 )
944
+ case 0x53 : // 'S': Samsung
945
+ if (cpuid.part == 1 ) {
946
+ if (cpuid.variant == 4 )
947
+ return CPU::samsung_exynos_m2;
935
948
return CPU::samsung_exynos_m1;
949
+ }
936
950
if (cpuid.variant != 1 )
937
951
return CPU::generic;
938
952
switch (cpuid.part ) {
939
953
case 0x2 : return CPU::samsung_exynos_m3;
940
954
case 0x3 : return CPU::samsung_exynos_m4;
955
+ case 0x4 : return CPU::samsung_exynos_m5;
941
956
default : return CPU::generic;
942
957
}
943
- case 0x56 : // Marvell
958
+ case 0x56 : // 'V': Marvell
944
959
switch (cpuid.part ) {
945
960
case 0x581 :
946
961
case 0x584 :
947
962
return CPU::marvell_pj4;
948
963
default : return CPU::generic;
949
964
}
950
- case 0x61 : // Apple
965
+ case 0x61 : // 'a': Apple
951
966
// https://opensource.apple.com/source/xnu/xnu-6153.81.5/osfmk/arm/cpuid.h.auto.html
952
967
switch (cpuid.part ) {
953
968
case 0x0 : // Swift
@@ -978,12 +993,12 @@ static CPU get_cpu_name(CPUID cpuid)
978
993
return CPU::apple_a13;
979
994
default : return CPU::generic;
980
995
}
981
- case 0x68 : // Huaxintong Semiconductor
996
+ case 0x68 : // 'h': Huaxintong Semiconductor
982
997
switch (cpuid.part ) {
983
998
case 0x0 : return CPU::hxt_phecda;
984
999
default : return CPU::generic;
985
1000
}
986
- case 0x69 : // Intel
1001
+ case 0x69 : // 'i': Intel
987
1002
switch (cpuid.part ) {
988
1003
case 0x001 : return CPU::intel_3735d;
989
1004
default : return CPU::generic;
0 commit comments