Enable the EXCAVATOR kernels on AMD PRO A12-9800
This commit is contained in:
parent
60eea75409
commit
d711588cf2
207
cpuid_x86.c
207
cpuid_x86.c
|
@ -1250,64 +1250,70 @@ int get_cpuname(void){
|
||||||
}
|
}
|
||||||
|
|
||||||
if (vendor == VENDOR_AMD){
|
if (vendor == VENDOR_AMD){
|
||||||
switch (family) {
|
/* fprintf(stderr, "Family: %x exfamily: %x model: %x exmodel: %x\n", family, exfamily, model, exmodel ); */
|
||||||
case 0x4:
|
switch (family) {
|
||||||
return CPUTYPE_AMD5X86;
|
case 0x4:
|
||||||
case 0x5:
|
return CPUTYPE_AMD5X86;
|
||||||
return CPUTYPE_AMDK6;
|
case 0x5:
|
||||||
case 0x6:
|
return CPUTYPE_AMDK6;
|
||||||
return CPUTYPE_ATHLON;
|
case 0x6:
|
||||||
case 0xf:
|
return CPUTYPE_ATHLON;
|
||||||
switch (exfamily) {
|
case 0xf:
|
||||||
case 0:
|
switch (exfamily) {
|
||||||
case 2:
|
case 0:
|
||||||
return CPUTYPE_OPTERON;
|
case 2:
|
||||||
case 1:
|
return CPUTYPE_OPTERON;
|
||||||
case 3:
|
case 1:
|
||||||
case 10:
|
case 3:
|
||||||
return CPUTYPE_BARCELONA;
|
case 10:
|
||||||
case 6:
|
return CPUTYPE_BARCELONA;
|
||||||
switch (model) {
|
case 6:
|
||||||
case 1:
|
switch (model) {
|
||||||
//AMD Bulldozer Opteron 6200 / Opteron 4200 / AMD FX-Series
|
case 1:
|
||||||
if(support_avx())
|
//AMD Bulldozer Opteron 6200 / Opteron 4200 / AMD FX-Series
|
||||||
return CPUTYPE_BULLDOZER;
|
if(support_avx())
|
||||||
else
|
return CPUTYPE_BULLDOZER;
|
||||||
return CPUTYPE_BARCELONA; //OS don't support AVX.
|
else
|
||||||
case 2: //AMD Piledriver
|
return CPUTYPE_BARCELONA; //OS don't support AVX.
|
||||||
case 3: //AMD Richland
|
case 2: //AMD Piledriver
|
||||||
if(support_avx())
|
case 3: //AMD Richland
|
||||||
return CPUTYPE_PILEDRIVER;
|
if(support_avx())
|
||||||
else
|
return CPUTYPE_PILEDRIVER;
|
||||||
return CPUTYPE_BARCELONA; //OS don't support AVX.
|
else
|
||||||
case 0:
|
return CPUTYPE_BARCELONA; //OS don't support AVX.
|
||||||
switch(exmodel){
|
case 5: // EXCAVATOR
|
||||||
case 1: //AMD Trinity
|
if(support_avx())
|
||||||
if(support_avx())
|
return CPUTYPE_EXCAVATOR;
|
||||||
return CPUTYPE_PILEDRIVER;
|
else
|
||||||
else
|
return CPUTYPE_BARCELONA; //OS don't support AVX.
|
||||||
return CPUTYPE_BARCELONA; //OS don't support AVX.
|
case 0:
|
||||||
case 3:
|
switch(exmodel){
|
||||||
if(support_avx())
|
case 1: //AMD Trinity
|
||||||
return CPUTYPE_STEAMROLLER;
|
if(support_avx())
|
||||||
else
|
return CPUTYPE_PILEDRIVER;
|
||||||
return CPUTYPE_BARCELONA; //OS don't support AVX.
|
else
|
||||||
|
return CPUTYPE_BARCELONA; //OS don't support AVX.
|
||||||
|
case 3:
|
||||||
|
if(support_avx())
|
||||||
|
return CPUTYPE_STEAMROLLER;
|
||||||
|
else
|
||||||
|
return CPUTYPE_BARCELONA; //OS don't support AVX.
|
||||||
|
|
||||||
case 6:
|
case 6:
|
||||||
if(support_avx())
|
if(support_avx())
|
||||||
return CPUTYPE_EXCAVATOR;
|
return CPUTYPE_EXCAVATOR;
|
||||||
else
|
else
|
||||||
return CPUTYPE_BARCELONA; //OS don't support AVX.
|
return CPUTYPE_BARCELONA; //OS don't support AVX.
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 5:
|
case 5:
|
||||||
return CPUTYPE_BOBCAT;
|
return CPUTYPE_BOBCAT;
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
break;
|
return CPUTYPE_AMD_UNKNOWN;
|
||||||
}
|
|
||||||
return CPUTYPE_AMD_UNKNOWN;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (vendor == VENDOR_CYRIX){
|
if (vendor == VENDOR_CYRIX){
|
||||||
|
@ -1767,52 +1773,57 @@ int get_coretype(void){
|
||||||
}
|
}
|
||||||
|
|
||||||
if (vendor == VENDOR_AMD){
|
if (vendor == VENDOR_AMD){
|
||||||
if (family <= 0x5) return CORE_80486;
|
if (family <= 0x5) return CORE_80486;
|
||||||
if (family <= 0xe) return CORE_ATHLON;
|
if (family <= 0xe) return CORE_ATHLON;
|
||||||
if (family == 0xf){
|
if (family == 0xf){
|
||||||
if ((exfamily == 0) || (exfamily == 2)) return CORE_OPTERON;
|
if ((exfamily == 0) || (exfamily == 2)) return CORE_OPTERON;
|
||||||
else if (exfamily == 5) return CORE_BOBCAT;
|
else if (exfamily == 5) return CORE_BOBCAT;
|
||||||
else if (exfamily == 6) {
|
else if (exfamily == 6) {
|
||||||
switch (model) {
|
switch (model) {
|
||||||
case 1:
|
case 1:
|
||||||
//AMD Bulldozer Opteron 6200 / Opteron 4200 / AMD FX-Series
|
//AMD Bulldozer Opteron 6200 / Opteron 4200 / AMD FX-Series
|
||||||
if(support_avx())
|
if(support_avx())
|
||||||
return CORE_BULLDOZER;
|
return CORE_BULLDOZER;
|
||||||
else
|
else
|
||||||
return CORE_BARCELONA; //OS don't support AVX.
|
return CORE_BARCELONA; //OS don't support AVX.
|
||||||
case 2: //AMD Piledriver
|
case 2: //AMD Piledriver
|
||||||
case 3: //AMD Richland
|
case 3: //AMD Richland
|
||||||
if(support_avx())
|
if(support_avx())
|
||||||
return CORE_PILEDRIVER;
|
return CORE_PILEDRIVER;
|
||||||
else
|
else
|
||||||
return CORE_BARCELONA; //OS don't support AVX.
|
return CORE_BARCELONA; //OS don't support AVX.
|
||||||
|
case 5:
|
||||||
case 0:
|
if(support_avx())
|
||||||
switch(exmodel){
|
return CORE_EXCAVATOR;
|
||||||
case 1: //AMD Trinity
|
else
|
||||||
if(support_avx())
|
return CORE_BARCELONA; //OS don't support AVX.
|
||||||
return CORE_PILEDRIVER;
|
|
||||||
else
|
|
||||||
return CORE_BARCELONA; //OS don't support AVX.
|
|
||||||
|
|
||||||
case 3:
|
case 0:
|
||||||
if(support_avx())
|
switch(exmodel){
|
||||||
return CORE_STEAMROLLER;
|
case 1: //AMD Trinity
|
||||||
else
|
if(support_avx())
|
||||||
return CORE_BARCELONA; //OS don't support AVX.
|
return CORE_PILEDRIVER;
|
||||||
|
else
|
||||||
|
return CORE_BARCELONA; //OS don't support AVX.
|
||||||
|
|
||||||
case 6:
|
case 3:
|
||||||
if(support_avx())
|
if(support_avx())
|
||||||
return CORE_EXCAVATOR;
|
return CORE_STEAMROLLER;
|
||||||
else
|
else
|
||||||
return CORE_BARCELONA; //OS don't support AVX.
|
return CORE_BARCELONA; //OS don't support AVX.
|
||||||
}
|
|
||||||
break;
|
case 6:
|
||||||
}
|
if(support_avx())
|
||||||
|
return CORE_EXCAVATOR;
|
||||||
|
else
|
||||||
|
return CORE_BARCELONA; //OS don't support AVX.
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}else return CORE_BARCELONA;
|
}else return CORE_BARCELONA;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (vendor == VENDOR_CENTAUR) {
|
if (vendor == VENDOR_CENTAUR) {
|
||||||
|
|
Loading…
Reference in New Issue