Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:arch\x86\kernel\cpu\centaur.c Create Date:2022-07-28 07:59:10
Last Modify:2020-03-12 14:18:49 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:init_centaur

Proto:static void init_centaur(struct cpuinfo_x86 *c)

Type:void

Parameter:

TypeParameterName
struct cpuinfo_x86 *c
151  fcr_set = 0
152  fcr_clr = 0
160  clear_cpu_cap(c, 0 * 32 + 31)
162  early_init_centaur(c)
163  init_intel_cacheinfo(c)
164  detect_num_cpu_cores(c)
166  detect_ht(c)
169  If Maximum supported CPUID level, -1=no CPUID: > 9 Then
170  eax = CPUID functions returning a single datum
177  If eax & 0xff && ( eax >> 8 & 0xff) > 1 Then set_cpu_cap(c, Intel Architectural PerfMon )
183  Case CPU family == 5
185  Case x86_model == 4
186  name = "C6"
187  fcr_set = ECX8 | DSMC | EDCTLB | EMMX | ERETSTK
188  fcr_clr = DPDC
189  pr_notice("Disabling bugged TSC.\n")
191  Break
192  Case x86_model == 8
194  Default
195  name = "2"
196  Break
197  Case x86_stepping == 7...9
198  name = "2A"
199  Break
200  Case x86_stepping == 10...15
201  name = "2B"
202  Break
206  fcr_clr = DPDC
207  Break
208  Case x86_model == 9
209  name = "3"
212  fcr_clr = DPDC
213  Break
214  Default
215  name = "??"
219  newlo = (lo | fcr_set) & ~fcr_clr
221  If newlo != lo Then
222  pr_info("Centaur FCR was 0x%X now 0x%X\n", lo, newlo)
225  Else
226  pr_info("Centaur FCR is 0x%X\n", lo)
233  If x86_model >= 8 Then set_cpu_cap(c, 3DNow )
236  If CPUID functions returning a single datum >= 0x80000005 Then
238  cpuid(0x80000005, & aa, & bb, & cc, & dd)
242  sprintf(x86_model_id, "WinChip %s", name)
243  Break
245  Case CPU family == 6
246  init_c3(c)
247  Break
250  set_cpu_cap(c, "" LFENCE synchronizes RDTSC )
253  If cpu_has(c, Hardware virtualization ) Then centaur_detect_vmx_virtcap(c)