Kconfig.cpu (53279f36dccffc26ff536003fd6bb97cc21c3b82) Kconfig.cpu (eb068e781020cf491333c773fb41820b57bfada4)
1# Put here option for CPU selection and depending optimization
2choice
3 prompt "Processor family"
4 default M686 if X86_32
5 default GENERIC_CPU if X86_64
6
1# Put here option for CPU selection and depending optimization
2choice
3 prompt "Processor family"
4 default M686 if X86_32
5 default GENERIC_CPU if X86_64
6
7config M386
8 bool "386"
9 depends on X86_32 && !UML
7config M486
8 bool "486"
9 depends on X86_32
10 ---help---
10 ---help---
11 This is the processor type of your CPU. This information is used for
12 optimizing purposes. In order to compile a kernel that can run on
13 all x86 CPU types (albeit not optimally fast), you can specify
14 "386" here.
11 This is the processor type of your CPU. This information is
12 used for optimizing purposes. In order to compile a kernel
13 that can run on all supported x86 CPU types (albeit not
14 optimally fast), you can specify "486" here.
15
15
16 Note that the 386 is no longer supported, this includes
17 AMD/Cyrix/Intel 386DX/DXL/SL/SLC/SX, Cyrix/TI 486DLC/DLC2,
18 and UMC 486SX-S.
19
16 The kernel will not necessarily run on earlier architectures than
17 the one you have chosen, e.g. a Pentium optimized kernel will run on
18 a PPro, but not necessarily on a i486.
19
20 Here are the settings recommended for greatest speed:
20 The kernel will not necessarily run on earlier architectures than
21 the one you have chosen, e.g. a Pentium optimized kernel will run on
22 a PPro, but not necessarily on a i486.
23
24 Here are the settings recommended for greatest speed:
21 - "386" for the AMD/Cyrix/Intel 386DX/DXL/SL/SLC/SX, Cyrix/TI
22 486DLC/DLC2, and UMC 486SX-S. Only "386" kernels will run on a 386
23 class machine.
24 - "486" for the AMD/Cyrix/IBM/Intel 486DX/DX2/DX4 or
25 SL/SLC/SLC2/SLC3/SX/SX2 and UMC U5D or U5S.
26 - "586" for generic Pentium CPUs lacking the TSC
27 (time stamp counter) register.
28 - "Pentium-Classic" for the Intel Pentium.
29 - "Pentium-MMX" for the Intel Pentium MMX.
30 - "Pentium-Pro" for the Intel Pentium Pro.
31 - "Pentium-II" for the Intel Pentium II or pre-Coppermine Celeron.

--- 6 unchanged lines hidden (view full) ---

38 - "Winchip-C6" for original IDT Winchip.
39 - "Winchip-2" for IDT Winchips with 3dNow! capabilities.
40 - "GeodeGX1" for Geode GX1 (Cyrix MediaGX).
41 - "Geode GX/LX" For AMD Geode GX and LX processors.
42 - "CyrixIII/VIA C3" for VIA Cyrix III or VIA C3.
43 - "VIA C3-2" for VIA C3-2 "Nehemiah" (model 9 and above).
44 - "VIA C7" for VIA C7.
45
25 - "486" for the AMD/Cyrix/IBM/Intel 486DX/DX2/DX4 or
26 SL/SLC/SLC2/SLC3/SX/SX2 and UMC U5D or U5S.
27 - "586" for generic Pentium CPUs lacking the TSC
28 (time stamp counter) register.
29 - "Pentium-Classic" for the Intel Pentium.
30 - "Pentium-MMX" for the Intel Pentium MMX.
31 - "Pentium-Pro" for the Intel Pentium Pro.
32 - "Pentium-II" for the Intel Pentium II or pre-Coppermine Celeron.

--- 6 unchanged lines hidden (view full) ---

