x86/cpu/centaur: Add Centaur family >=7 CPUs initialization support
authorTony W Wang-oc <TonyWWang-oc@zhaoxin.com>
Tue, 8 Sep 2020 10:57:46 +0000 (18:57 +0800)
committerBorislav Petkov <bp@suse.de>
Fri, 11 Sep 2020 08:53:19 +0000 (10:53 +0200)
Add Centaur family >=7 CPUs specific initialization support.

Signed-off-by: Tony W Wang-oc <TonyWWang-oc@zhaoxin.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
Link: https://lkml.kernel.org/r/1599562666-31351-3-git-send-email-TonyWWang-oc@zhaoxin.com
arch/x86/kernel/cpu/centaur.c

index 5f811586a23cfbf4b4b73955fc3124bd22fdaf64..345f7d905db677291f7f8eb9b33b692263afe447 100644 (file)
@@ -65,6 +65,9 @@ static void init_c3(struct cpuinfo_x86 *c)
                c->x86_cache_alignment = c->x86_clflush_size * 2;
                set_cpu_cap(c, X86_FEATURE_REP_GOOD);
        }
+
+       if (c->x86 >= 7)
+               set_cpu_cap(c, X86_FEATURE_REP_GOOD);
 }
 
 enum {
@@ -95,7 +98,8 @@ static void early_init_centaur(struct cpuinfo_x86 *c)
        if (c->x86 == 5)
                set_cpu_cap(c, X86_FEATURE_CENTAUR_MCR);
 #endif
-       if (c->x86 == 6 && c->x86_model >= 0xf)
+       if ((c->x86 == 6 && c->x86_model >= 0xf) ||
+           (c->x86 >= 7))
                set_cpu_cap(c, X86_FEATURE_CONSTANT_TSC);
 
 #ifdef CONFIG_X86_64
@@ -204,7 +208,7 @@ static void init_centaur(struct cpuinfo_x86 *c)
                sprintf(c->x86_model_id, "WinChip %s", name);
        }
 #endif
-       if (c->x86 == 6)
+       if (c->x86 == 6 || c->x86 >= 7)
                init_c3(c);
 #ifdef CONFIG_X86_64
        set_cpu_cap(c, X86_FEATURE_LFENCE_RDTSC);