Blame view

arch/x86/Kconfig.cpu 16.2 KB
b24413180   Greg Kroah-Hartman   License cleanup: ...
1
  # SPDX-License-Identifier: GPL-2.0
96d55b882   Paolo 'Blaisorblade' Giarrusso   [PATCH] uml: reus...
2
  # Put here option for CPU selection and depending optimization
96d55b882   Paolo 'Blaisorblade' Giarrusso   [PATCH] uml: reus...
3
4
  choice
  	prompt "Processor family"
1032c0ba9   Sam Ravnborg   x86: arch/x86/Kco...
5
6
  	default M686 if X86_32
  	default GENERIC_CPU if X86_64
a7f7f6248   Masahiro Yamada   treewide: replace...
7
  	help
eb068e781   H. Peter Anvin   x86, 386 removal:...
8
9
10
11
12
13
14
  	  This is the processor type of your CPU. This information is
  	  used for optimizing purposes. In order to compile a kernel
  	  that can run on all supported x86 CPU types (albeit not
  	  optimally fast), you can specify "486" here.
  
  	  Note that the 386 is no longer supported, this includes
  	  AMD/Cyrix/Intel 386DX/DXL/SL/SLC/SX, Cyrix/TI 486DLC/DLC2,
11af32b69   H. Peter Anvin   x86, 386 removal:...
15
  	  UMC 486SX-S and the NexGen Nx586.
96d55b882   Paolo 'Blaisorblade' Giarrusso   [PATCH] uml: reus...
16
17
18
19
20
21
  
  	  The kernel will not necessarily run on earlier architectures than
  	  the one you have chosen, e.g. a Pentium optimized kernel will run on
  	  a PPro, but not necessarily on a i486.
  
  	  Here are the settings recommended for greatest speed:
96d55b882   Paolo 'Blaisorblade' Giarrusso   [PATCH] uml: reus...
22
  	  - "486" for the AMD/Cyrix/IBM/Intel 486DX/DX2/DX4 or
221836e92   Borislav Petkov   x86/Kconfig/cpus:...
23
  	    SL/SLC/SLC2/SLC3/SX/SX2 and UMC U5D or U5S.
96d55b882   Paolo 'Blaisorblade' Giarrusso   [PATCH] uml: reus...
24
  	  - "586" for generic Pentium CPUs lacking the TSC
221836e92   Borislav Petkov   x86/Kconfig/cpus:...
25
  	    (time stamp counter) register.
96d55b882   Paolo 'Blaisorblade' Giarrusso   [PATCH] uml: reus...
26
27
28
29
30
31
32
33
  	  - "Pentium-Classic" for the Intel Pentium.
  	  - "Pentium-MMX" for the Intel Pentium MMX.
  	  - "Pentium-Pro" for the Intel Pentium Pro.
  	  - "Pentium-II" for the Intel Pentium II or pre-Coppermine Celeron.
  	  - "Pentium-III" for the Intel Pentium III or Coppermine Celeron.
  	  - "Pentium-4" for the Intel Pentium 4 or P4-based Celeron.
  	  - "K6" for the AMD K6, K6-II and K6-III (aka K6-3D).
  	  - "Athlon" for the AMD K7 family (Athlon/Duron/Thunderbird).
221836e92   Borislav Petkov   x86/Kconfig/cpus:...
34
  	  - "Opteron/Athlon64/Hammer/K8" for all K8 and newer AMD CPUs.
96d55b882   Paolo 'Blaisorblade' Giarrusso   [PATCH] uml: reus...
35
36
37
  	  - "Crusoe" for the Transmeta Crusoe series.
  	  - "Efficeon" for the Transmeta Efficeon series.
  	  - "Winchip-C6" for original IDT Winchip.
69d45dd1c   Krzysztof Helt   x86: merge winchi...
38
  	  - "Winchip-2" for IDT Winchips with 3dNow! capabilities.
221836e92   Borislav Petkov   x86/Kconfig/cpus:...
39
  	  - "AMD Elan" for the 32-bit AMD Elan embedded CPU.
96d55b882   Paolo 'Blaisorblade' Giarrusso   [PATCH] uml: reus...
40
  	  - "GeodeGX1" for Geode GX1 (Cyrix MediaGX).
f90b81160   Jordan Crouse   [PATCH] Base supp...
41
  	  - "Geode GX/LX" For AMD Geode GX and LX processors.
96d55b882   Paolo 'Blaisorblade' Giarrusso   [PATCH] uml: reus...
42
  	  - "CyrixIII/VIA C3" for VIA Cyrix III or VIA C3.
48a1204c4   Egry Gabor   i386: Trivial typ...
43
  	  - "VIA C3-2" for VIA C3-2 "Nehemiah" (model 9 and above).
0949be350   Simon Arlott   [PATCH] i386: Add...
44
  	  - "VIA C7" for VIA C7.