39 - "Winchip-C6" for original IDT Winchip.
40 - "Winchip-2" for IDT Winchips with 3dNow! capabilities.
41 - "GeodeGX1" for Geode GX1 (Cyrix MediaGX).
42 - "Geode GX/LX" For AMD Geode GX and LX processors.
43 - "CyrixIII/VIA C3" for VIA Cyrix III or VIA C3.
44 - "VIA C3-2" for VIA C3-2 "Nehemiah" (model 9 and above).
45 - "VIA C7" for VIA C7.
46
46 If you don't know what to do, choose "386".
47 If you don't know what to do, choose "486".
47
48
48config M486
49 bool "486"
50 depends on X86_32
51 ---help---
52 Select this for a 486 series processor, either Intel or one of the
53 compatible processors from AMD, Cyrix, IBM, or Intel. Includes DX,
54 DX2, and DX4 variants; also SL/SLC/SLC2/SLC3/SX/SX2 and UMC U5D or
55 U5S.
56
57config M586
58 bool "586/K5/5x86/6x86/6x86MX"
59 depends on X86_32
60 ---help---
61 Select this for an 586 or 686 series processor such as the AMD K5,
62 the Cyrix 5x86, 6x86 and 6x86MX. This choice does not
63 assume the RDTSC (Read Time Stamp Counter) instruction.
64

--- 237 unchanged lines hidden (view full) ---

302# Define implied options from the CPU selection here
303config X86_INTERNODE_CACHE_SHIFT
304 int
305 default "12" if X86_VSMP
306 default X86_L1_CACHE_SHIFT
307
308config X86_CMPXCHG
309 def_bool y
49config M586
50 bool "586/K5/5x86/6x86/6x86MX"
51 depends on X86_32
52 ---help---
53 Select this for an 586 or 686 series processor such as the AMD K5,
54 the Cyrix 5x86, 6x86 and 6x86MX. This choice does not
55 assume the RDTSC (Read Time Stamp Counter) instruction.
56

--- 237 unchanged lines hidden (view full) ---

