Lines Matching refs:c

90 static void init_amd_k5(struct cpuinfo_x86 *c)  in init_amd_k5()  argument
102 if (c->x86_model == 9 || c->x86_model == 10) { in init_amd_k5()
109 static void init_amd_k6(struct cpuinfo_x86 *c) in init_amd_k6() argument
115 if (c->x86_model < 6) { in init_amd_k6()
117 if (c->x86_model == 0) { in init_amd_k6()
118 clear_cpu_cap(c, X86_FEATURE_APIC); in init_amd_k6()
119 set_cpu_cap(c, X86_FEATURE_PGE); in init_amd_k6()
124 if (c->x86_model == 6 && c->x86_stepping == 1) { in init_amd_k6()
153 if (c->x86_model < 8 || in init_amd_k6()
154 (c->x86_model == 8 && c->x86_stepping < 8)) { in init_amd_k6()
173 if ((c->x86_model == 8 && c->x86_stepping > 7) || in init_amd_k6()
174 c->x86_model == 9 || c->x86_model == 13) { in init_amd_k6()
195 if (c->x86_model == 10) { in init_amd_k6()
203 static void init_amd_k7(struct cpuinfo_x86 *c) in init_amd_k7() argument
213 if (c->x86_model >= 6 && c->x86_model <= 10) { in init_amd_k7()
214 if (!cpu_has(c, X86_FEATURE_XMM)) { in init_amd_k7()
217 set_cpu_cap(c, X86_FEATURE_XMM); in init_amd_k7()
226 if ((c->x86_model == 8 && c->x86_stepping >= 1) || (c->x86_model > 8)) { in init_amd_k7()
236 if (!c->cpu_index) in init_amd_k7()
244 if ((c->x86_model == 6) && ((c->x86_stepping == 0) || in init_amd_k7()
245 (c->x86_stepping == 1))) in init_amd_k7()
249 if ((c->x86_model == 7) && (c->x86_stepping == 0)) in init_amd_k7()
259 if (((c->x86_model == 6) && (c->x86_stepping >= 2)) || in init_amd_k7()
260 ((c->x86_model == 7) && (c->x86_stepping >= 1)) || in init_amd_k7()
261 (c->x86_model > 7)) in init_amd_k7()
262 if (cpu_has(c, X86_FEATURE_MP)) in init_amd_k7()
300 static void srat_detect_node(struct cpuinfo_x86 *c) in srat_detect_node() argument
305 unsigned apicid = c->topo.apicid; in srat_detect_node()
317 x86_cpuinit.fixup_cpu_id(c, node); in srat_detect_node()
339 int ht_nodeid = c->topo.initial_apicid; in srat_detect_node()
351 static void bsp_determine_snp(struct cpuinfo_x86 *c) in bsp_determine_snp() argument
356 if (cpu_has(c, X86_FEATURE_SEV_SNP)) { in bsp_determine_snp()
364 if (!cpu_has(c, X86_FEATURE_HYPERVISOR) && in bsp_determine_snp()
378 static void bsp_init_amd(struct cpuinfo_x86 *c) in bsp_init_amd() argument
380 if (cpu_has(c, X86_FEATURE_CONSTANT_TSC)) { in bsp_init_amd()
382 if (c->x86 > 0x10 || in bsp_init_amd()
383 (c->x86 == 0x10 && c->x86_model >= 0x2)) { in bsp_init_amd()
392 if (c->x86 == 0x15) { in bsp_init_amd()
407 if (cpu_has(c, X86_FEATURE_MWAITX)) in bsp_init_amd()
412 c->x86 >= 0x15 && c->x86 <= 0x17) { in bsp_init_amd()
415 switch (c->x86) { in bsp_init_amd()
432 resctrl_cpu_detect(c); in bsp_init_amd()
435 switch (c->x86) { in bsp_init_amd()
437 switch (c->x86_model) { in bsp_init_amd()
454 switch (c->x86_model) { in bsp_init_amd()
469 switch (c->x86_model) { in bsp_init_amd()
489 bsp_determine_snp(c); in bsp_init_amd()
493 WARN_ONCE(1, "Family 0x%x, model: 0x%x??\n", c->x86, c->x86_model); in bsp_init_amd()
496 static void early_detect_mem_encrypt(struct cpuinfo_x86 *c) in early_detect_mem_encrypt() argument
514 if (cpu_has(c, X86_FEATURE_SME) || cpu_has(c, X86_FEATURE_SEV)) { in early_detect_mem_encrypt()
525 c->x86_phys_bits -= (cpuid_ebx(0x8000001f) >> 6) & 0x3f; in early_detect_mem_encrypt()
548 static void early_init_amd(struct cpuinfo_x86 *c) in early_init_amd() argument
552 if (c->x86 >= 0xf) in early_init_amd()
553 set_cpu_cap(c, X86_FEATURE_K8); in early_init_amd()
555 rdmsr_safe(MSR_AMD64_PATCH_LEVEL, &c->microcode, &dummy); in early_init_amd()
561 if (c->x86_power & (1 << 8)) { in early_init_amd()
562 set_cpu_cap(c, X86_FEATURE_CONSTANT_TSC); in early_init_amd()
563 set_cpu_cap(c, X86_FEATURE_NONSTOP_TSC); in early_init_amd()
567 if (c->x86_power & BIT(12)) in early_init_amd()
568 set_cpu_cap(c, X86_FEATURE_ACC_POWER); in early_init_amd()
571 if (c->x86_power & BIT(14)) in early_init_amd()
572 set_cpu_cap(c, X86_FEATURE_RAPL); in early_init_amd()
575 set_cpu_cap(c, X86_FEATURE_SYSCALL32); in early_init_amd()
578 if (c->x86 == 5) in early_init_amd()
579 if (c->x86_model == 13 || c->x86_model == 9 || in early_init_amd()
580 (c->x86_model == 8 && c->x86_stepping >= 8)) in early_init_amd()
581 set_cpu_cap(c, X86_FEATURE_K6_MTRR); in early_init_amd()
591 if (c->x86 > 0x16) in early_init_amd()
592 set_cpu_cap(c, X86_FEATURE_EXTD_APICID); in early_init_amd()
593 else if (c->x86 >= 0xf) { in early_init_amd()
599 set_cpu_cap(c, X86_FEATURE_EXTD_APICID); in early_init_amd()
609 set_cpu_cap(c, X86_FEATURE_VMMCALL); in early_init_amd()
612 if (c->x86 == 0x16 && c->x86_model <= 0xf) in early_init_amd()
615 early_detect_mem_encrypt(c); in early_init_amd()
617 if (!cpu_has(c, X86_FEATURE_HYPERVISOR) && !cpu_has(c, X86_FEATURE_IBPB_BRTYPE)) { in early_init_amd()
618 if (c->x86 == 0x17 && boot_cpu_has(X86_FEATURE_AMD_IBPB)) in early_init_amd()
620 else if (c->x86 >= 0x19 && !wrmsrl_safe(MSR_IA32_PRED_CMD, PRED_CMD_SBPB)) { in early_init_amd()
627 static void init_amd_k8(struct cpuinfo_x86 *c) in init_amd_k8() argument
635 set_cpu_cap(c, X86_FEATURE_REP_GOOD); in init_amd_k8()
642 …if (c->x86_model < 0x14 && cpu_has(c, X86_FEATURE_LAHF_LM) && !cpu_has(c, X86_FEATURE_HYPERVISOR))… in init_amd_k8()
643 clear_cpu_cap(c, X86_FEATURE_LAHF_LM); in init_amd_k8()
650 if (!c->x86_model_id[0]) in init_amd_k8()
651 strcpy(c->x86_model_id, "Hammer"); in init_amd_k8()
663 set_cpu_bug(c, X86_BUG_SWAPGS_FENCE); in init_amd_k8()
671 if (c->x86_model > 0x41 || in init_amd_k8()
672 (c->x86_model == 0x41 && c->x86_stepping >= 0x2)) in init_amd_k8()
676 static void init_amd_gh(struct cpuinfo_x86 *c) in init_amd_gh() argument
680 if (c == &boot_cpu_data) in init_amd_gh()
707 set_cpu_bug(c, X86_BUG_AMD_TLB_MMATCH); in init_amd_gh()
715 if (c->x86_model > 0x2 || in init_amd_gh()
716 (c->x86_model == 0x2 && c->x86_stepping >= 0x1)) in init_amd_gh()
720 static void init_amd_ln(struct cpuinfo_x86 *c) in init_amd_ln() argument
745 static void clear_rdrand_cpuid_bit(struct cpuinfo_x86 *c) in clear_rdrand_cpuid_bit() argument
773 clear_cpu_cap(c, X86_FEATURE_RDRAND); in clear_rdrand_cpuid_bit()
777 static void init_amd_jg(struct cpuinfo_x86 *c) in init_amd_jg() argument
784 clear_rdrand_cpuid_bit(c); in init_amd_jg()
787 static void init_amd_bd(struct cpuinfo_x86 *c) in init_amd_bd() argument
795 if ((c->x86_model >= 0x02) && (c->x86_model < 0x20)) { in init_amd_bd()
807 clear_rdrand_cpuid_bit(c); in init_amd_bd()
816 static void fix_erratum_1386(struct cpuinfo_x86 *c) in fix_erratum_1386() argument
832 clear_cpu_cap(c, X86_FEATURE_XSAVES); in fix_erratum_1386()
835 void init_spectral_chicken(struct cpuinfo_x86 *c) in init_spectral_chicken() argument
846 if (!cpu_has(c, X86_FEATURE_HYPERVISOR)) { in init_spectral_chicken()
863 static void init_amd_zen1(struct cpuinfo_x86 *c) in init_amd_zen1() argument
865 fix_erratum_1386(c); in init_amd_zen1()
868 if (!cpu_has(c, X86_FEATURE_HYPERVISOR)) { in init_amd_zen1()
871 if (!cpu_has(c, X86_FEATURE_CPB)) in init_amd_zen1()
872 set_cpu_cap(c, X86_FEATURE_CPB); in init_amd_zen1()
883 if (c->x86_model < 0x30) { in init_amd_zen1()
885 clear_cpu_cap(c, X86_FEATURE_IRPERF); in init_amd_zen1()
910 static void zen2_zenbleed_check(struct cpuinfo_x86 *c) in zen2_zenbleed_check() argument
912 if (cpu_has(c, X86_FEATURE_HYPERVISOR)) in zen2_zenbleed_check()
915 if (!cpu_has(c, X86_FEATURE_AVX)) in zen2_zenbleed_check()
926 static void init_amd_zen2(struct cpuinfo_x86 *c) in init_amd_zen2() argument
928 init_spectral_chicken(c); in init_amd_zen2()
929 fix_erratum_1386(c); in init_amd_zen2()
930 zen2_zenbleed_check(c); in init_amd_zen2()
933 static void init_amd_zen3(struct cpuinfo_x86 *c) in init_amd_zen3() argument
935 if (!cpu_has(c, X86_FEATURE_HYPERVISOR)) { in init_amd_zen3()
941 if (!cpu_has(c, X86_FEATURE_BTC_NO)) in init_amd_zen3()
942 set_cpu_cap(c, X86_FEATURE_BTC_NO); in init_amd_zen3()
946 static void init_amd_zen4(struct cpuinfo_x86 *c) in init_amd_zen4() argument
948 if (!cpu_has(c, X86_FEATURE_HYPERVISOR)) in init_amd_zen4()
955 switch (c->x86_model) { in init_amd_zen4()
958 clear_cpu_cap(c, X86_FEATURE_V_VMSAVE_VMLOAD); in init_amd_zen4()
963 static void init_amd_zen5(struct cpuinfo_x86 *c) in init_amd_zen5() argument
967 static void init_amd(struct cpuinfo_x86 *c) in init_amd() argument
971 early_init_amd(c); in init_amd()
977 clear_cpu_cap(c, 0*32+31); in init_amd()
979 if (c->x86 >= 0x10) in init_amd()
980 set_cpu_cap(c, X86_FEATURE_REP_GOOD); in init_amd()
983 if (cpu_has(c, X86_FEATURE_FSRM)) in init_amd()
984 set_cpu_cap(c, X86_FEATURE_FSRS); in init_amd()
987 if (c->x86 < 6) in init_amd()
988 clear_cpu_cap(c, X86_FEATURE_MCE); in init_amd()
990 switch (c->x86) { in init_amd()
991 case 4: init_amd_k5(c); break; in init_amd()
992 case 5: init_amd_k6(c); break; in init_amd()
993 case 6: init_amd_k7(c); break; in init_amd()
994 case 0xf: init_amd_k8(c); break; in init_amd()
995 case 0x10: init_amd_gh(c); break; in init_amd()
996 case 0x12: init_amd_ln(c); break; in init_amd()
997 case 0x15: init_amd_bd(c); break; in init_amd()
998 case 0x16: init_amd_jg(c); break; in init_amd()
1005 if (c->x86 >= 0x17) in init_amd()
1009 init_amd_zen1(c); in init_amd()
1011 init_amd_zen2(c); in init_amd()
1013 init_amd_zen3(c); in init_amd()
1015 init_amd_zen4(c); in init_amd()
1017 init_amd_zen5(c); in init_amd()
1023 if ((c->x86 >= 6) && (!cpu_has(c, X86_FEATURE_XSAVEERPTR))) in init_amd()
1024 set_cpu_bug(c, X86_BUG_FXSAVE_LEAK); in init_amd()
1026 cpu_detect_cache_sizes(c); in init_amd()
1028 srat_detect_node(c); in init_amd()
1030 init_amd_cacheinfo(c); in init_amd()
1032 if (cpu_has(c, X86_FEATURE_SVM)) { in init_amd()
1036 clear_cpu_cap(c, X86_FEATURE_SVM); in init_amd()
1040 if (!cpu_has(c, X86_FEATURE_LFENCE_RDTSC) && cpu_has(c, X86_FEATURE_XMM2)) { in init_amd()
1051 set_cpu_cap(c, X86_FEATURE_LFENCE_RDTSC); in init_amd()
1058 if (c->x86 > 0x11) in init_amd()
1059 set_cpu_cap(c, X86_FEATURE_ARAT); in init_amd()
1062 if (!cpu_has(c, X86_FEATURE_3DNOWPREFETCH)) in init_amd()
1063 if (cpu_has(c, X86_FEATURE_3DNOW) || cpu_has(c, X86_FEATURE_LM)) in init_amd()
1064 set_cpu_cap(c, X86_FEATURE_3DNOWPREFETCH); in init_amd()
1068 set_cpu_bug(c, X86_BUG_SYSRET_SS_ATTRS); in init_amd()
1071 if (cpu_has(c, X86_FEATURE_IRPERF)) in init_amd()
1074 check_null_seg_clears_base(c); in init_amd()
1084 cpu_has(c, X86_FEATURE_AUTOIBRS)) in init_amd()
1088 clear_cpu_cap(c, X86_FEATURE_APIC_MSRS_FENCE); in init_amd()
1091 if (cpu_has(c, X86_FEATURE_TCE)) in init_amd()
1096 static unsigned int amd_size_cache(struct cpuinfo_x86 *c, unsigned int size) in amd_size_cache() argument
1099 if (c->x86 == 6) { in amd_size_cache()
1101 if (c->x86_model == 3 && c->x86_stepping == 0) in amd_size_cache()
1104 if (c->x86_model == 4 && in amd_size_cache()
1105 (c->x86_stepping == 0 || c->x86_stepping == 1)) in amd_size_cache()
1112 static void cpu_detect_tlb_amd(struct cpuinfo_x86 *c) in cpu_detect_tlb_amd() argument
1117 if (c->x86 < 0xf) in cpu_detect_tlb_amd()
1120 if (c->extended_cpuid_level < 0x80000006) in cpu_detect_tlb_amd()
1132 if (c->x86 == 0xf) { in cpu_detect_tlb_amd()
1149 if (c->x86 == 0x15 && c->x86_model <= 0x1f) { in cpu_detect_tlb_amd()
1161 if (cpu_has(c, X86_FEATURE_INVLPGB)) in cpu_detect_tlb_amd()
1232 struct cpuinfo_x86 *c = &cpu_data(smp_processor_id()); in zenbleed_check_cpu() local
1234 zen2_zenbleed_check(c); in zenbleed_check_cpu()