221836e92   Borislav Petkov   x86/Kconfig/cpus:...
45
46
47
48
49
50
51
  	  - "Intel P4" for the Pentium 4/Netburst microarchitecture.
  	  - "Core 2/newer Xeon" for all core2 and newer Intel CPUs.
  	  - "Intel Atom" for the Atom-microarchitecture CPUs.
  	  - "Generic-x86-64" for a kernel which runs on any x86-64 CPU.
  
  	  See each option's help text for additional details. If you don't know
  	  what to do, choose "486".
96d55b882   Paolo 'Blaisorblade' Giarrusso   [PATCH] uml: reus...
52

87d6021b8   Arnd Bergmann   x86/math-emu: Lim...
53
54
55
  config M486SX
  	bool "486SX"
  	depends on X86_32
a7f7f6248   Masahiro Yamada   treewide: replace...
56
  	help
87d6021b8   Arnd Bergmann   x86/math-emu: Lim...
57
58
  	  Select this for an 486-class CPU without an FPU such as
  	  AMD/Cyrix/IBM/Intel SL/SLC/SLC2/SLC3/SX/SX2 and UMC U5S.
221836e92   Borislav Petkov   x86/Kconfig/cpus:...
59
  config M486
87d6021b8   Arnd Bergmann   x86/math-emu: Lim...
60
  	bool "486DX"
221836e92   Borislav Petkov   x86/Kconfig/cpus:...
61
  	depends on X86_32
a7f7f6248   Masahiro Yamada   treewide: replace...
62
  	help
221836e92   Borislav Petkov   x86/Kconfig/cpus:...
63
  	  Select this for an 486-class CPU such as AMD/Cyrix/IBM/Intel
87d6021b8   Arnd Bergmann   x86/math-emu: Lim...
64
  	  486DX/DX2/DX4 and UMC U5D.
96d55b882   Paolo 'Blaisorblade' Giarrusso   [PATCH] uml: reus...
65
66
67
  
  config M586
  	bool "586/K5/5x86/6x86/6x86MX"
1032c0ba9   Sam Ravnborg   x86: arch/x86/Kco...
68
  	depends on X86_32
a7f7f6248   Masahiro Yamada   treewide: replace...
69
  	help
96d55b882   Paolo 'Blaisorblade' Giarrusso   [PATCH] uml: reus...
70
71
72
73
74
75
  	  Select this for an 586 or 686 series processor such as the AMD K5,
  	  the Cyrix 5x86, 6x86 and 6x86MX.  This choice does not
  	  assume the RDTSC (Read Time Stamp Counter) instruction.
  
  config M586TSC
  	bool "Pentium-Classic"
1032c0ba9   Sam Ravnborg   x86: arch/x86/Kco...
76
  	depends on X86_32
a7f7f6248   Masahiro Yamada   treewide: replace...
77
  	help
96d55b882   Paolo 'Blaisorblade' Giarrusso   [PATCH] uml: reus...
78
79
80
81
82
  	  Select this for a Pentium Classic processor with the RDTSC (Read
  	  Time Stamp Counter) instruction for benchmarking.
  
  config M586MMX
  	bool "Pentium-MMX"
1032c0ba9   Sam Ravnborg   x86: arch/x86/Kco...
83
  	depends on X86_32
a7f7f6248   Masahiro Yamada   treewide: replace...
84
  	help
96d55b882   Paolo 'Blaisorblade' Giarrusso   [PATCH] uml: reus...
85
86
87
88
89
  	  Select this for a Pentium with the MMX graphics/multimedia
  	  extended instructions.
  
  config M686
  	bool "Pentium-Pro"
1032c0ba9   Sam Ravnborg   x86: arch/x86/Kco...
90
  	depends on X86_32
a7f7f6248   Masahiro Yamada   treewide: replace...
91
  	help
96d55b882   Paolo 'Blaisorblade' Giarrusso   [PATCH] uml: reus...
92
93
94
95
96
97
  	  Select this for Intel Pentium Pro chips.  This enables the use of
  	  Pentium Pro extended instructions, and disables the init-time guard
  	  against the f00f bug found in earlier Pentiums.
  
  config MPENTIUMII
  	bool "Pentium-II/Celeron(pre-Coppermine)"
1032c0ba9   Sam Ravnborg   x86: arch/x86/Kco...
98
  	depends on X86_32
a7f7f6248   Masahiro Yamada   treewide: replace...
99
  	help
96d55b882   Paolo 'Blaisorblade' Giarrusso   [PATCH] uml: reus...
100
101
102
103
104
105
106
107
  	  Select this for Intel chips based on the Pentium-II and
  	  pre-Coppermine Celeron core.  This option enables an unaligned
  	  copy optimization, compiles the kernel with optimization flags
  	  tailored for the chip, and applies any applicable Pentium Pro
  	  optimizations.
  
  config MPENTIUMIII
  	bool "Pentium-III/Celeron(Coppermine)/Pentium-III Xeon"
1032c0ba9   Sam Ravnborg   x86: arch/x86/Kco...
108
  	depends on X86_32
a7f7f6248   Masahiro Yamada   treewide: replace...
109
  	help