294# Define implied options from the CPU selection here
295config X86_INTERNODE_CACHE_SHIFT
296 int
297 default "12" if X86_VSMP
298 default X86_L1_CACHE_SHIFT
299
300config X86_CMPXCHG
301 def_bool y
310 depends on X86_64 || (X86_32 && !M386)
311
312config X86_L1_CACHE_SHIFT
313 int
314 default "7" if MPENTIUM4 || MPSC
315 default "6" if MK7 || MK8 || MPENTIUMM || MCORE2 || MATOM || MVIAC7 || X86_GENERIC || GENERIC_CPU
302
303config X86_L1_CACHE_SHIFT
304 int
305 default "7" if MPENTIUM4 || MPSC
306 default "6" if MK7 || MK8 || MPENTIUMM || MCORE2 || MATOM || MVIAC7 || X86_GENERIC || GENERIC_CPU
316 default "4" if MELAN || M486 || M386 || MGEODEGX1
307 default "4" if MELAN || M486 || MGEODEGX1
317 default "5" if MWINCHIP3D || MWINCHIPC6 || MCRUSOE || MEFFICEON || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || M586 || MVIAC3_2 || MGEODE_LX
318
319config X86_XADD
320 def_bool y
308 default "5" if MWINCHIP3D || MWINCHIPC6 || MCRUSOE || MEFFICEON || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || M586 || MVIAC3_2 || MGEODE_LX
309
310config X86_XADD
311 def_bool y
321 depends on !M386
322
323config X86_PPRO_FENCE
324 bool "PentiumPro memory ordering errata workaround"
312
313config X86_PPRO_FENCE
314 bool "PentiumPro memory ordering errata workaround"
325 depends on M686 || M586MMX || M586TSC || M586 || M486 || M386 || MGEODEGX1
315 depends on M686 || M586MMX || M586TSC || M586 || M486 || MGEODEGX1
326 ---help---
327 Old PentiumPro multiprocessor systems had errata that could cause
328 memory operations to violate the x86 ordering standard in rare cases.
329 Enabling this option will attempt to work around some (but not all)
330 occurrences of this problem, at the cost of much heavier spinlock and
331 memory barrier operations.
332
333 If unsure, say n here. Even distro kernels should think twice before
334 enabling this: there are few systems, and an unlikely bug.
335
336config X86_F00F_BUG
337 def_bool y
316 ---help---
317 Old PentiumPro multiprocessor systems had errata that could cause
318 memory operations to violate the x86 ordering standard in rare cases.
319 Enabling this option will attempt to work around some (but not all)
320 occurrences of this problem, at the cost of much heavier spinlock and
321 memory barrier operations.
322
323 If unsure, say n here. Even distro kernels should think twice before
324 enabling this: there are few systems, and an unlikely bug.
325
326config X86_F00F_BUG
327 def_bool y
338 depends on M586MMX || M586TSC || M586 || M486 || M386
328 depends on M586MMX || M586TSC || M586 || M486
339
340config X86_INVD_BUG
341 def_bool y
329
330config X86_INVD_BUG
331 def_bool y
342 depends on M486 || M386
332 depends on M486
343
344config X86_WP_WORKS_OK
345 def_bool y
333
334config X86_WP_WORKS_OK
335 def_bool y
346 depends on !M386
347
348config X86_INVLPG
349 def_bool y
336
337config X86_INVLPG
338 def_bool y
350 depends on X86_32 && !M386
339 depends on X86_32
351
352config X86_BSWAP
353 def_bool y
340
341config X86_BSWAP
342 def_bool y
354 depends on X86_32 && !M386
343 depends on X86_32
355
356config X86_POPAD_OK
357 def_bool y
344
345config X86_POPAD_OK
346 def_bool y
358 depends on X86_32 && !M386
347 depends on X86_32
359
360config X86_ALIGNMENT_16
361 def_bool y
362 depends on MWINCHIP3D || MWINCHIPC6 || MCYRIXIII || MELAN || MK6 || M586MMX || M586TSC || M586 || M486 || MVIAC3_2 || MGEODEGX1
363
364config X86_INTEL_USERCOPY
365 def_bool y
366 depends on MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M586MMX || X86_GENERIC || MK8 || MK7 || MEFFICEON || MCORE2

--- 40 unchanged lines hidden (view full) ---

407 def_bool y
408 depends on (MK8 || MK7 || MCORE2 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MVIAC3_2 || MVIAC7 || MCRUSOE || MEFFICEON || X86_64 || MATOM || MGEODE_LX)
409
410config X86_MINIMUM_CPU_FAMILY
411 int
412 default "64" if X86_64
413 default "6" if X86_32 && X86_P6_NOP
414 default "5" if X86_32 && X86_CMPXCHG64
348
349config X86_ALIGNMENT_16
350 def_bool y
351 depends on MWINCHIP3D || MWINCHIPC6 || MCYRIXIII || MELAN || MK6 || M586MMX || M586TSC || M586 || M486 || MVIAC3_2 || MGEODEGX1
352
353config X86_INTEL_USERCOPY
354 def_bool y
355 depends on MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M586MMX || X86_GENERIC || MK8 || MK7 || MEFFICEON || MCORE2

--- 40 unchanged lines hidden (view full) ---

