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