96d55b882   Paolo 'Blaisorblade' Giarrusso   [PATCH] uml: reus...
110
111
112
113
114
115
116
  	  Select this for Intel chips based on the Pentium-III and
  	  Celeron-Coppermine core.  This option enables use of some
  	  extended prefetch instructions in addition to the Pentium II
  	  extensions.
  
  config MPENTIUMM
  	bool "Pentium M"
1032c0ba9   Sam Ravnborg   x86: arch/x86/Kco...
117
  	depends on X86_32
a7f7f6248   Masahiro Yamada   treewide: replace...
118
  	help
96d55b882   Paolo 'Blaisorblade' Giarrusso   [PATCH] uml: reus...
119
120
121
122
  	  Select this for Intel Pentium M (not Pentium-4 M)
  	  notebook chips.
  
  config MPENTIUM4
c55d92d14   Andi Kleen   [PATCH] i386: Add...
123
  	bool "Pentium-4/Celeron(P4-based)/Pentium-4 M/older Xeon"
1032c0ba9   Sam Ravnborg   x86: arch/x86/Kco...
124
  	depends on X86_32
a7f7f6248   Masahiro Yamada   treewide: replace...
125
  	help
96d55b882   Paolo 'Blaisorblade' Giarrusso   [PATCH] uml: reus...
126
  	  Select this for Intel Pentium 4 chips.  This includes the
75e3808b6   Oliver Pinter   x86: add cpu code...
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
  	  Pentium 4, Pentium D, P4-based Celeron and Xeon, and
  	  Pentium-4 M (not Pentium M) chips.  This option enables compile
  	  flags optimized for the chip, uses the correct cache line size, and
  	  applies any applicable optimizations.
  
  	  CPUIDs: F[0-6][1-A] (in /proc/cpuinfo show = cpu family : 15 )
  
  	  Select this for:
  	    Pentiums (Pentium 4, Pentium D, Celeron, Celeron D) corename:
  		-Willamette
  		-Northwood
  		-Mobile Pentium 4
  		-Mobile Pentium 4 M
  		-Extreme Edition (Gallatin)
  		-Prescott
  		-Prescott 2M
  		-Cedar Mill
  		-Presler
  		-Smithfiled
  	    Xeons (Intel Xeon, Xeon MP, Xeon LV, Xeon MV) corename:
  		-Foster
  		-Prestonia
  		-Gallatin
  		-Nocona
  		-Irwindale
  		-Cranford
  		-Potomac
  		-Paxville
  		-Dempsey
96d55b882   Paolo 'Blaisorblade' Giarrusso   [PATCH] uml: reus...
156
157
158
  
  config MK6
  	bool "K6/K6-II/K6-III"
1032c0ba9   Sam Ravnborg   x86: arch/x86/Kco...
159
  	depends on X86_32
a7f7f6248   Masahiro Yamada   treewide: replace...
160
  	help
96d55b882   Paolo 'Blaisorblade' Giarrusso   [PATCH] uml: reus...
161
162
163
164
165
166
  	  Select this for an AMD K6-family processor.  Enables use of
  	  some extended instructions, and passes appropriate optimization
  	  flags to GCC.
  
  config MK7
  	bool "Athlon/Duron/K7"
1032c0ba9   Sam Ravnborg   x86: arch/x86/Kco...
167
  	depends on X86_32
a7f7f6248   Masahiro Yamada   treewide: replace...
168
  	help
96d55b882   Paolo 'Blaisorblade' Giarrusso   [PATCH] uml: reus...
169
170
171
172
173
174
  	  Select this for an AMD Athlon K7-family processor.  Enables use of
  	  some extended instructions, and passes appropriate optimization
  	  flags to GCC.
  
  config MK8
  	bool "Opteron/Athlon64/Hammer/K8"
a7f7f6248   Masahiro Yamada   treewide: replace...
175
  	help
36723bfe8   Borislav Petkov   x86/Kconfig.cpu: ...
176
177
178
  	  Select this for an AMD Opteron or Athlon64 Hammer-family processor.
  	  Enables use of some extended instructions, and passes appropriate
  	  optimization flags to GCC.
96d55b882   Paolo 'Blaisorblade' Giarrusso   [PATCH] uml: reus...
179
180
181
  
  config MCRUSOE
  	bool "Crusoe"
1032c0ba9   Sam Ravnborg   x86: arch/x86/Kco...
182
  	depends on X86_32
a7f7f6248   Masahiro Yamada   treewide: replace...
183
  	help
96d55b882   Paolo 'Blaisorblade' Giarrusso   [PATCH] uml: reus...
184
185
186
187
188
189
  	  Select this for a Transmeta Crusoe processor.  Treats the processor
  	  like a 586 with TSC, and sets some GCC optimization flags (like a
  	  Pentium Pro with no alignment requirements).
  
  config MEFFICEON
  	bool "Efficeon"
1032c0ba9   Sam Ravnborg   x86: arch/x86/Kco...
190
  	depends on X86_32
a7f7f6248   Masahiro Yamada   treewide: replace...
191
  	help
