~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/x86/Kconfig.cpu

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 # SPDX-License-Identifier: GPL-2.0
  2 # Put here option for CPU selection and depending optimization
  3 choice
  4         prompt "Processor family"
  5         default M686 if X86_32
  6         default GENERIC_CPU if X86_64
  7         help
  8           This is the processor type of your CPU. This information is
  9           used for optimizing purposes. In order to compile a kernel
 10           that can run on all supported x86 CPU types (albeit not
 11           optimally fast), you can specify "486" here.
 12 
 13           Note that the 386 is no longer supported, this includes
 14           AMD/Cyrix/Intel 386DX/DXL/SL/SLC/SX, Cyrix/TI 486DLC/DLC2,
 15           UMC 486SX-S and the NexGen Nx586.
 16 
 17           The kernel will not necessarily run on earlier architectures than
 18           the one you have chosen, e.g. a Pentium optimized kernel will run on
 19           a PPro, but not necessarily on a i486.
 20 
 21           Here are the settings recommended for greatest speed:
 22           - "486" for the AMD/Cyrix/IBM/Intel 486DX/DX2/DX4 or
 23             SL/SLC/SLC2/SLC3/SX/SX2 and UMC U5D or U5S.
 24           - "586" for generic Pentium CPUs lacking the TSC
 25             (time stamp counter) register.
 26           - "Pentium-Classic" for the Intel Pentium.
 27           - "Pentium-MMX" for the Intel Pentium MMX.
 28           - "Pentium-Pro" for the Intel Pentium Pro.
 29           - "Pentium-II" for the Intel Pentium II or pre-Coppermine Celeron.
 30           - "Pentium-III" for the Intel Pentium III or Coppermine Celeron.
 31           - "Pentium-4" for the Intel Pentium 4 or P4-based Celeron.
 32           - "K6" for the AMD K6, K6-II and K6-III (aka K6-3D).
 33           - "Athlon" for the AMD K7 family (Athlon/Duron/Thunderbird).
 34           - "Opteron/Athlon64/Hammer/K8" for all K8 and newer AMD CPUs.
 35           - "Crusoe" for the Transmeta Crusoe series.
 36           - "Efficeon" for the Transmeta Efficeon series.
 37           - "Winchip-C6" for original IDT Winchip.
 38           - "Winchip-2" for IDT Winchips with 3dNow! capabilities.
 39           - "AMD Elan" for the 32-bit AMD Elan embedded CPU.
 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           - "Intel P4" for the Pentium 4/Netburst microarchitecture.
 46           - "Core 2/newer Xeon" for all core2 and newer Intel CPUs.
 47           - "Intel Atom" for the Atom-microarchitecture CPUs.
 48           - "Generic-x86-64" for a kernel which runs on any x86-64 CPU.
 49 
 50           See each option's help text for additional details. If you don't know
 51           what to do, choose "486".
 52 
 53 config M486SX
 54         bool "486SX"
 55         depends on X86_32
 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
 64           Select this for an 486-class CPU such as AMD/Cyrix/IBM/Intel
 65           486DX/DX2/DX4 and UMC U5D.
 66 
 67 config M586
 68         bool "586/K5/5x86/6x86/6x86MX"
 69         depends on X86_32
 70         help
 71           Select this for an 586 or 686 series processor such as the AMD K5,
 72           the Cyrix 5x86, 6x86 and 6x86MX.  This choice does not
 73           assume the RDTSC (Read Time Stamp Counter) instruction.
 74 
 75 config M586TSC
 76         bool "Pentium-Classic"
 77         depends on X86_32
 78         help
 79           Select this for a Pentium Classic processor with the RDTSC (Read
 80           Time Stamp Counter) instruction for benchmarking.
 81 
 82 config M586MMX
 83         bool "Pentium-MMX"
 84         depends on X86_32
 85         help
 86           Select this for a Pentium with the MMX graphics/multimedia
 87           extended instructions.
 88 
 89 config M686
 90         bool "Pentium-Pro"
 91         depends on X86_32
 92         help
 93           Select this for Intel Pentium Pro chips.  This enables the use of
 94           Pentium Pro extended instructions, and disables the init-time guard
 95           against the f00f bug found in earlier Pentiums.
 96 
 97 config MPENTIUMII
 98         bool "Pentium-II/Celeron(pre-Coppermine)"
 99         depends on X86_32
