diff options
Diffstat (limited to 'arch/i386/Kconfig')
-rw-r--r-- | arch/i386/Kconfig | 310 |
1 files changed, 6 insertions, 304 deletions
diff --git a/arch/i386/Kconfig b/arch/i386/Kconfig index d2703cda61ea..5383e5e2d9b7 100644 --- a/arch/i386/Kconfig +++ b/arch/i386/Kconfig | |||
@@ -5,7 +5,7 @@ | |||
5 | 5 | ||
6 | mainmenu "Linux Kernel Configuration" | 6 | mainmenu "Linux Kernel Configuration" |
7 | 7 | ||
8 | config X86 | 8 | config X86_32 |
9 | bool | 9 | bool |
10 | default y | 10 | default y |
11 | help | 11 | help |
@@ -18,6 +18,10 @@ config SEMAPHORE_SLEEPERS | |||
18 | bool | 18 | bool |
19 | default y | 19 | default y |
20 | 20 | ||
21 | config X86 | ||
22 | bool | ||
23 | default y | ||
24 | |||
21 | config MMU | 25 | config MMU |
22 | bool | 26 | bool |
23 | default y | 27 | default y |
@@ -151,304 +155,7 @@ config ES7000_CLUSTERED_APIC | |||
151 | default y | 155 | default y |
152 | depends on SMP && X86_ES7000 && MPENTIUMIII | 156 | depends on SMP && X86_ES7000 && MPENTIUMIII |
153 | 157 | ||
154 | if !X86_ELAN | 158 | source "arch/i386/Kconfig.cpu" |
155 | |||
156 | choice | ||
157 | prompt "Processor family" | ||
158 | default M686 | ||
159 | |||
160 | config M386 | ||
161 | bool "386" | ||
162 | ---help--- | ||
163 | This is the processor type of your CPU. This information is used for | ||
164 | optimizing purposes. In order to compile a kernel that can run on | ||
165 | all x86 CPU types (albeit not optimally fast), you can specify | ||
166 | "386" here. | ||
167 | |||
168 | The kernel will not necessarily run on earlier architectures than | ||
169 | the one you have chosen, e.g. a Pentium optimized kernel will run on | ||
170 | a PPro, but not necessarily on a i486. | ||
171 | |||
172 | Here are the settings recommended for greatest speed: | ||
173 | - "386" for the AMD/Cyrix/Intel 386DX/DXL/SL/SLC/SX, Cyrix/TI | ||
174 | 486DLC/DLC2, UMC 486SX-S and NexGen Nx586. Only "386" kernels | ||
175 | will run on a 386 class machine. | ||
176 | - "486" for the AMD/Cyrix/IBM/Intel 486DX/DX2/DX4 or | ||
177 | SL/SLC/SLC2/SLC3/SX/SX2 and UMC U5D or U5S. | ||
178 | - "586" for generic Pentium CPUs lacking the TSC | ||
179 | (time stamp counter) register. | ||
180 | - "Pentium-Classic" for the Intel Pentium. | ||
181 | - "Pentium-MMX" for the Intel Pentium MMX. | ||
182 | - "Pentium-Pro" for the Intel Pentium Pro. | ||
183 | - "Pentium-II" for the Intel Pentium II or pre-Coppermine Celeron. | ||
184 | - "Pentium-III" for the Intel Pentium III or Coppermine Celeron. | ||
185 | - "Pentium-4" for the Intel Pentium 4 or P4-based Celeron. | ||
186 | - "K6" for the AMD K6, K6-II and K6-III (aka K6-3D). | ||
187 | - "Athlon" for the AMD K7 family (Athlon/Duron/Thunderbird). | ||
188 | - "Crusoe" for the Transmeta Crusoe series. | ||
189 | - "Efficeon" for the Transmeta Efficeon series. | ||
190 | - "Winchip-C6" for original IDT Winchip. | ||
191 | - "Winchip-2" for IDT Winchip 2. | ||
192 | - "Winchip-2A" for IDT Winchips with 3dNow! capabilities. | ||
193 | - "GeodeGX1" for Geode GX1 (Cyrix MediaGX). | ||
194 | - "CyrixIII/VIA C3" for VIA Cyrix III or VIA C3. | ||
195 | - "VIA C3-2 for VIA C3-2 "Nehemiah" (model 9 and above). | ||
196 | |||
197 | If you don't know what to do, choose "386". | ||
198 | |||
199 | config M486 | ||
200 | bool "486" | ||
201 | help | ||
202 | Select this for a 486 series processor, either Intel or one of the | ||
203 | compatible processors from AMD, Cyrix, IBM, or Intel. Includes DX, | ||
204 | DX2, and DX4 variants; also SL/SLC/SLC2/SLC3/SX/SX2 and UMC U5D or | ||
205 | U5S. | ||
206 | |||
207 | config M586 | ||
208 | bool "586/K5/5x86/6x86/6x86MX" | ||
209 | help | ||
210 | Select this for an 586 or 686 series processor such as the AMD K5, | ||
211 | the Cyrix 5x86, 6x86 and 6x86MX. This choice does not | ||
212 | assume the RDTSC (Read Time Stamp Counter) instruction. | ||
213 | |||
214 | config M586TSC | ||
215 | bool "Pentium-Classic" | ||
216 | help | ||
217 | Select this for a Pentium Classic processor with the RDTSC (Read | ||
218 | Time Stamp Counter) instruction for benchmarking. | ||
219 | |||
220 | config M586MMX | ||
221 | bool "Pentium-MMX" | ||
222 | help | ||
223 | Select this for a Pentium with the MMX graphics/multimedia | ||
224 | extended instructions. | ||
225 | |||
226 | config M686 | ||
227 | bool "Pentium-Pro" | ||
228 | help | ||
229 | Select this for Intel Pentium Pro chips. This enables the use of | ||
230 | Pentium Pro extended instructions, and disables the init-time guard | ||
231 | against the f00f bug found in earlier Pentiums. | ||
232 | |||
233 | config MPENTIUMII | ||
234 | bool "Pentium-II/Celeron(pre-Coppermine)" | ||
235 | help | ||
236 | Select this for Intel chips based on the Pentium-II and | ||
237 | pre-Coppermine Celeron core. This option enables an unaligned | ||
238 | copy optimization, compiles the kernel with optimization flags | ||
239 | tailored for the chip, and applies any applicable Pentium Pro | ||
240 | optimizations. | ||
241 | |||
242 | config MPENTIUMIII | ||
243 | bool "Pentium-III/Celeron(Coppermine)/Pentium-III Xeon" | ||
244 | help | ||
245 | Select this for Intel chips based on the Pentium-III and | ||
246 | Celeron-Coppermine core. This option enables use of some | ||
247 | extended prefetch instructions in addition to the Pentium II | ||
248 | extensions. | ||
249 | |||
250 | config MPENTIUMM | ||
251 | bool "Pentium M" | ||
252 | help | ||
253 | Select this for Intel Pentium M (not Pentium-4 M) | ||
254 | notebook chips. | ||
255 | |||
256 | config MPENTIUM4 | ||
257 | bool "Pentium-4/Celeron(P4-based)/Pentium-4 M/Xeon" | ||
258 | help | ||
259 | Select this for Intel Pentium 4 chips. This includes the | ||
260 | Pentium 4, P4-based Celeron and Xeon, and Pentium-4 M | ||
261 | (not Pentium M) chips. This option enables compile flags | ||
262 | optimized for the chip, uses the correct cache shift, and | ||
263 | applies any applicable Pentium III optimizations. | ||
264 | |||
265 | config MK6 | ||
266 | bool "K6/K6-II/K6-III" | ||
267 | help | ||
268 | Select this for an AMD K6-family processor. Enables use of | ||
269 | some extended instructions, and passes appropriate optimization | ||
270 | flags to GCC. | ||
271 | |||
272 | config MK7 | ||
273 | bool "Athlon/Duron/K7" | ||
274 | help | ||
275 | Select this for an AMD Athlon K7-family processor. Enables use of | ||
276 | some extended instructions, and passes appropriate optimization | ||
277 | flags to GCC. | ||
278 | |||
279 | config MK8 | ||
280 | bool "Opteron/Athlon64/Hammer/K8" | ||
281 | help | ||
282 | Select this for an AMD Opteron or Athlon64 Hammer-family processor. Enables | ||
283 | use of some extended instructions, and passes appropriate optimization | ||
284 | flags to GCC. | ||
285 | |||
286 | config MCRUSOE | ||
287 | bool "Crusoe" | ||
288 | help | ||
289 | Select this for a Transmeta Crusoe processor. Treats the processor | ||
290 | like a 586 with TSC, and sets some GCC optimization flags (like a | ||
291 | Pentium Pro with no alignment requirements). | ||
292 | |||
293 | config MEFFICEON | ||
294 | bool "Efficeon" | ||
295 | help | ||
296 | Select this for a Transmeta Efficeon processor. | ||
297 | |||
298 | config MWINCHIPC6 | ||
299 | bool "Winchip-C6" | ||
300 | help | ||
301 | Select this for an IDT Winchip C6 chip. Linux and GCC | ||
302 | treat this chip as a 586TSC with some extended instructions | ||
303 | and alignment requirements. | ||
304 | |||
305 | config MWINCHIP2 | ||
306 | bool "Winchip-2" | ||
307 | help | ||
308 | Select this for an IDT Winchip-2. Linux and GCC | ||
309 | treat this chip as a 586TSC with some extended instructions | ||
310 | and alignment requirements. | ||
311 | |||
312 | config MWINCHIP3D | ||
313 | bool "Winchip-2A/Winchip-3" | ||
314 | help | ||
315 | Select this for an IDT Winchip-2A or 3. Linux and GCC | ||
316 | treat this chip as a 586TSC with some extended instructions | ||
317 | and alignment reqirements. Also enable out of order memory | ||
318 | stores for this CPU, which can increase performance of some | ||
319 | operations. | ||
320 | |||
321 | config MGEODEGX1 | ||
322 | bool "GeodeGX1" | ||
323 | help | ||
324 | Select this for a Geode GX1 (Cyrix MediaGX) chip. | ||
325 | |||
326 | config MCYRIXIII | ||
327 | bool "CyrixIII/VIA-C3" | ||
328 | help | ||
329 | Select this for a Cyrix III or C3 chip. Presently Linux and GCC | ||
330 | treat this chip as a generic 586. Whilst the CPU is 686 class, | ||
331 | it lacks the cmov extension which gcc assumes is present when | ||
332 | generating 686 code. | ||
333 | Note that Nehemiah (Model 9) and above will not boot with this | ||
334 | kernel due to them lacking the 3DNow! instructions used in earlier | ||
335 | incarnations of the CPU. | ||
336 | |||
337 | config MVIAC3_2 | ||
338 | bool "VIA C3-2 (Nehemiah)" | ||
339 | help | ||
340 | Select this for a VIA C3 "Nehemiah". Selecting this enables usage | ||
341 | of SSE and tells gcc to treat the CPU as a 686. | ||
342 | Note, this kernel will not boot on older (pre model 9) C3s. | ||
343 | |||
344 | endchoice | ||
345 | |||
346 | config X86_GENERIC | ||
347 | bool "Generic x86 support" | ||
348 | help | ||
349 | Instead of just including optimizations for the selected | ||
350 | x86 variant (e.g. PII, Crusoe or Athlon), include some more | ||
351 | generic optimizations as well. This will make the kernel | ||
352 | perform better on x86 CPUs other than that selected. | ||
353 | |||
354 | This is really intended for distributors who need more | ||
355 | generic optimizations. | ||
356 | |||
357 | endif | ||
358 | |||
359 | # | ||
360 | # Define implied options from the CPU selection here | ||
361 | # | ||
362 | config X86_CMPXCHG | ||
363 | bool | ||
364 | depends on !M386 | ||
365 | default y | ||
366 | |||
367 | config X86_XADD | ||
368 | bool | ||
369 | depends on !M386 | ||
370 | default y | ||
371 | |||
372 | config X86_L1_CACHE_SHIFT | ||
373 | int | ||
374 | default "7" if MPENTIUM4 || X86_GENERIC | ||
375 | default "4" if X86_ELAN || M486 || M386 | ||
376 | default "5" if MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCRUSOE || MEFFICEON || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || M586 || MVIAC3_2 || MGEODEGX1 | ||
377 | default "6" if MK7 || MK8 || MPENTIUMM | ||
378 | |||
379 | config RWSEM_GENERIC_SPINLOCK | ||
380 | bool | ||
381 | depends on M386 | ||
382 | default y | ||
383 | |||
384 | config RWSEM_XCHGADD_ALGORITHM | ||
385 | bool | ||
386 | depends on !M386 | ||
387 | default y | ||
388 | |||
389 | config GENERIC_CALIBRATE_DELAY | ||
390 | bool | ||
391 | default y | ||
392 | |||
393 | config X86_PPRO_FENCE | ||
394 | bool | ||
395 | depends on M686 || M586MMX || M586TSC || M586 || M486 || M386 || MGEODEGX1 | ||
396 | default y | ||
397 | |||
398 | config X86_F00F_BUG | ||
399 | bool | ||
400 | depends on M586MMX || M586TSC || M586 || M486 || M386 | ||
401 | default y | ||
402 | |||
403 | config X86_WP_WORKS_OK | ||
404 | bool | ||
405 | depends on !M386 | ||
406 | default y | ||
407 | |||
408 | config X86_INVLPG | ||
409 | bool | ||
410 | depends on !M386 | ||
411 | default y | ||
412 | |||
413 | config X86_BSWAP | ||
414 | bool | ||
415 | depends on !M386 | ||
416 | default y | ||
417 | |||
418 | config X86_POPAD_OK | ||
419 | bool | ||
420 | depends on !M386 | ||
421 | default y | ||
422 | |||
423 | config X86_ALIGNMENT_16 | ||
424 | bool | ||
425 | depends on MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCYRIXIII || X86_ELAN || MK6 || M586MMX || M586TSC || M586 || M486 || MVIAC3_2 || MGEODEGX1 | ||
426 | default y | ||
427 | |||
428 | config X86_GOOD_APIC | ||
429 | bool | ||
430 | depends on MK7 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || MK8 || MEFFICEON | ||
431 | default y | ||
432 | |||
433 | config X86_INTEL_USERCOPY | ||
434 | bool | ||
435 | depends on MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M586MMX || X86_GENERIC || MK8 || MK7 || MEFFICEON | ||
436 | default y | ||
437 | |||
438 | config X86_USE_PPRO_CHECKSUM | ||
439 | bool | ||
440 | depends on MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MK8 || MVIAC3_2 || MEFFICEON | ||
441 | default y | ||
442 | |||
443 | config X86_USE_3DNOW | ||
444 | bool | ||
445 | depends on MCYRIXIII || MK7 | ||
446 | default y | ||
447 | |||
448 | config X86_OOSTORE | ||
449 | bool | ||
450 | depends on (MWINCHIP3D || MWINCHIP2 || MWINCHIPC6) && MTRR | ||
451 | default y | ||
452 | 159 | ||
453 | config HPET_TIMER | 160 | config HPET_TIMER |
454 | bool "HPET Timer Support" | 161 | bool "HPET Timer Support" |
@@ -561,11 +268,6 @@ config X86_VISWS_APIC | |||
561 | depends on X86_VISWS | 268 | depends on X86_VISWS |
562 | default y | 269 | default y |
563 | 270 | ||
564 | config X86_TSC | ||
565 | bool | ||
566 | depends on (MWINCHIP3D || MWINCHIP2 || MCRUSOE || MEFFICEON || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || MK8 || MVIAC3_2 || MGEODEGX1) && !X86_NUMAQ | ||
567 | default y | ||
568 | |||
569 | config X86_MCE | 271 | config X86_MCE |
570 | bool "Machine Check Exception" | 272 | bool "Machine Check Exception" |
571 | depends on !X86_VOYAGER | 273 | depends on !X86_VOYAGER |