96d55b882   Paolo 'Blaisorblade' Giarrusso   [PATCH] uml: reus...
192
193
194
195
  	  Select this for a Transmeta Efficeon processor.
  
  config MWINCHIPC6
  	bool "Winchip-C6"
1032c0ba9   Sam Ravnborg   x86: arch/x86/Kco...
196
  	depends on X86_32
a7f7f6248   Masahiro Yamada   treewide: replace...
197
  	help
96d55b882   Paolo 'Blaisorblade' Giarrusso   [PATCH] uml: reus...
198
199
200
  	  Select this for an IDT Winchip C6 chip.  Linux and GCC
  	  treat this chip as a 586TSC with some extended instructions
  	  and alignment requirements.
96d55b882   Paolo 'Blaisorblade' Giarrusso   [PATCH] uml: reus...
201
  config MWINCHIP3D
69d45dd1c   Krzysztof Helt   x86: merge winchi...
202
  	bool "Winchip-2/Winchip-2A/Winchip-3"
1032c0ba9   Sam Ravnborg   x86: arch/x86/Kco...
203
  	depends on X86_32
a7f7f6248   Masahiro Yamada   treewide: replace...
204
  	help
69d45dd1c   Krzysztof Helt   x86: merge winchi...
205
  	  Select this for an IDT Winchip-2, 2A or 3.  Linux and GCC
96d55b882   Paolo 'Blaisorblade' Giarrusso   [PATCH] uml: reus...
206
  	  treat this chip as a 586TSC with some extended instructions
3dde6ad8f   David Sterba   Fix trivial typos...
207
  	  and alignment requirements.  Also enable out of order memory
96d55b882   Paolo 'Blaisorblade' Giarrusso   [PATCH] uml: reus...
208
209
  	  stores for this CPU, which can increase performance of some
  	  operations.
ce9c99af8   Ian Campbell   x86, cpu: Move AM...
210
211
212
  config MELAN
  	bool "AMD Elan"
  	depends on X86_32
a7f7f6248   Masahiro Yamada   treewide: replace...
213
  	help
ce9c99af8   Ian Campbell   x86, cpu: Move AM...
214
215
216
  	  Select this for an AMD Elan processor.
  
  	  Do not use this option for K6/Athlon/Opteron processors!
96d55b882   Paolo 'Blaisorblade' Giarrusso   [PATCH] uml: reus...
217
218
  config MGEODEGX1
  	bool "GeodeGX1"
1032c0ba9   Sam Ravnborg   x86: arch/x86/Kco...
219
  	depends on X86_32
a7f7f6248   Masahiro Yamada   treewide: replace...
220
  	help
96d55b882   Paolo 'Blaisorblade' Giarrusso   [PATCH] uml: reus...
221
  	  Select this for a Geode GX1 (Cyrix MediaGX) chip.
f90b81160   Jordan Crouse   [PATCH] Base supp...
222
  config MGEODE_LX
96daa8cd5   Harvey Harrison   x86: use def_bool...
223
  	bool "Geode GX/LX"
1032c0ba9   Sam Ravnborg   x86: arch/x86/Kco...
224
  	depends on X86_32
a7f7f6248   Masahiro Yamada   treewide: replace...
225
  	help
96daa8cd5   Harvey Harrison   x86: use def_bool...
226
  	  Select this for AMD Geode GX and LX processors.
f90b81160   Jordan Crouse   [PATCH] Base supp...
227

96d55b882   Paolo 'Blaisorblade' Giarrusso   [PATCH] uml: reus...
228
229
  config MCYRIXIII
  	bool "CyrixIII/VIA-C3"
1032c0ba9   Sam Ravnborg   x86: arch/x86/Kco...
230
  	depends on X86_32
a7f7f6248   Masahiro Yamada   treewide: replace...
231
  	help
96d55b882   Paolo 'Blaisorblade' Giarrusso   [PATCH] uml: reus...
232
233
234
235
236
237
238
239
240
241
  	  Select this for a Cyrix III or C3 chip.  Presently Linux and GCC
  	  treat this chip as a generic 586. Whilst the CPU is 686 class,
  	  it lacks the cmov extension which gcc assumes is present when
  	  generating 686 code.
  	  Note that Nehemiah (Model 9) and above will not boot with this
  	  kernel due to them lacking the 3DNow! instructions used in earlier
  	  incarnations of the CPU.
  
  config MVIAC3_2
  	bool "VIA C3-2 (Nehemiah)"
1032c0ba9   Sam Ravnborg   x86: arch/x86/Kco...
242
  	depends on X86_32
a7f7f6248   Masahiro Yamada   treewide: replace...
243
  	help
96d55b882   Paolo 'Blaisorblade' Giarrusso   [PATCH] uml: reus...
244
245
246
  	  Select this for a VIA C3 "Nehemiah". Selecting this enables usage
  	  of SSE and tells gcc to treat the CPU as a 686.
  	  Note, this kernel will not boot on older (pre model 9) C3s.
0949be350   Simon Arlott   [PATCH] i386: Add...
247
248
  config MVIAC7
  	bool "VIA C7"