396 def_bool y
397 depends on (MK8 || MK7 || MCORE2 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MVIAC3_2 || MVIAC7 || MCRUSOE || MEFFICEON || X86_64 || MATOM || MGEODE_LX)
398
399config X86_MINIMUM_CPU_FAMILY
400 int
401 default "64" if X86_64
402 default "6" if X86_32 && X86_P6_NOP
403 default "5" if X86_32 && X86_CMPXCHG64
415 default "4" if X86_32 && (X86_XADD || X86_CMPXCHG || X86_BSWAP || X86_WP_WORKS_OK)
416 default "3"
404 default "4"
417
418config X86_DEBUGCTLMSR
419 def_bool y
405
406config X86_DEBUGCTLMSR
407 def_bool y
420 depends on !(MK6 || MWINCHIPC6 || MWINCHIP3D || MCYRIXIII || M586MMX || M586TSC || M586 || M486 || M386) && !UML
408 depends on !(MK6 || MWINCHIPC6 || MWINCHIP3D || MCYRIXIII || M586MMX || M586TSC || M586 || M486) && !UML
421
422menuconfig PROCESSOR_SELECT
423 bool "Supported processor vendors" if EXPERT
424 ---help---
425 This lets you choose what x86 vendor support code your kernel
426 will include.
427
428config CPU_SUP_INTEL

--- 7 unchanged lines hidden (view full) ---

436 makes the kernel a tiny bit smaller. Disabling it on an Intel
437 CPU might render the kernel unbootable.
438
439 If unsure, say N.
440
441config CPU_SUP_CYRIX_32
442 default y
443 bool "Support Cyrix processors" if PROCESSOR_SELECT
409
410menuconfig PROCESSOR_SELECT
411 bool "Supported processor vendors" if EXPERT
412 ---help---
413 This lets you choose what x86 vendor support code your kernel
414 will include.
415
416config CPU_SUP_INTEL

--- 7 unchanged lines hidden (view full) ---

424 makes the kernel a tiny bit smaller. Disabling it on an Intel
425 CPU might render the kernel unbootable.
426
427 If unsure, say N.
428
429config CPU_SUP_CYRIX_32
430 default y
431 bool "Support Cyrix processors" if PROCESSOR_SELECT
444 depends on M386 || M486 || M586 || M586TSC || M586MMX || (EXPERT && !64BIT)
432 depends on M486 || M586 || M586TSC || M586MMX || (EXPERT && !64BIT)
445 ---help---
446 This enables detection, tunings and quirks for Cyrix processors
447
448 You need this enabled if you want your kernel to run on a
449 Cyrix CPU. Disabling this option on other types of CPUs
450 makes the kernel a tiny bit smaller. Disabling it on a Cyrix
451 CPU might render the kernel unbootable.
452

--- 37 unchanged lines hidden (view full) ---

490 makes the kernel a tiny bit smaller. Disabling it on a Transmeta
491 CPU might render the kernel unbootable.
492
493 If unsure, say N.
494
495config CPU_SUP_UMC_32
496 default y
497 bool "Support UMC processors" if PROCESSOR_SELECT
433 ---help---
434 This enables detection, tunings and quirks for Cyrix processors
435
436 You need this enabled if you want your kernel to run on a
437 Cyrix CPU. Disabling this option on other types of CPUs
438 makes the kernel a tiny bit smaller. Disabling it on a Cyrix
439 CPU might render the kernel unbootable.
440

--- 37 unchanged lines hidden (view full) ---

478 makes the kernel a tiny bit smaller. Disabling it on a Transmeta
479 CPU might render the kernel unbootable.
480
481 If unsure, say N.
482
483config CPU_SUP_UMC_32
484 default y
485 bool "Support UMC processors" if PROCESSOR_SELECT
498 depends on M386 || M486 || (EXPERT && !64BIT)
486 depends on M486 || (EXPERT && !64BIT)
499 ---help---
500 This enables detection, tunings and quirks for UMC processors
501
502 You need this enabled if you want your kernel to run on a
503 UMC CPU. Disabling this option on other types of CPUs
504 makes the kernel a tiny bit smaller. Disabling it on a UMC
505 CPU might render the kernel unbootable.
506
507 If unsure, say N.
487 ---help---
488 This enables detection, tunings and quirks for UMC processors
489
490 You need this enabled if you want your kernel to run on a
491 UMC CPU. Disabling this option on other types of CPUs
492 makes the kernel a tiny bit smaller. Disabling it on a UMC
493 CPU might render the kernel unbootable.
494
495 If unsure, say N.