system: Improve AMD CPU detection

* Several CPUID's were thrown into the Athlon 64
  catch all.  Add Sempron 64 and correct CPUIDs
  solves #9553
* Add better AMD A-Series detection
This commit is contained in:
Alexander von Gluck IV 2014-01-14 20:08:30 -06:00
parent e326520241
commit 7c28f77332
2 changed files with 18 additions and 8 deletions

View File

@ -564,16 +564,21 @@ typedef enum cpu_types {
B_CPU_AMD_ATHLON_64_MODEL_23 = 0x111f7,
B_CPU_AMD_ATHLON_64_MODEL_24 = 0x111f8,
B_CPU_AMD_ATHLON_64_MODEL_27 = 0x111fb,
B_CPU_AMD_ATHLON_64_MODEL_28 = 0x111fc,
// Athlon 64's below here could be really
// Sempron 64's... however i've yet to find
// proof online
B_CPU_AMD_ATHLON_64_MODEL_31 = 0x111ff,
B_CPU_AMD_ATHLON_64_MODEL_35 = 0x211f3,
B_CPU_AMD_ATHLON_64_MODEL_43 = 0x211fb,
B_CPU_AMD_ATHLON_64_MODEL_44 = 0x211fc,
B_CPU_AMD_ATHLON_64_MODEL_47 = 0x211ff,
B_CPU_AMD_ATHLON_64_MODEL_63 = 0x311ff,
B_CPU_AMD_ATHLON_64_MODEL_79 = 0x411ff,
B_CPU_AMD_ATHLON_64_MODEL_95 = 0x511ff,
B_CPU_AMD_ATHLON_64_MODEL_127 = 0x711ff,
B_CPU_AMD_SEMPRON_64_MODEL_28 = 0x111fc,
B_CPU_AMD_SEMPRON_64_MODEL_44 = 0x211fc,
B_CPU_AMD_SEMPRON_64_MODEL_127 = 0x711ff,
B_CPU_AMD_OPTERON_MODEL_5 = 0x11f5,
B_CPU_AMD_OPTERON_MODEL_21 = 0x111f5,
@ -593,7 +598,9 @@ typedef enum cpu_types {
B_CPU_AMD_PHENOM_II_MODEL_10 = 0x1011fa,
// Family 12h
B_CPU_AMD_A_SERIES = 0x3011f1,
B_CPU_AMD_A_SERIES_MODEL_1 = 0x3011f1,
B_CPU_AMD_A_SERIES_MODEL_16 = 0x6111f0,
B_CPU_AMD_A_SERIES_MODEL_19 = 0x6111f3,
// Family 14h
B_CPU_AMD_C_SERIES = 0x5011f1,

View File

@ -385,6 +385,10 @@ get_cpu_model_string(const system_info *info)
return "Athlon XP";
case B_CPU_AMD_DURON:
return "Duron";
case B_CPU_AMD_SEMPRON_64_MODEL_28:
case B_CPU_AMD_SEMPRON_64_MODEL_44:
case B_CPU_AMD_SEMPRON_64_MODEL_127:
return "Sempron 64";
case B_CPU_AMD_ATHLON_64_MODEL_3:
case B_CPU_AMD_ATHLON_64_MODEL_4:
case B_CPU_AMD_ATHLON_64_MODEL_7:
@ -397,16 +401,13 @@ get_cpu_model_string(const system_info *info)
case B_CPU_AMD_ATHLON_64_MODEL_23:
case B_CPU_AMD_ATHLON_64_MODEL_24:
case B_CPU_AMD_ATHLON_64_MODEL_27:
case B_CPU_AMD_ATHLON_64_MODEL_28:
case B_CPU_AMD_ATHLON_64_MODEL_31:
case B_CPU_AMD_ATHLON_64_MODEL_35:
case B_CPU_AMD_ATHLON_64_MODEL_43:
case B_CPU_AMD_ATHLON_64_MODEL_44:
case B_CPU_AMD_ATHLON_64_MODEL_47:
case B_CPU_AMD_ATHLON_64_MODEL_63:
case B_CPU_AMD_ATHLON_64_MODEL_79:
case B_CPU_AMD_ATHLON_64_MODEL_95:
case B_CPU_AMD_ATHLON_64_MODEL_127:
return "Athlon 64";
case B_CPU_AMD_OPTERON_MODEL_5:
case B_CPU_AMD_OPTERON_MODEL_21:
@ -428,7 +429,9 @@ get_cpu_model_string(const system_info *info)
if (strcasestr(cpuidName, "Athlon") != NULL)
return "Athlon II";
return "Phenom II";
case B_CPU_AMD_A_SERIES:
case B_CPU_AMD_A_SERIES_MODEL_1:
case B_CPU_AMD_A_SERIES_MODEL_16:
case B_CPU_AMD_A_SERIES_MODEL_19:
return "A-Series";
case B_CPU_AMD_C_SERIES:
return "C-Series";