1032c0ba9   Sam Ravnborg   x86: arch/x86/Kco...
249
  	depends on X86_32
a7f7f6248   Masahiro Yamada   treewide: replace...
250
  	help
0949be350   Simon Arlott   [PATCH] i386: Add...
251
252
  	  Select this for a VIA C7.  Selecting this uses the correct cache
  	  shift and tells gcc to treat the CPU as a 686.
1032c0ba9   Sam Ravnborg   x86: arch/x86/Kco...
253
254
255
  config MPSC
  	bool "Intel P4 / older Netburst based Xeon"
  	depends on X86_64
a7f7f6248   Masahiro Yamada   treewide: replace...
256
  	help
1032c0ba9   Sam Ravnborg   x86: arch/x86/Kco...
257
258
259
  	  Optimize for Intel Pentium 4, Pentium D and older Nocona/Dempsey
  	  Xeon CPUs with Intel 64bit which is compatible with x86-64.
  	  Note that the latest Xeons (Xeon 51xx and 53xx) are not based on the
96daa8cd5   Harvey Harrison   x86: use def_bool...
260
  	  Netburst core and shouldn't use this option. You can distinguish them
1032c0ba9   Sam Ravnborg   x86: arch/x86/Kco...
261
262
263
264
265
  	  using the cpu family field
  	  in /proc/cpuinfo. Family 15 is an older Xeon, Family 6 a newer one.
  
  config MCORE2
  	bool "Core 2/newer Xeon"
a7f7f6248   Masahiro Yamada   treewide: replace...
266
  	help
36723bfe8   Borislav Petkov   x86/Kconfig.cpu: ...
267
268
269
270
271
  
  	  Select this for Intel Core 2 and newer Core 2 Xeons (Xeon 51xx and
  	  53xx) CPUs. You can distinguish newer from older Xeons by the CPU
  	  family in /proc/cpuinfo. Newer ones have 6 and older ones 15
  	  (not a typo)
1032c0ba9   Sam Ravnborg   x86: arch/x86/Kco...
272

366d19e18   Tobias Doerffel   x86: add specific...
273
274
  config MATOM
  	bool "Intel Atom"
a7f7f6248   Masahiro Yamada   treewide: replace...
275
  	help
366d19e18   Tobias Doerffel   x86: add specific...
276
277
278
279
280
  
  	  Select this for the Intel Atom platform. Intel Atom CPUs have an
  	  in-order pipelining architecture and thus can benefit from
  	  accordingly optimized code. Use a recent GCC with specific Atom
  	  support in order to fully benefit from selecting this option.
1032c0ba9   Sam Ravnborg   x86: arch/x86/Kco...
281
282
283
  config GENERIC_CPU
  	bool "Generic-x86-64"
  	depends on X86_64
a7f7f6248   Masahiro Yamada   treewide: replace...
284
  	help
1032c0ba9   Sam Ravnborg   x86: arch/x86/Kco...
285
286
  	  Generic x86-64 CPU.
  	  Run equally well on all x86-64 CPUs.
96d55b882   Paolo 'Blaisorblade' Giarrusso   [PATCH] uml: reus...
287
288
289
  endchoice
  
  config X86_GENERIC
1032c0ba9   Sam Ravnborg   x86: arch/x86/Kco...
290
291
  	bool "Generic x86 support"
  	depends on X86_32
a7f7f6248   Masahiro Yamada   treewide: replace...
292
  	help
96d55b882   Paolo 'Blaisorblade' Giarrusso   [PATCH] uml: reus...
293
294
295
296
297
298
299
  	  Instead of just including optimizations for the selected
  	  x86 variant (e.g. PII, Crusoe or Athlon), include some more
  	  generic optimizations as well. This will make the kernel
  	  perform better on x86 CPUs other than that selected.
  
  	  This is really intended for distributors who need more
  	  generic optimizations.
96d55b882   Paolo 'Blaisorblade' Giarrusso   [PATCH] uml: reus...
300
301
  #
  # Define implied options from the CPU selection here
350f8f563   Jan Beulich   x86: Eliminate re...
302
  config X86_INTERNODE_CACHE_SHIFT
1032c0ba9   Sam Ravnborg   x86: arch/x86/Kco...
303
  	int
350f8f563   Jan Beulich   x86: Eliminate re...
304
  	default "12" if X86_VSMP
350f8f563   Jan Beulich   x86: Eliminate re...
305
  	default X86_L1_CACHE_SHIFT
1032c0ba9   Sam Ravnborg   x86: arch/x86/Kco...
306

96d55b882   Paolo 'Blaisorblade' Giarrusso   [PATCH] uml: reus...
307
308
  config X86_L1_CACHE_SHIFT
  	int
0a2a18b72   Ingo Molnar   x86: change the d...
309
  	default "7" if MPENTIUM4 || MPSC
350f8f563   Jan Beulich   x86: Eliminate re...
310
  	default "6" if MK7 || MK8 || MPENTIUMM || MCORE2 || MATOM || MVIAC7 || X86_GENERIC || GENERIC_CPU
