Support Zhaoxin/Centaur kh40000 as ZEN

Signed-off-by: JonasZhou <JonasZhou@zhaoxin.com>
This commit is contained in:
JonasZhou 2022-03-04 17:14:52 +08:00
parent 1ef97c470c
commit 2d0ad89b0d
2 changed files with 75 additions and 6 deletions

View File

@ -1707,8 +1707,18 @@ int get_cpuname(void){
if (model == 0xf && stepping < 0xe) if (model == 0xf && stepping < 0xe)
return CPUTYPE_NANO; return CPUTYPE_NANO;
return CPUTYPE_NEHALEM; return CPUTYPE_NEHALEM;
case 0x7:
switch (exmodel) {
case 5:
if (support_avx2())
return CPUTYPE_ZEN;
else
return CPUTYPE_DUNNINGTON;
default: default:
if (family >= 0x7) return CPUTYPE_NEHALEM;
}
default:
if (family >= 0x8)
return CPUTYPE_NEHALEM; return CPUTYPE_NEHALEM;
else else
return CPUTYPE_VIAC3; return CPUTYPE_VIAC3;
@ -1716,8 +1726,21 @@ int get_cpuname(void){
} }
if (vendor == VENDOR_ZHAOXIN){ if (vendor == VENDOR_ZHAOXIN){
switch (family) {
case 0x7:
switch (exmodel) {
case 5:
if (support_avx2())
return CPUTYPE_ZEN;
else
return CPUTYPE_DUNNINGTON;
default:
return CPUTYPE_NEHALEM; return CPUTYPE_NEHALEM;
} }
default:
return CPUTYPE_NEHALEM;
}
}
if (vendor == VENDOR_RISE){ if (vendor == VENDOR_RISE){
switch (family) { switch (family) {
@ -2416,8 +2439,18 @@ int get_coretype(void){
if (model == 0xf && stepping < 0xe) if (model == 0xf && stepping < 0xe)
return CORE_NANO; return CORE_NANO;
return CORE_NEHALEM; return CORE_NEHALEM;
case 0x7:
switch (exmodel) {
case 5:
if (support_avx2())
return CORE_ZEN;
else
return CORE_DUNNINGTON;
default: default:
if (family >= 0x7) return CORE_NEHALEM;
}
default:
if (family >= 0x8)
return CORE_NEHALEM; return CORE_NEHALEM;
else else
return CORE_VIAC3; return CORE_VIAC3;
@ -2425,8 +2458,21 @@ int get_coretype(void){
} }
if (vendor == VENDOR_ZHAOXIN) { if (vendor == VENDOR_ZHAOXIN) {
switch (family) {
case 0x7:
switch (exmodel) {
case 5:
if (support_avx2())
return CORE_ZEN;
else
return CORE_DUNNINGTON;
default:
return CORE_NEHALEM; return CORE_NEHALEM;
} }
default:
return CORE_NEHALEM;
}
}
return CORE_UNKNOWN; return CORE_UNKNOWN;
} }

View File

@ -875,15 +875,38 @@ static gotoblas_t *get_coretype(void){
if (model == 0xf && stepping < 0xe) if (model == 0xf && stepping < 0xe)
return &gotoblas_NANO; return &gotoblas_NANO;
return &gotoblas_NEHALEM; return &gotoblas_NEHALEM;
case 0x7:
switch (exmodel) {
case 5:
if (support_avx2())
return &gotoblas_ZEN;
else
return &gotoblas_DUNNINGTON;
default: default:
if (family >= 0x7) return &gotoblas_NEHALEM;
}
default:
if (family >= 0x8)
return &gotoblas_NEHALEM; return &gotoblas_NEHALEM;
} }
} }
if (vendor == VENDOR_ZHAOXIN) { if (vendor == VENDOR_ZHAOXIN) {
switch (family) {
case 0x7:
switch (exmodel) {
case 5:
if (support_avx2())
return &gotoblas_ZEN;
else
return &gotoblas_DUNNINGTON;
default:
return &gotoblas_NEHALEM; return &gotoblas_NEHALEM;
} }
default:
return &gotoblas_NEHALEM;
}
}
return NULL; return NULL;
} }