100         help
101           Select this for Intel chips based on the Pentium-II and
102           pre-Coppermine Celeron core.  This option enables an unaligned
103           copy optimization, compiles the kernel with optimization flags
104           tailored for the chip, and applies any applicable Pentium Pro
105           optimizations.
106 
107 config MPENTIUMIII
108         bool "Pentium-III/Celeron(Coppermine)/Pentium-III Xeon"
109         depends on X86_32
110         help
111           Select this for Intel chips based on the Pentium-III and
112           Celeron-Coppermine core.  This option enables use of some
113           extended prefetch instructions in addition to the Pentium II
114           extensions.
115 
116 config MPENTIUMM
117         bool "Pentium M"
118         depends on X86_32
119         help
120           Select this for Intel Pentium M (not Pentium-4 M)
121           notebook chips.
122 
123 config MPENTIUM4
124         bool "Pentium-4/Celeron(P4-based)/Pentium-4 M/older Xeon"
125         depends on X86_32
126         help
127           Select this for Intel Pentium 4 chips.  This includes the
128           Pentium 4, Pentium D, P4-based Celeron and Xeon, and
129           Pentium-4 M (not Pentium M) chips.  This option enables compile
130           flags optimized for the chip, uses the correct cache line size, and
131           applies any applicable optimizations.
132 
133           CPUIDs: F[0-6][1-A] (in /proc/cpuinfo show = cpu family : 15 )
134 
135           Select this for:
136             Pentiums (Pentium 4, Pentium D, Celeron, Celeron D) corename:
137                 -Willamette
138                 -Northwood
139                 -Mobile Pentium 4
140                 -Mobile Pentium 4 M
141                 -Extreme Edition (Gallatin)
142                 -Prescott
143                 -Prescott 2M
144                 -Cedar Mill
145                 -Presler
146                 -Smithfiled
147             Xeons (Intel Xeon, Xeon MP, Xeon LV, Xeon MV) corename:
148                 -Foster
149                 -Prestonia
150                 -Gallatin
151                 -Nocona
152                 -Irwindale
153                 -Cranford
154                 -Potomac
155                 -Paxville
156                 -Dempsey
157 
158 
159 config MK6
160         bool "K6/K6-II/K6-III"
161         depends on X86_32
162         help
163           Select this for an AMD K6-family processor.  Enables use of
164           some extended instructions, and passes appropriate optimization
165           flags to GCC.
166 
167 config MK7
168         bool "Athlon/Duron/K7"
169         depends on X86_32
170         help
171           Select this for an AMD Athlon K7-family processor.  Enables use of
172           some extended instructions, and passes appropriate optimization
173           flags to GCC.
174 
175 config MK8
176         bool "Opteron/Athlon64/Hammer/K8"
177         help
178           Select this for an AMD Opteron or Athlon64 Hammer-family processor.
179           Enables use of some extended instructions, and passes appropriate
180           optimization flags to GCC.
181 
182 config MCRUSOE
183         bool "Crusoe"
184         depends on X86_32
185         help
186           Select this for a Transmeta Crusoe processor.  Treats the processor
187           like a 586 with TSC, and sets some GCC optimization flags (like a
188           Pentium Pro with no alignment requirements).
189 
190 config MEFFICEON
191         bool "Efficeon"
192         depends on X86_32
193         help
194           Select this for a Transmeta Efficeon processor.
195 
196 config MWINCHIPC6
197         bool "Winchip-C6"
198         depends on X86_32
199         help
200           Select this for an IDT Winchip C6 chip.  Linux and GCC
201           treat this chip as a 586TSC with some extended instructions
202           and alignment requirements.
203 
204 config MWINCHIP3D
205         bool "Winchip-2/Winchip-2A/Winchip-3"
206         depends on X86_32
207         help
208           Select this for an IDT Winchip-2, 2A or 3.  Linux and GCC
209           treat this chip as a 586TSC with some extended instructions
210           and alignment requirements.  Also enable out of order memory
211           stores for this CPU, which can increase performance of some
212           operations.
213 
214 config MELAN
215         bool "AMD Elan"
216         depends on X86_32
217         help
218           Select this for an AMD Elan processor.
219 
220           Do not use this option for K6/Athlon/Opteron processors!
221 
222 config MGEODEGX1
223         bool "GeodeGX1"
224         depends on X86_32
225         help
226           Select this for a Geode GX1 (Cyrix MediaGX) chip.
227 
228 config MGEODE_LX
229         bool "Geode GX/LX"
230         depends on X86_32
231         help
232           Select this for AMD Geode GX and LX processors.
233 
234 config MCYRIXIII
235         bool "CyrixIII/VIA-C3"
236         depends on X86_32
237         help
238           Select this for a Cyrix III or C3 chip.  Presently Linux and GCC
239           treat this chip as a generic 586. Whilst the CPU is 686 class,
240           it lacks the cmov extension which gcc assumes is present when
241           generating 686 code.
242           Note that Nehemiah (Model 9) and above will not boot with this
243           kernel due to them lacking the 3DNow! instructions used in earlier
244           incarnations of the CPU.
245 
246 config MVIAC3_2
247         bool "VIA C3-2 (Nehemiah)"
248         depends on X86_32
249         help
250           Select this for a VIA C3 "Nehemiah". Selecting this enables usage
251           of SSE and tells gcc to treat the CPU as a 686.
252           Note, this kernel will not boot on older (pre model 9) C3s.
253 
254 config MVIAC7
255         bool "VIA C7"
256         depends on X86_32
257         help
258           Select this for a VIA C7.  Selecting this uses the correct cache
259           shift and tells gcc to treat the CPU as a 686.
260 
261 config MPSC
262         bool "Intel P4 / older Netburst based Xeon"
263         depends on X86_64
264         help
265           Optimize for Intel Pentium 4, Pentium D and older Nocona/Dempsey
266           Xeon CPUs with Intel 64bit which is compatible with x86-64.
267           Note that the latest Xeons (Xeon 51xx and 53xx) are not based on the
268           Netburst core and shouldn't use this option. You can distinguish them
269           using the cpu family field
270           in /proc/cpuinfo. Family 15 is an older Xeon, Family 6 a newer one.
271 
272 config MCORE2
273         bool "Core 2/newer Xeon"
274         help
275 
276           Select this for Intel Core 2 and newer Core 2 Xeons (Xeon 51xx and
277           53xx) CPUs. You can distinguish newer from older Xeons by the CPU
278           family in /proc/cpuinfo. Newer ones have 6 and older ones 15
279           (not a typo)
280 
281 config MATOM
282         bool "Intel Atom"
283         help
284 
285           Select this for the Intel Atom platform. Intel Atom CPUs have an
286           in-order pipelining architecture and thus can benefit from
287           accordingly optimized code. Use a recent GCC with specific Atom
288           support in order to fully benefit from selecting this option.
289 
290 config GENERIC_CPU
291         bool "Generic-x86-64"
292         depends on X86_64
293         help
294           Generic x86-64 CPU.
295           Run equally well on all x86-64 CPUs.
296 
297 endchoice
298 
299 config X86_GENERIC
300         bool "Generic x86 support"
301         depends on X86_32
302         help
303           Instead of just including optimizations for the selected
304           x86 variant (e.g. PII, Crusoe or Athlon), include some more
305           generic optimizations as well. This will make the kernel
306           perform better on x86 CPUs other than that selected.
307 
308           This is really intended for distributors who need more
309           generic optimizations.
310 
311 #
312 # Define implied options from the CPU selection here
313 config X86_INTERNODE_CACHE_SHIFT
314         int
315         default "12" if X86_VSMP
316         default X86_L1_CACHE_SHIFT
317 
318 config X86_L1_CACHE_SHIFT
319         int
320         default "7" if MPENTIUM4 || MPSC
321         default "6" if MK7 || MK8 || MPENTIUMM || MCORE2 || MATOM || MVIAC7 || X86_GENERIC || GENERIC_CPU
322         default "4" if MELAN || M486SX || M486 || MGEODEGX1
323         default "5" if MWINCHIP3D || MWINCHIPC6 || MCRUSOE || MEFFICEON || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || M586 || MVIAC3_2 || MGEODE_LX
324 
325 config X86_F00F_BUG
326         def_bool y
327         depends on M586MMX || M586TSC || M586 || M486SX || M486
328 
329 config X86_INVD_BUG
330         def_bool y
331         depends on M486SX || M486
332 
333 config X86_ALIGNMENT_16
334         def_bool y
335         depends on MWINCHIP3D || MWINCHIPC6 || MCYRIXIII || MELAN || MK6 || M586MMX || M586TSC || M586 || M486SX || M486 || MVIAC3_2 || MGEODEGX1
336 
337 config X86_INTEL_USERCOPY
338         def_bool y
339         depends on MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M586MMX || X86_GENERIC || MK8 || MK7 || MEFFICEON || MCORE2
340 
341 config X86_USE_PPRO_CHECKSUM
342         def_bool y
343         depends on MWINCHIP3D || MWINCHIPC6 || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MK8 || MVIAC3_2 || MVIAC7 || MEFFICEON || MGEODE_LX || MCORE2 || MATOM
344 
345 #
346 # P6_NOPs are a relatively minor optimization that require a family >=
347 # 6 processor, except that it is broken on certain VIA chips.
348 # Furthermore, AMD chips prefer a totally different sequence of NOPs
349 # (which work on all CPUs).  In addition, it looks like Virtual PC
350 # does not understand them.
351 #
352 # As a result, disallow these if we're not compiling for X86_64 (these
353 # NOPs do work on all x86-64 capable chips); the list of processors in
354 # the right-hand clause are the cores that benefit from this optimization.
355 #
356 config X86_P6_NOP
357         def_bool y
358         depends on X86_64
359         depends on (MCORE2 || MPENTIUM4 || MPSC)
360 
361 config X86_TSC
362         def_bool y
363         depends on (MWINCHIP3D || MCRUSOE || MEFFICEON || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || MK8 || MVIAC3_2 || MVIAC7 || MGEODEGX1 || MGEODE_LX || MCORE2 || MATOM) || X86_64
364 
365 config X86_HAVE_PAE
366         def_bool y
367         depends on MCRUSOE || MEFFICEON || MCYRIXIII || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MK8 || MVIAC7 || MCORE2 || MATOM || X86_64
368 
369 config X86_CMPXCHG64
370         def_bool y
371         depends on X86_HAVE_PAE || M586TSC || M586MMX || MK6 || MK7
372 
373 # this should be set for all -march=.. options where the compiler
374 # generates cmov.
375 config X86_CMOV
376         def_bool y
377         depends on (MK8 || MK7 || MCORE2 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MVIAC3_2 || MVIAC7 || MCRUSOE || MEFFICEON || X86_64 || MATOM || MGEODE_LX)
378 
379 config X86_MINIMUM_CPU_FAMILY
380         int
381         default "64" if X86_64
382         default "6" if X86_32 && (MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MVIAC3_2 || MVIAC7 || MEFFICEON || MATOM || MCORE2 || MK7 || MK8)
383         default "5" if X86_32 && X86_CMPXCHG64
384         default "4"
385 
386 config X86_DEBUGCTLMSR
387         def_bool y
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
397 
398 menuconfig PROCESSOR_SELECT
399         bool "Supported processor vendors" if EXPERT
400         help
401           This lets you choose what x86 vendor support code your kernel
402           will include.
403 
404 config CPU_SUP_INTEL
405         default y
406         bool "Support Intel processors" if PROCESSOR_SELECT
407         help
408           This enables detection, tunings and quirks for Intel processors
409 
410           You need this enabled if you want your kernel to run on an
411           Intel CPU. Disabling this option on other types of CPUs
412           makes the kernel a tiny bit smaller. Disabling it on an Intel
413           CPU might render the kernel unbootable.
414 
415           If unsure, say N.
416 
417 config CPU_SUP_CYRIX_32
418         default y
419         bool "Support Cyrix processors" if PROCESSOR_SELECT
420         depends on M486SX || M486 || M586 || M586TSC || M586MMX || (EXPERT && !64BIT)
421         help
422           This enables detection, tunings and quirks for Cyrix processors
423 
424           You need this enabled if you want your kernel to run on a
425           Cyrix CPU. Disabling this option on other types of CPUs
426           makes the kernel a tiny bit smaller. Disabling it on a Cyrix
427           CPU might render the kernel unbootable.
428 
429           If unsure, say N.
430 
431 config CPU_SUP_AMD
432         default y
433         bool "Support AMD processors" if PROCESSOR_SELECT
434         help
435           This enables detection, tunings and quirks for AMD processors
436 
437           You need this enabled if you want your kernel to run on an
438           AMD CPU. Disabling this option on other types of CPUs
439           makes the kernel a tiny bit smaller. Disabling it on an AMD
440           CPU might render the kernel unbootable.
441 
442           If unsure, say N.
443 
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 
458 config CPU_SUP_CENTAUR
459         default y
460         bool "Support Centaur processors" if PROCESSOR_SELECT
461         help
462           This enables detection, tunings and quirks for Centaur processors
463 
464           You need this enabled if you want your kernel to run on a
465           Centaur CPU. Disabling this option on other types of CPUs
466           makes the kernel a tiny bit smaller. Disabling it on a Centaur
467           CPU might render the kernel unbootable.
468 
469           If unsure, say N.
470 
471 config CPU_SUP_TRANSMETA_32
472         default y
473         bool "Support Transmeta processors" if PROCESSOR_SELECT
474         depends on !64BIT
475         help
476           This enables detection, tunings and quirks for Transmeta processors
477 
478           You need this enabled if you want your kernel to run on a
479           Transmeta CPU. Disabling this option on other types of CPUs
480           makes the kernel a tiny bit smaller. Disabling it on a Transmeta
481           CPU might render the kernel unbootable.
482 
483           If unsure, say N.
484 
485 config CPU_SUP_UMC_32
486         default y
487         bool "Support UMC processors" if PROCESSOR_SELECT
488         depends on M486SX || M486 || (EXPERT && !64BIT)
489         help
490           This enables detection, tunings and quirks for UMC processors
491 
492           You need this enabled if you want your kernel to run on a
493           UMC CPU. Disabling this option on other types of CPUs
494           makes the kernel a tiny bit smaller. Disabling it on a UMC
495           CPU might render the kernel unbootable.
496 
497           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.
511 
512 config CPU_SUP_VORTEX_32
513         default y
514         bool "Support Vortex processors" if PROCESSOR_SELECT
515         depends on X86_32
516         help
517           This enables detection, tunings and quirks for Vortex processors
518 
519           You need this enabled if you want your kernel to run on a
520           Vortex CPU. Disabling this option on other types of CPUs
521           makes the kernel a tiny bit smaller.
522 
523           If unsure, say N.

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php