hc
2023-12-11 d2ccde1c8e90d38cee87a1b0309ad2827f3fd30d
kernel/arch/x86/Kconfig.cpu
....@@ -4,7 +4,7 @@
44 prompt "Processor family"
55 default M686 if X86_32
66 default GENERIC_CPU if X86_64
7
- ---help---
7
+ help
88 This is the processor type of your CPU. This information is
99 used for optimizing purposes. In order to compile a kernel
1010 that can run on all supported x86 CPU types (albeit not
....@@ -50,17 +50,24 @@
5050 See each option's help text for additional details. If you don't know
5151 what to do, choose "486".
5252
53
-config M486
54
- bool "486"
53
+config M486SX
54
+ bool "486SX"
5555 depends on X86_32
56
- ---help---
56
+ help
57
+ Select this for an 486-class CPU without an FPU such as
58
+ AMD/Cyrix/IBM/Intel SL/SLC/SLC2/SLC3/SX/SX2 and UMC U5S.
59
+
60
+config M486
61
+ bool "486DX"
62
+ depends on X86_32
63
+ help
5764 Select this for an 486-class CPU such as AMD/Cyrix/IBM/Intel
58
- 486DX/DX2/DX4 or SL/SLC/SLC2/SLC3/SX/SX2 and UMC U5D or U5S.
65
+ 486DX/DX2/DX4 and UMC U5D.
5966
6067 config M586
6168 bool "586/K5/5x86/6x86/6x86MX"
6269 depends on X86_32
63
- ---help---
70
+ help
6471 Select this for an 586 or 686 series processor such as the AMD K5,
6572 the Cyrix 5x86, 6x86 and 6x86MX. This choice does not
6673 assume the RDTSC (Read Time Stamp Counter) instruction.
....@@ -68,21 +75,21 @@
6875 config M586TSC
6976 bool "Pentium-Classic"
7077 depends on X86_32
71
- ---help---
78
+ help
7279 Select this for a Pentium Classic processor with the RDTSC (Read
7380 Time Stamp Counter) instruction for benchmarking.
7481
7582 config M586MMX
7683 bool "Pentium-MMX"
7784 depends on X86_32
78
- ---help---
85
+ help
7986 Select this for a Pentium with the MMX graphics/multimedia
8087 extended instructions.
8188
8289 config M686
8390 bool "Pentium-Pro"
8491 depends on X86_32
85
- ---help---
92
+ help
8693 Select this for Intel Pentium Pro chips. This enables the use of
8794 Pentium Pro extended instructions, and disables the init-time guard
8895 against the f00f bug found in earlier Pentiums.
....@@ -90,7 +97,7 @@
9097 config MPENTIUMII
9198 bool "Pentium-II/Celeron(pre-Coppermine)"
9299 depends on X86_32
93
- ---help---
100
+ help
94101 Select this for Intel chips based on the Pentium-II and
95102 pre-Coppermine Celeron core. This option enables an unaligned
96103 copy optimization, compiles the kernel with optimization flags
....@@ -100,7 +107,7 @@
100107 config MPENTIUMIII
101108 bool "Pentium-III/Celeron(Coppermine)/Pentium-III Xeon"
102109 depends on X86_32
103
- ---help---
110
+ help
104111 Select this for Intel chips based on the Pentium-III and
105112 Celeron-Coppermine core. This option enables use of some
106113 extended prefetch instructions in addition to the Pentium II
....@@ -109,14 +116,14 @@
109116 config MPENTIUMM
110117 bool "Pentium M"
111118 depends on X86_32
112
- ---help---
119
+ help
113120 Select this for Intel Pentium M (not Pentium-4 M)
114121 notebook chips.
115122
116123 config MPENTIUM4
117124 bool "Pentium-4/Celeron(P4-based)/Pentium-4 M/older Xeon"
118125 depends on X86_32
119
- ---help---
126
+ help
120127 Select this for Intel Pentium 4 chips. This includes the
121128 Pentium 4, Pentium D, P4-based Celeron and Xeon, and
122129 Pentium-4 M (not Pentium M) chips. This option enables compile
....@@ -152,7 +159,7 @@
152159 config MK6
153160 bool "K6/K6-II/K6-III"
154161 depends on X86_32
155
- ---help---
162
+ help
156163 Select this for an AMD K6-family processor. Enables use of
157164 some extended instructions, and passes appropriate optimization
158165 flags to GCC.
....@@ -160,14 +167,14 @@
160167 config MK7
161168 bool "Athlon/Duron/K7"
162169 depends on X86_32
163
- ---help---
170
+ help
164171 Select this for an AMD Athlon K7-family processor. Enables use of
165172 some extended instructions, and passes appropriate optimization
166173 flags to GCC.
167174
168175 config MK8
169176 bool "Opteron/Athlon64/Hammer/K8"
170
- ---help---
177
+ help
171178 Select this for an AMD Opteron or Athlon64 Hammer-family processor.
172179 Enables use of some extended instructions, and passes appropriate
173180 optimization flags to GCC.
....@@ -175,7 +182,7 @@
175182 config MCRUSOE
176183 bool "Crusoe"
177184 depends on X86_32
178
- ---help---
185
+ help
179186 Select this for a Transmeta Crusoe processor. Treats the processor
180187 like a 586 with TSC, and sets some GCC optimization flags (like a
181188 Pentium Pro with no alignment requirements).
....@@ -183,13 +190,13 @@
183190 config MEFFICEON
184191 bool "Efficeon"
185192 depends on X86_32
186
- ---help---
193
+ help
187194 Select this for a Transmeta Efficeon processor.
188195
189196 config MWINCHIPC6
190197 bool "Winchip-C6"
191198 depends on X86_32
192
- ---help---
199
+ help
193200 Select this for an IDT Winchip C6 chip. Linux and GCC
194201 treat this chip as a 586TSC with some extended instructions
195202 and alignment requirements.
....@@ -197,7 +204,7 @@
197204 config MWINCHIP3D
198205 bool "Winchip-2/Winchip-2A/Winchip-3"
199206 depends on X86_32
200
- ---help---
207
+ help
201208 Select this for an IDT Winchip-2, 2A or 3. Linux and GCC
202209 treat this chip as a 586TSC with some extended instructions
203210 and alignment requirements. Also enable out of order memory
....@@ -207,7 +214,7 @@
207214 config MELAN
208215 bool "AMD Elan"
209216 depends on X86_32
210
- ---help---
217
+ help
211218 Select this for an AMD Elan processor.
212219
213220 Do not use this option for K6/Athlon/Opteron processors!
....@@ -215,19 +222,19 @@
215222 config MGEODEGX1
216223 bool "GeodeGX1"
217224 depends on X86_32
218
- ---help---
225
+ help
219226 Select this for a Geode GX1 (Cyrix MediaGX) chip.
220227
221228 config MGEODE_LX
222229 bool "Geode GX/LX"
223230 depends on X86_32
224
- ---help---
231
+ help
225232 Select this for AMD Geode GX and LX processors.
226233
227234 config MCYRIXIII
228235 bool "CyrixIII/VIA-C3"
229236 depends on X86_32
230
- ---help---
237
+ help
231238 Select this for a Cyrix III or C3 chip. Presently Linux and GCC
232239 treat this chip as a generic 586. Whilst the CPU is 686 class,
233240 it lacks the cmov extension which gcc assumes is present when
....@@ -239,7 +246,7 @@
239246 config MVIAC3_2
240247 bool "VIA C3-2 (Nehemiah)"
241248 depends on X86_32
242
- ---help---
249
+ help
243250 Select this for a VIA C3 "Nehemiah". Selecting this enables usage
244251 of SSE and tells gcc to treat the CPU as a 686.
245252 Note, this kernel will not boot on older (pre model 9) C3s.
....@@ -247,14 +254,14 @@
247254 config MVIAC7
248255 bool "VIA C7"
249256 depends on X86_32
250
- ---help---
257
+ help
251258 Select this for a VIA C7. Selecting this uses the correct cache
252259 shift and tells gcc to treat the CPU as a 686.
253260
254261 config MPSC
255262 bool "Intel P4 / older Netburst based Xeon"
256263 depends on X86_64
257
- ---help---
264
+ help
258265 Optimize for Intel Pentium 4, Pentium D and older Nocona/Dempsey
259266 Xeon CPUs with Intel 64bit which is compatible with x86-64.
260267 Note that the latest Xeons (Xeon 51xx and 53xx) are not based on the
....@@ -264,7 +271,7 @@
264271
265272 config MCORE2
266273 bool "Core 2/newer Xeon"
267
- ---help---
274
+ help
268275
269276 Select this for Intel Core 2 and newer Core 2 Xeons (Xeon 51xx and
270277 53xx) CPUs. You can distinguish newer from older Xeons by the CPU
....@@ -273,7 +280,7 @@
273280
274281 config MATOM
275282 bool "Intel Atom"
276
- ---help---
283
+ help
277284
278285 Select this for the Intel Atom platform. Intel Atom CPUs have an
279286 in-order pipelining architecture and thus can benefit from
....@@ -283,7 +290,7 @@
283290 config GENERIC_CPU
284291 bool "Generic-x86-64"
285292 depends on X86_64
286
- ---help---
293
+ help
287294 Generic x86-64 CPU.
288295 Run equally well on all x86-64 CPUs.
289296
....@@ -292,7 +299,7 @@
292299 config X86_GENERIC
293300 bool "Generic x86 support"
294301 depends on X86_32
295
- ---help---
302
+ help
296303 Instead of just including optimizations for the selected
297304 x86 variant (e.g. PII, Crusoe or Athlon), include some more
298305 generic optimizations as well. This will make the kernel
....@@ -312,20 +319,20 @@
312319 int
313320 default "7" if MPENTIUM4 || MPSC
314321 default "6" if MK7 || MK8 || MPENTIUMM || MCORE2 || MATOM || MVIAC7 || X86_GENERIC || GENERIC_CPU
315
- default "4" if MELAN || M486 || MGEODEGX1
322
+ default "4" if MELAN || M486SX || M486 || MGEODEGX1
316323 default "5" if MWINCHIP3D || MWINCHIPC6 || MCRUSOE || MEFFICEON || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || M586 || MVIAC3_2 || MGEODE_LX
317324
318325 config X86_F00F_BUG
319326 def_bool y
320
- depends on M586MMX || M586TSC || M586 || M486
327
+ depends on M586MMX || M586TSC || M586 || M486SX || M486
321328
322329 config X86_INVD_BUG
323330 def_bool y
324
- depends on M486
331
+ depends on M486SX || M486
325332
326333 config X86_ALIGNMENT_16
327334 def_bool y
328
- depends on MWINCHIP3D || MWINCHIPC6 || MCYRIXIII || MELAN || MK6 || M586MMX || M586TSC || M586 || M486 || MVIAC3_2 || MGEODEGX1
335
+ depends on MWINCHIP3D || MWINCHIPC6 || MCYRIXIII || MELAN || MK6 || M586MMX || M586TSC || M586 || M486SX || M486 || MVIAC3_2 || MGEODEGX1
329336
330337 config X86_INTEL_USERCOPY
331338 def_bool y
....@@ -378,18 +385,26 @@
378385
379386 config X86_DEBUGCTLMSR
380387 def_bool y
381
- depends on !(MK6 || MWINCHIPC6 || MWINCHIP3D || MCYRIXIII || M586MMX || M586TSC || M586 || M486) && !UML
388
+ depends on !(MK6 || MWINCHIPC6 || MWINCHIP3D || MCYRIXIII || M586MMX || M586TSC || M586 || M486SX || M486) && !UML
389
+
390
+config IA32_FEAT_CTL
391
+ def_bool y
392
+ depends on CPU_SUP_INTEL || CPU_SUP_CENTAUR || CPU_SUP_ZHAOXIN
393
+
394
+config X86_VMX_FEATURE_NAMES
395
+ def_bool y
396
+ depends on IA32_FEAT_CTL && X86_FEATURE_NAMES
382397
383398 menuconfig PROCESSOR_SELECT
384399 bool "Supported processor vendors" if EXPERT
385
- ---help---
400
+ help
386401 This lets you choose what x86 vendor support code your kernel
387402 will include.
388403
389404 config CPU_SUP_INTEL
390405 default y
391406 bool "Support Intel processors" if PROCESSOR_SELECT
392
- ---help---
407
+ help
393408 This enables detection, tunings and quirks for Intel processors
394409
395410 You need this enabled if you want your kernel to run on an
....@@ -402,8 +417,8 @@
402417 config CPU_SUP_CYRIX_32
403418 default y
404419 bool "Support Cyrix processors" if PROCESSOR_SELECT
405
- depends on M486 || M586 || M586TSC || M586MMX || (EXPERT && !64BIT)
406
- ---help---
420
+ depends on M486SX || M486 || M586 || M586TSC || M586MMX || (EXPERT && !64BIT)
421
+ help
407422 This enables detection, tunings and quirks for Cyrix processors
408423
409424 You need this enabled if you want your kernel to run on a
....@@ -416,7 +431,7 @@
416431 config CPU_SUP_AMD
417432 default y
418433 bool "Support AMD processors" if PROCESSOR_SELECT
419
- ---help---
434
+ help
420435 This enables detection, tunings and quirks for AMD processors
421436
422437 You need this enabled if you want your kernel to run on an
....@@ -426,10 +441,24 @@
426441
427442 If unsure, say N.
428443
444
+config CPU_SUP_HYGON
445
+ default y
446
+ bool "Support Hygon processors" if PROCESSOR_SELECT
447
+ select CPU_SUP_AMD
448
+ help
449
+ This enables detection, tunings and quirks for Hygon processors
450
+
451
+ You need this enabled if you want your kernel to run on an
452
+ Hygon CPU. Disabling this option on other types of CPUs
453
+ makes the kernel a tiny bit smaller. Disabling it on an Hygon
454
+ CPU might render the kernel unbootable.
455
+
456
+ If unsure, say N.
457
+
429458 config CPU_SUP_CENTAUR
430459 default y
431460 bool "Support Centaur processors" if PROCESSOR_SELECT
432
- ---help---
461
+ help
433462 This enables detection, tunings and quirks for Centaur processors
434463
435464 You need this enabled if you want your kernel to run on a
....@@ -443,7 +472,7 @@
443472 default y
444473 bool "Support Transmeta processors" if PROCESSOR_SELECT
445474 depends on !64BIT
446
- ---help---
475
+ help
447476 This enables detection, tunings and quirks for Transmeta processors
448477
449478 You need this enabled if you want your kernel to run on a
....@@ -456,8 +485,8 @@
456485 config CPU_SUP_UMC_32
457486 default y
458487 bool "Support UMC processors" if PROCESSOR_SELECT
459
- depends on M486 || (EXPERT && !64BIT)
460
- ---help---
488
+ depends on M486SX || M486 || (EXPERT && !64BIT)
489
+ help
461490 This enables detection, tunings and quirks for UMC processors
462491
463492 You need this enabled if you want your kernel to run on a
....@@ -466,3 +495,16 @@
466495 CPU might render the kernel unbootable.
467496
468497 If unsure, say N.
498
+
499
+config CPU_SUP_ZHAOXIN
500
+ default y
501
+ bool "Support Zhaoxin processors" if PROCESSOR_SELECT
502
+ help
503
+ This enables detection, tunings and quirks for Zhaoxin processors
504
+
505
+ You need this enabled if you want your kernel to run on a
506
+ Zhaoxin CPU. Disabling this option on other types of CPUs
507
+ makes the kernel a tiny bit smaller. Disabling it on a Zhaoxin
508
+ CPU might render the kernel unbootable.
509
+
510
+ If unsure, say N.