87d6021b8   Arnd Bergmann   x86/math-emu: Lim...
311
  	default "4" if MELAN || M486SX || M486 || MGEODEGX1
69d45dd1c   Krzysztof Helt   x86: merge winchi...
312
  	default "5" if MWINCHIP3D || MWINCHIPC6 || MCRUSOE || MEFFICEON || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || M586 || MVIAC3_2 || MGEODE_LX
96d55b882   Paolo 'Blaisorblade' Giarrusso   [PATCH] uml: reus...
313

96d55b882   Paolo 'Blaisorblade' Giarrusso   [PATCH] uml: reus...
314
  config X86_F00F_BUG
96daa8cd5   Harvey Harrison   x86: use def_bool...
315
  	def_bool y
87d6021b8   Arnd Bergmann   x86/math-emu: Lim...
316
  	depends on M586MMX || M586TSC || M586 || M486SX || M486
96d55b882   Paolo 'Blaisorblade' Giarrusso   [PATCH] uml: reus...
317

40d2e7631   Brian Gerst   x86-32: Rework ca...
318
319
  config X86_INVD_BUG
  	def_bool y
87d6021b8   Arnd Bergmann   x86/math-emu: Lim...
320
  	depends on M486SX || M486
40d2e7631   Brian Gerst   x86-32: Rework ca...
321

96d55b882   Paolo 'Blaisorblade' Giarrusso   [PATCH] uml: reus...
322
  config X86_ALIGNMENT_16
96daa8cd5   Harvey Harrison   x86: use def_bool...
323
  	def_bool y
87d6021b8   Arnd Bergmann   x86/math-emu: Lim...
324
  	depends on MWINCHIP3D || MWINCHIPC6 || MCYRIXIII || MELAN || MK6 || M586MMX || M586TSC || M586 || M486SX || M486 || MVIAC3_2 || MGEODEGX1
96d55b882   Paolo 'Blaisorblade' Giarrusso   [PATCH] uml: reus...
325

96d55b882   Paolo 'Blaisorblade' Giarrusso   [PATCH] uml: reus...
326
  config X86_INTEL_USERCOPY
96daa8cd5   Harvey Harrison   x86: use def_bool...
327
  	def_bool y
c55d92d14   Andi Kleen   [PATCH] i386: Add...
328
  	depends on MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M586MMX || X86_GENERIC || MK8 || MK7 || MEFFICEON || MCORE2
96d55b882   Paolo 'Blaisorblade' Giarrusso   [PATCH] uml: reus...
329
330
  
  config X86_USE_PPRO_CHECKSUM
96daa8cd5   Harvey Harrison   x86: use def_bool...
331
  	def_bool y
1eda75c13   Jon Nettleton   x86: Use PentiumP...
332
  	depends on MWINCHIP3D || MWINCHIPC6 || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MK8 || MVIAC3_2 || MVIAC7 || MEFFICEON || MGEODE_LX || MCORE2 || MATOM
96d55b882   Paolo 'Blaisorblade' Giarrusso   [PATCH] uml: reus...
333
334
  
  config X86_USE_3DNOW
96daa8cd5   Harvey Harrison   x86: use def_bool...
335
  	def_bool y
1b4ad242f   Paolo 'Blaisorblade' Giarrusso   [PATCH] uml: fix ...
336
  	depends on (MCYRIXIII || MK7 || MGEODE_LX) && !UML
96d55b882   Paolo 'Blaisorblade' Giarrusso   [PATCH] uml: reus...
337

959b3be64   H. Peter Anvin   x86: don't use P6...
338
339
340
341
  #
  # P6_NOPs are a relatively minor optimization that require a family >=
  # 6 processor, except that it is broken on certain VIA chips.
  # Furthermore, AMD chips prefer a totally different sequence of NOPs
14469a8dd   Linus Torvalds   x86: disable stat...
342
343
344
345
346
347
  # (which work on all CPUs).  In addition, it looks like Virtual PC
  # does not understand them.
  #
  # As a result, disallow these if we're not compiling for X86_64 (these
  # NOPs do work on all x86-64 capable chips); the list of processors in
  # the right-hand clause are the cores that benefit from this optimization.
959b3be64   H. Peter Anvin   x86: don't use P6...
348
  #
7343b3b3a   H. Peter Anvin   x86: require fami...
349
350
  config X86_P6_NOP
  	def_bool y
14469a8dd   Linus Torvalds   x86: disable stat...
351
352
  	depends on X86_64
  	depends on (MCORE2 || MPENTIUM4 || MPSC)
7343b3b3a   H. Peter Anvin   x86: require fami...
353

96d55b882   Paolo 'Blaisorblade' Giarrusso   [PATCH] uml: reus...
354
  config X86_TSC
96daa8cd5   Harvey Harrison   x86: use def_bool...
355
  	def_bool y
b5660ba76   H. Peter Anvin   x86, platforms: R...
356
  	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
c7f81c945   Andi Kleen   [PATCH] i386: Ver...
357

f8096f92b   Jan Beulich   x86: separate cmp...
358
359
  config X86_CMPXCHG64
  	def_bool y
f960cfd12   Matthew Whitehead   x86/Kconfig: Add ...
360
  	depends on X86_PAE || X86_64 || MCORE2 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586TSC || M586MMX || MATOM || MGEODE_LX || MGEODEGX1 || MK6 || MK7 || MK8
f8096f92b   Jan Beulich   x86: separate cmp...
361

c7f81c945   Andi Kleen   [PATCH] i386: Ver...
362
363
364
  # this should be set for all -march=.. options where the compiler
  # generates cmov.
  config X86_CMOV
96daa8cd5   Harvey Harrison   x86: use def_bool...
365
  	def_bool y
98059e346   Matteo Croce   x86: AMD Geode LX...
366
  	depends on (MK8 || MK7 || MCORE2 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MVIAC3_2 || MVIAC7 || MCRUSOE || MEFFICEON || X86_64 || MATOM || MGEODE_LX)
c7f81c945   Andi Kleen   [PATCH] i386: Ver...
367

de32e0417   H. Peter Anvin   x86 Kconfig: chan...
368
  config X86_MINIMUM_CPU_FAMILY
c7f81c945   Andi Kleen   [PATCH] i386: Ver...
369
  	int
1032c0ba9   Sam Ravnborg   x86: arch/x86/Kco...
370
  	default "64" if X86_64
25d76ac88   Matthew Whitehead   x86/Kconfig: Expl...
371
  	default "6" if X86_32 && (MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MVIAC3_2 || MVIAC7 || MEFFICEON || MATOM || MCRUSOE || MCORE2 || MK7 || MK8)
982d007a6   Linus Torvalds   x86: Optimize cmp...
372
  	default "5" if X86_32 && X86_CMPXCHG64
eb068e781   H. Peter Anvin   x86, 386 removal:...
373
  	default "4"
c7f81c945   Andi Kleen   [PATCH] i386: Ver...
374

0a049bb0a   Roland McGrath   x86: debugctlmsr ...
375
  config X86_DEBUGCTLMSR
96daa8cd5   Harvey Harrison   x86: use def_bool...
376
  	def_bool y
87d6021b8   Arnd Bergmann   x86/math-emu: Lim...
377
  	depends on !(MK6 || MWINCHIPC6 || MWINCHIP3D || MCYRIXIII || M586MMX || M586TSC || M586 || M486SX || M486) && !UML
8d02c2110   Thomas Petazzoni   x86: configuratio...
378

1db2a6e1e   Sean Christopherson   x86/intel: Initia...
379
380
  config IA32_FEAT_CTL
  	def_bool y
7d37953ba   Sean Christopherson   x86/zhaoxin: Use ...
381
  	depends on CPU_SUP_INTEL || CPU_SUP_CENTAUR || CPU_SUP_ZHAOXIN
1db2a6e1e   Sean Christopherson   x86/intel: Initia...
382

b47ce1fed   Sean Christopherson   x86/cpu: Detect V...
383
384
385
  config X86_VMX_FEATURE_NAMES
  	def_bool y
  	depends on IA32_FEAT_CTL && X86_FEATURE_NAMES
8d02c2110   Thomas Petazzoni   x86: configuratio...
386
  menuconfig PROCESSOR_SELECT
6a108a14f   David Rientjes   kconfig: rename C...
387
  	bool "Supported processor vendors" if EXPERT
a7f7f6248   Masahiro Yamada   treewide: replace...
388
  	help
8d02c2110   Thomas Petazzoni   x86: configuratio...
389
390
  	  This lets you choose what x86 vendor support code your kernel
  	  will include.
879d792b6   Yinghai Lu   x86: let intel 64...
391
  config CPU_SUP_INTEL
8d02c2110   Thomas Petazzoni   x86: configuratio...
392
393
  	default y
  	bool "Support Intel processors" if PROCESSOR_SELECT
a7f7f6248   Masahiro Yamada   treewide: replace...
394
  	help
b7b3a4253   Ingo Molnar   x86: extend proce...
395
396
397
398
399
400
401
402
  	  This enables detection, tunings and quirks for Intel processors
  
  	  You need this enabled if you want your kernel to run on an
  	  Intel CPU. Disabling this option on other types of CPUs
  	  makes the kernel a tiny bit smaller. Disabling it on an Intel
  	  CPU might render the kernel unbootable.
  
  	  If unsure, say N.
8d02c2110   Thomas Petazzoni   x86: configuratio...
403
404
405
406
  
  config CPU_SUP_CYRIX_32
  	default y
  	bool "Support Cyrix processors" if PROCESSOR_SELECT
87d6021b8   Arnd Bergmann   x86/math-emu: Lim...
407
  	depends on M486SX || M486 || M586 || M586TSC || M586MMX || (EXPERT && !64BIT)
a7f7f6248   Masahiro Yamada   treewide: replace...
408
  	help
b7b3a4253   Ingo Molnar   x86: extend proce...
409
410
411
412
413
414
415
416
  	  This enables detection, tunings and quirks for Cyrix processors
  
  	  You need this enabled if you want your kernel to run on a
  	  Cyrix CPU. Disabling this option on other types of CPUs
  	  makes the kernel a tiny bit smaller. Disabling it on a Cyrix
  	  CPU might render the kernel unbootable.
  
  	  If unsure, say N.
8d02c2110   Thomas Petazzoni   x86: configuratio...
417

ff73152ce   Yinghai Lu   x86: make 64 bit ...
418
  config CPU_SUP_AMD
8d02c2110   Thomas Petazzoni   x86: configuratio...
419
420
  	default y
  	bool "Support AMD processors" if PROCESSOR_SELECT
a7f7f6248   Masahiro Yamada   treewide: replace...
421
  	help
b7b3a4253   Ingo Molnar   x86: extend proce...
422
423
424
425
426
427
428
429
  	  This enables detection, tunings and quirks for AMD processors
  
  	  You need this enabled if you want your kernel to run on an
  	  AMD CPU. Disabling this option on other types of CPUs
  	  makes the kernel a tiny bit smaller. Disabling it on an AMD
  	  CPU might render the kernel unbootable.
  
  	  If unsure, say N.
8d02c2110   Thomas Petazzoni   x86: configuratio...
430

c9661c1e8   Pu Wen   x86/cpu: Create H...
431
432
433
434
435
436
437
438
439
440
441
442
443
  config CPU_SUP_HYGON
  	default y
  	bool "Support Hygon processors" if PROCESSOR_SELECT
  	select CPU_SUP_AMD
  	help
  	  This enables detection, tunings and quirks for Hygon processors
  
  	  You need this enabled if you want your kernel to run on an
  	  Hygon CPU. Disabling this option on other types of CPUs
  	  makes the kernel a tiny bit smaller. Disabling it on an Hygon
  	  CPU might render the kernel unbootable.
  
  	  If unsure, say N.
48f4c485c   Sebastian Andrzej Siewior   x86/centaur: merg...
444
  config CPU_SUP_CENTAUR
8d02c2110   Thomas Petazzoni   x86: configuratio...
445
446
  	default y
  	bool "Support Centaur processors" if PROCESSOR_SELECT
a7f7f6248   Masahiro Yamada   treewide: replace...
447
  	help
b7b3a4253   Ingo Molnar   x86: extend proce...
448
449
450
451
452
453
454
455
  	  This enables detection, tunings and quirks for Centaur processors
  
  	  You need this enabled if you want your kernel to run on a
  	  Centaur CPU. Disabling this option on other types of CPUs
  	  makes the kernel a tiny bit smaller. Disabling it on a Centaur
  	  CPU might render the kernel unbootable.
  
  	  If unsure, say N.
8d02c2110   Thomas Petazzoni   x86: configuratio...
456
457
458
459
460
  
  config CPU_SUP_TRANSMETA_32
  	default y
  	bool "Support Transmeta processors" if PROCESSOR_SELECT
  	depends on !64BIT
a7f7f6248   Masahiro Yamada   treewide: replace...
461
  	help
b7b3a4253   Ingo Molnar   x86: extend proce...
462
463
464
465
466
467
468
469
  	  This enables detection, tunings and quirks for Transmeta processors
  
  	  You need this enabled if you want your kernel to run on a
  	  Transmeta CPU. Disabling this option on other types of CPUs
  	  makes the kernel a tiny bit smaller. Disabling it on a Transmeta
  	  CPU might render the kernel unbootable.
  
  	  If unsure, say N.
8d02c2110   Thomas Petazzoni   x86: configuratio...
470
471
472
473
  
  config CPU_SUP_UMC_32
  	default y
  	bool "Support UMC processors" if PROCESSOR_SELECT
87d6021b8   Arnd Bergmann   x86/math-emu: Lim...
474
  	depends on M486SX || M486 || (EXPERT && !64BIT)
a7f7f6248   Masahiro Yamada   treewide: replace...
475
  	help
b7b3a4253   Ingo Molnar   x86: extend proce...
476
477
478
479
480
481
482
483
  	  This enables detection, tunings and quirks for UMC processors
  
  	  You need this enabled if you want your kernel to run on a
  	  UMC CPU. Disabling this option on other types of CPUs
  	  makes the kernel a tiny bit smaller. Disabling it on a UMC
  	  CPU might render the kernel unbootable.
  
  	  If unsure, say N.
761fdd5e3   Tony W Wang-oc   x86/cpu: Create Z...
484
485
486
487
488
489
490
491
492
493
494
495
496
  
  config CPU_SUP_ZHAOXIN
  	default y
  	bool "Support Zhaoxin processors" if PROCESSOR_SELECT
  	help
  	  This enables detection, tunings and quirks for Zhaoxin processors
  
  	  You need this enabled if you want your kernel to run on a
  	  Zhaoxin CPU. Disabling this option on other types of CPUs
  	  makes the kernel a tiny bit smaller. Disabling it on a Zhaoxin
  	  CPU might render the kernel unbootable.
  
  	  If unsure, say N.