aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.linux-foundation.org>2007-11-14 21:53:11 -0500
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-11-14 21:53:11 -0500
commita052f4473603765eb6b4c19754689977601dc1d1 (patch)
treeae611127b9ed75c99f2654ec50c46f2313dfb728 /arch
parent6f37ac793d6ba7b35d338f791974166f67fdd9ba (diff)
parentdaa93fab824f2b8c35bd11670c7fab2f32b2de5f (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/x86
* git://git.kernel.org/pub/scm/linux/kernel/git/sam/x86: x86: enable "make ARCH=x86" x86: do not use $(ARCH) when not needed kconfig: use $K64BIT to set 64BIT with all*config targets kconfig: add helper to set config symbol from environment variable kconfig: factor out code in confdata.c x86: move the rest of the menu's to Kconfig x86: move all simple arch settings to Kconfig x86: copy x86_64 specific Kconfig symbols to Kconfig.i386 x86: add X86_64 dependency to x86_64 specific symbols in Kconfig.x86_64 x86: add X86_32 dependency to i386 specific symbols in Kconfig.i386 x86: arch/x86/Kconfig.cpu unification x86: start unification of arch/x86/Kconfig.* x86: unification of cfufreq/Kconfig
Diffstat (limited to 'arch')
-rw-r--r--arch/x86/Kconfig (renamed from arch/x86/Kconfig.i386)567
-rw-r--r--arch/x86/Kconfig.cpu121
-rw-r--r--arch/x86/Kconfig.x86_64839
-rw-r--r--arch/x86/Makefile10
-rw-r--r--arch/x86/Makefile_328
-rw-r--r--arch/x86/Makefile_648
-rw-r--r--arch/x86/boot/Makefile6
-rw-r--r--arch/x86/boot/cpucheck.c6
-rw-r--r--arch/x86/kernel/Makefile_323
-rw-r--r--arch/x86/kernel/Makefile_642
-rw-r--r--arch/x86/kernel/cpu/cpufreq/Kconfig (renamed from arch/x86/kernel/cpu/cpufreq/Kconfig_32)69
-rw-r--r--arch/x86/kernel/cpu/cpufreq/Kconfig_64108
-rw-r--r--arch/x86/vdso/Makefile2
13 files changed, 578 insertions, 1171 deletions
diff --git a/arch/x86/Kconfig.i386 b/arch/x86/Kconfig
index 7331efe891a7..1eb59971af5d 100644
--- a/arch/x86/Kconfig.i386
+++ b/arch/x86/Kconfig
@@ -1,18 +1,24 @@
1# 1# x86 configuration
2# For a description of the syntax of this configuration file, 2mainmenu "Linux Kernel Configuration for x86"
3# see Documentation/kbuild/kconfig-language.txt.
4#
5 3
6mainmenu "Linux Kernel Configuration" 4# Select 32 or 64 bit
5config 64BIT
6 bool "64-bit kernel"
7 default n
8 help
9 Say yes to build a 64-bit kernel - formerly known as x86_64
10 Say no to build a 32-bit kernel - formerly known as i386
7 11
8config X86_32 12config X86_32
13 def_bool !64BIT
14
15config X86_64
16 def_bool 64BIT
17
18### Arch settings
19config X86
9 bool 20 bool
10 default y 21 default y
11 help
12 This is Linux's home port. Linux was originally native to the Intel
13 386, and runs on all the later x86 processors including the Intel
14 486, 586, Pentiums, and various instruction-set-compatible chips by
15 AMD, Cyrix, and others.
16 22
17config GENERIC_TIME 23config GENERIC_TIME
18 bool 24 bool
@@ -33,7 +39,7 @@ config GENERIC_CLOCKEVENTS
33config GENERIC_CLOCKEVENTS_BROADCAST 39config GENERIC_CLOCKEVENTS_BROADCAST
34 bool 40 bool
35 default y 41 default y
36 depends on X86_LOCAL_APIC 42 depends on X86_64 || (X86_32 && X86_LOCAL_APIC)
37 43
38config LOCKDEP_SUPPORT 44config LOCKDEP_SUPPORT
39 bool 45 bool
@@ -47,10 +53,6 @@ config SEMAPHORE_SLEEPERS
47 bool 53 bool
48 default y 54 default y
49 55
50config X86
51 bool
52 default y
53
54config MMU 56config MMU
55 bool 57 bool
56 default y 58 default y
@@ -61,7 +63,7 @@ config ZONE_DMA
61 63
62config QUICKLIST 64config QUICKLIST
63 bool 65 bool
64 default y 66 default X86_32
65 67
66config SBUS 68config SBUS
67 bool 69 bool
@@ -91,6 +93,76 @@ config DMI
91 bool 93 bool
92 default y 94 default y
93 95
96config RWSEM_GENERIC_SPINLOCK
97 def_bool !X86_XADD
98
99config RWSEM_XCHGADD_ALGORITHM
100 def_bool X86_XADD
101
102config ARCH_HAS_ILOG2_U32
103 def_bool n
104
105config ARCH_HAS_ILOG2_U64
106 def_bool n
107
108config GENERIC_CALIBRATE_DELAY
109 def_bool y
110
111config GENERIC_TIME_VSYSCALL
112 bool
113 default X86_64
114
115
116
117
118
119config ZONE_DMA32
120 bool
121 default X86_64
122
123config ARCH_POPULATES_NODE_MAP
124 def_bool y
125
126config AUDIT_ARCH
127 bool
128 default X86_64
129
130# Use the generic interrupt handling code in kernel/irq/:
131config GENERIC_HARDIRQS
132 bool
133 default y
134
135config GENERIC_IRQ_PROBE
136 bool
137 default y
138
139config GENERIC_PENDING_IRQ
140 bool
141 depends on GENERIC_HARDIRQS && SMP
142 default y
143
144config X86_SMP
145 bool
146 depends on X86_32 && SMP && !X86_VOYAGER
147 default y
148
149config X86_HT
150 bool
151 depends on SMP && !(X86_VISWS || X86_VOYAGER || MK8)
152 default y
153
154config X86_BIOS_REBOOT
155 bool
156 depends on X86_32 && !(X86_VISWS || X86_VOYAGER)
157 default y
158
159config X86_TRAMPOLINE
160 bool
161 depends on X86_SMP || (X86_VOYAGER && SMP)
162 default y
163
164config KTIME_SCALAR
165 def_bool X86_32
94source "init/Kconfig" 166source "init/Kconfig"
95 167
96menu "Processor type and features" 168menu "Processor type and features"
@@ -137,6 +209,7 @@ config X86_PC
137 209
138config X86_ELAN 210config X86_ELAN
139 bool "AMD Elan" 211 bool "AMD Elan"
212 depends on X86_32
140 help 213 help
141 Select this for an AMD Elan processor. 214 Select this for an AMD Elan processor.
142 215
@@ -146,6 +219,7 @@ config X86_ELAN
146 219
147config X86_VOYAGER 220config X86_VOYAGER
148 bool "Voyager (NCR)" 221 bool "Voyager (NCR)"
222 depends on X86_32
149 select SMP if !BROKEN 223 select SMP if !BROKEN
150 help 224 help
151 Voyager is an MCA-based 32-way capable SMP architecture proprietary 225 Voyager is an MCA-based 32-way capable SMP architecture proprietary
@@ -160,6 +234,7 @@ config X86_NUMAQ
160 bool "NUMAQ (IBM/Sequent)" 234 bool "NUMAQ (IBM/Sequent)"
161 select SMP 235 select SMP
162 select NUMA 236 select NUMA
237 depends on X86_32
163 help 238 help
164 This option is used for getting Linux to run on a (IBM/Sequent) NUMA 239 This option is used for getting Linux to run on a (IBM/Sequent) NUMA
165 multiquad box. This changes the way that processors are bootstrapped, 240 multiquad box. This changes the way that processors are bootstrapped,
@@ -169,7 +244,7 @@ config X86_NUMAQ
169 244
170config X86_SUMMIT 245config X86_SUMMIT
171 bool "Summit/EXA (IBM x440)" 246 bool "Summit/EXA (IBM x440)"
172 depends on SMP 247 depends on X86_32 && SMP
173 help 248 help
174 This option is needed for IBM systems that use the Summit/EXA chipset. 249 This option is needed for IBM systems that use the Summit/EXA chipset.
175 In particular, it is needed for the x440. 250 In particular, it is needed for the x440.
@@ -179,7 +254,7 @@ config X86_SUMMIT
179 254
180config X86_BIGSMP 255config X86_BIGSMP
181 bool "Support for other sub-arch SMP systems with more than 8 CPUs" 256 bool "Support for other sub-arch SMP systems with more than 8 CPUs"
182 depends on SMP 257 depends on X86_32 && SMP
183 help 258 help
184 This option is needed for the systems that have more than 8 CPUs 259 This option is needed for the systems that have more than 8 CPUs
185 and if the system is not of any sub-arch type above. 260 and if the system is not of any sub-arch type above.
@@ -188,6 +263,7 @@ config X86_BIGSMP
188 263
189config X86_VISWS 264config X86_VISWS
190 bool "SGI 320/540 (Visual Workstation)" 265 bool "SGI 320/540 (Visual Workstation)"
266 depends on X86_32
191 help 267 help
192 The SGI Visual Workstation series is an IA32-based workstation 268 The SGI Visual Workstation series is an IA32-based workstation
193 based on SGI systems chips with some legacy PC hardware attached. 269 based on SGI systems chips with some legacy PC hardware attached.
@@ -199,6 +275,7 @@ config X86_VISWS
199 275
200config X86_GENERICARCH 276config X86_GENERICARCH
201 bool "Generic architecture (Summit, bigsmp, ES7000, default)" 277 bool "Generic architecture (Summit, bigsmp, ES7000, default)"
278 depends on X86_32
202 help 279 help
203 This option compiles in the Summit, bigsmp, ES7000, default subarchitectures. 280 This option compiles in the Summit, bigsmp, ES7000, default subarchitectures.
204 It is intended for a generic binary kernel. 281 It is intended for a generic binary kernel.
@@ -206,18 +283,27 @@ config X86_GENERICARCH
206 283
207config X86_ES7000 284config X86_ES7000
208 bool "Support for Unisys ES7000 IA32 series" 285 bool "Support for Unisys ES7000 IA32 series"
209 depends on SMP 286 depends on X86_32 && SMP
210 help 287 help
211 Support for Unisys ES7000 systems. Say 'Y' here if this kernel is 288 Support for Unisys ES7000 systems. Say 'Y' here if this kernel is
212 supposed to run on an IA32-based Unisys ES7000 system. 289 supposed to run on an IA32-based Unisys ES7000 system.
213 Only choose this option if you have such a system, otherwise you 290 Only choose this option if you have such a system, otherwise you
214 should say N here. 291 should say N here.
215 292
293config X86_VSMP
294 bool "Support for ScaleMP vSMP"
295 depends on X86_64 && PCI
296 help
297 Support for ScaleMP vSMP systems. Say 'Y' here if this kernel is
298 supposed to run on these EM64T-based machines. Only choose this option
299 if you have one of these machines.
300
216endchoice 301endchoice
217 302
218config SCHED_NO_NO_OMIT_FRAME_POINTER 303config SCHED_NO_NO_OMIT_FRAME_POINTER
219 bool "Single-depth WCHAN output" 304 bool "Single-depth WCHAN output"
220 default y 305 default y
306 depends on X86_32
221 help 307 help
222 Calculate simpler /proc/<PID>/wchan values. If this option 308 Calculate simpler /proc/<PID>/wchan values. If this option
223 is disabled then wchan values will recurse back to the 309 is disabled then wchan values will recurse back to the
@@ -228,7 +314,7 @@ config SCHED_NO_NO_OMIT_FRAME_POINTER
228 314
229config PARAVIRT 315config PARAVIRT
230 bool 316 bool
231 depends on !(X86_VISWS || X86_VOYAGER) 317 depends on X86_32 && !(X86_VISWS || X86_VOYAGER)
232 help 318 help
233 This changes the kernel so it can modify itself when it is run 319 This changes the kernel so it can modify itself when it is run
234 under a hypervisor, potentially improving performance significantly 320 under a hypervisor, potentially improving performance significantly
@@ -237,6 +323,7 @@ config PARAVIRT
237 323
238menuconfig PARAVIRT_GUEST 324menuconfig PARAVIRT_GUEST
239 bool "Paravirtualized guest support" 325 bool "Paravirtualized guest support"
326 depends on X86_32
240 help 327 help
241 Say Y here to get to see options related to running Linux under 328 Say Y here to get to see options related to running Linux under
242 various hypervisors. This option alone does not add any kernel code. 329 various hypervisors. This option alone does not add any kernel code.
@@ -264,7 +351,7 @@ endif
264config ACPI_SRAT 351config ACPI_SRAT
265 bool 352 bool
266 default y 353 default y
267 depends on ACPI && NUMA && (X86_SUMMIT || X86_GENERICARCH) 354 depends on X86_32 && ACPI && NUMA && (X86_SUMMIT || X86_GENERICARCH)
268 select ACPI_NUMA 355 select ACPI_NUMA
269 356
270config HAVE_ARCH_PARSE_SRAT 357config HAVE_ARCH_PARSE_SRAT
@@ -275,12 +362,12 @@ config HAVE_ARCH_PARSE_SRAT
275config X86_SUMMIT_NUMA 362config X86_SUMMIT_NUMA
276 bool 363 bool
277 default y 364 default y
278 depends on NUMA && (X86_SUMMIT || X86_GENERICARCH) 365 depends on X86_32 && NUMA && (X86_SUMMIT || X86_GENERICARCH)
279 366
280config X86_CYCLONE_TIMER 367config X86_CYCLONE_TIMER
281 bool 368 bool
282 default y 369 default y
283 depends on X86_SUMMIT || X86_GENERICARCH 370 depends on X86_32 && X86_SUMMIT || X86_GENERICARCH
284 371
285config ES7000_CLUSTERED_APIC 372config ES7000_CLUSTERED_APIC
286 bool 373 bool
@@ -290,21 +377,89 @@ config ES7000_CLUSTERED_APIC
290source "arch/x86/Kconfig.cpu" 377source "arch/x86/Kconfig.cpu"
291 378
292config HPET_TIMER 379config HPET_TIMER
293 bool "HPET Timer Support" 380 bool
381 prompt "HPET Timer Support" if X86_32
382 default X86_64
294 help 383 help
295 This enables the use of the HPET for the kernel's internal timer. 384 Use the IA-PC HPET (High Precision Event Timer) to manage
296 HPET is the next generation timer replacing legacy 8254s. 385 time in preference to the PIT and RTC, if a HPET is
297 You can safely choose Y here. However, HPET will only be 386 present.
298 activated if the platform and the BIOS support this feature. 387 HPET is the next generation timer replacing legacy 8254s.
299 Otherwise the 8254 will be used for timing services. 388 The HPET provides a stable time base on SMP
389 systems, unlike the TSC, but it is more expensive to access,
390 as it is off-chip. You can find the HPET spec at
391 <http://www.intel.com/hardwaredesign/hpetspec.htm>.
300 392
301 Choose N to continue using the legacy 8254 timer. 393 You can safely choose Y here. However, HPET will only be
394 activated if the platform and the BIOS support this feature.
395 Otherwise the 8254 will be used for timing services.
396
397 Choose N to continue using the legacy 8254 timer.
302 398
303config HPET_EMULATE_RTC 399config HPET_EMULATE_RTC
304 bool 400 bool
305 depends on HPET_TIMER && RTC=y 401 depends on HPET_TIMER && RTC=y
306 default y 402 default y
307 403
404# Mark as embedded because too many people got it wrong.
405# The code disables itself when not needed.
406config GART_IOMMU
407 bool "GART IOMMU support" if EMBEDDED
408 default y
409 select SWIOTLB
410 select AGP
411 depends on X86_64 && PCI
412 help
413 Support for full DMA access of devices with 32bit memory access only
414 on systems with more than 3GB. This is usually needed for USB,
415 sound, many IDE/SATA chipsets and some other devices.
416 Provides a driver for the AMD Athlon64/Opteron/Turion/Sempron GART
417 based hardware IOMMU and a software bounce buffer based IOMMU used
418 on Intel systems and as fallback.
419 The code is only active when needed (enough memory and limited
420 device) unless CONFIG_IOMMU_DEBUG or iommu=force is specified
421 too.
422
423config CALGARY_IOMMU
424 bool "IBM Calgary IOMMU support"
425 select SWIOTLB
426 depends on X86_64 && PCI && EXPERIMENTAL
427 help
428 Support for hardware IOMMUs in IBM's xSeries x366 and x460
429 systems. Needed to run systems with more than 3GB of memory
430 properly with 32-bit PCI devices that do not support DAC
431 (Double Address Cycle). Calgary also supports bus level
432 isolation, where all DMAs pass through the IOMMU. This
433 prevents them from going anywhere except their intended
434 destination. This catches hard-to-find kernel bugs and
435 mis-behaving drivers and devices that do not use the DMA-API
436 properly to set up their DMA buffers. The IOMMU can be
437 turned off at boot time with the iommu=off parameter.
438 Normally the kernel will make the right choice by itself.
439 If unsure, say Y.
440
441config CALGARY_IOMMU_ENABLED_BY_DEFAULT
442 bool "Should Calgary be enabled by default?"
443 default y
444 depends on CALGARY_IOMMU
445 help
446 Should Calgary be enabled by default? if you choose 'y', Calgary
447 will be used (if it exists). If you choose 'n', Calgary will not be
448 used even if it exists. If you choose 'n' and would like to use
449 Calgary anyway, pass 'iommu=calgary' on the kernel command line.
450 If unsure, say Y.
451
452# need this always selected by IOMMU for the VIA workaround
453config SWIOTLB
454 bool
455 help
456 Support for software bounce buffers used on x86-64 systems
457 which don't have a hardware IOMMU (e.g. the current generation
458 of Intel's x86-64 CPUs). Using this PCI devices which can only
459 access 32-bits of memory can be used on systems with more than
460 3 GB of memory. If unsure, say Y.
461
462
308config NR_CPUS 463config NR_CPUS
309 int "Maximum number of CPUs (2-255)" 464 int "Maximum number of CPUs (2-255)"
310 range 2 255 465 range 2 255
@@ -321,7 +476,7 @@ config NR_CPUS
321 476
322config SCHED_SMT 477config SCHED_SMT
323 bool "SMT (Hyperthreading) scheduler support" 478 bool "SMT (Hyperthreading) scheduler support"
324 depends on X86_HT 479 depends on (X86_64 && SMP) || (X86_32 && X86_HT)
325 help 480 help
326 SMT scheduler support improves the CPU scheduler's decision making 481 SMT scheduler support improves the CPU scheduler's decision making
327 when dealing with Intel Pentium 4 chips with HyperThreading at a 482 when dealing with Intel Pentium 4 chips with HyperThreading at a
@@ -330,7 +485,7 @@ config SCHED_SMT
330 485
331config SCHED_MC 486config SCHED_MC
332 bool "Multi-core scheduler support" 487 bool "Multi-core scheduler support"
333 depends on X86_HT 488 depends on (X86_64 && SMP) || (X86_32 && X86_HT)
334 default y 489 default y
335 help 490 help
336 Multi-core scheduler support improves the CPU scheduler's decision 491 Multi-core scheduler support improves the CPU scheduler's decision
@@ -341,7 +496,7 @@ source "kernel/Kconfig.preempt"
341 496
342config X86_UP_APIC 497config X86_UP_APIC
343 bool "Local APIC support on uniprocessors" 498 bool "Local APIC support on uniprocessors"
344 depends on !SMP && !(X86_VISWS || X86_VOYAGER || X86_GENERICARCH) 499 depends on X86_32 && !SMP && !(X86_VISWS || X86_VOYAGER || X86_GENERICARCH)
345 help 500 help
346 A local APIC (Advanced Programmable Interrupt Controller) is an 501 A local APIC (Advanced Programmable Interrupt Controller) is an
347 integrated interrupt controller in the CPU. If you have a single-CPU 502 integrated interrupt controller in the CPU. If you have a single-CPU
@@ -366,17 +521,17 @@ config X86_UP_IOAPIC
366 521
367config X86_LOCAL_APIC 522config X86_LOCAL_APIC
368 bool 523 bool
369 depends on X86_UP_APIC || ((X86_VISWS || SMP) && !X86_VOYAGER) || X86_GENERICARCH 524 depends on X86_64 || (X86_32 && (X86_UP_APIC || ((X86_VISWS || SMP) && !X86_VOYAGER) || X86_GENERICARCH))
370 default y 525 default y
371 526
372config X86_IO_APIC 527config X86_IO_APIC
373 bool 528 bool
374 depends on X86_UP_IOAPIC || (SMP && !(X86_VISWS || X86_VOYAGER)) || X86_GENERICARCH 529 depends on X86_64 || (X86_32 && (X86_UP_IOAPIC || (SMP && !(X86_VISWS || X86_VOYAGER)) || X86_GENERICARCH))
375 default y 530 default y
376 531
377config X86_VISWS_APIC 532config X86_VISWS_APIC
378 bool 533 bool
379 depends on X86_VISWS 534 depends on X86_32 && X86_VISWS
380 default y 535 default y
381 536
382config X86_MCE 537config X86_MCE
@@ -396,9 +551,25 @@ config X86_MCE
396 to disable it. MCE support simply ignores non-MCE processors like 551 to disable it. MCE support simply ignores non-MCE processors like
397 the 386 and 486, so nearly everyone can say Y here. 552 the 386 and 486, so nearly everyone can say Y here.
398 553
554config X86_MCE_INTEL
555 bool "Intel MCE features"
556 depends on X86_64 && X86_MCE && X86_LOCAL_APIC
557 default y
558 help
559 Additional support for intel specific MCE features such as
560 the thermal monitor.
561
562config X86_MCE_AMD
563 bool "AMD MCE features"
564 depends on X86_64 && X86_MCE && X86_LOCAL_APIC
565 default y
566 help
567 Additional support for AMD specific MCE features such as
568 the DRAM Error Threshold.
569
399config X86_MCE_NONFATAL 570config X86_MCE_NONFATAL
400 tristate "Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium 4" 571 tristate "Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium 4"
401 depends on X86_MCE 572 depends on X86_32 && X86_MCE
402 help 573 help
403 Enabling this feature starts a timer that triggers every 5 seconds which 574 Enabling this feature starts a timer that triggers every 5 seconds which
404 will look at the machine check registers to see if anything happened. 575 will look at the machine check registers to see if anything happened.
@@ -411,14 +582,15 @@ config X86_MCE_NONFATAL
411 582
412config X86_MCE_P4THERMAL 583config X86_MCE_P4THERMAL
413 bool "check for P4 thermal throttling interrupt." 584 bool "check for P4 thermal throttling interrupt."
414 depends on X86_MCE && (X86_UP_APIC || SMP) && !X86_VISWS 585 depends on X86_32 && X86_MCE && (X86_UP_APIC || SMP) && !X86_VISWS
415 help 586 help
416 Enabling this feature will cause a message to be printed when the P4 587 Enabling this feature will cause a message to be printed when the P4
417 enters thermal throttling. 588 enters thermal throttling.
418 589
419config VM86 590config VM86
420 default y
421 bool "Enable VM86 support" if EMBEDDED 591 bool "Enable VM86 support" if EMBEDDED
592 default y
593 depends on X86_32
422 help 594 help
423 This option is required by programs like DOSEMU to run 16-bit legacy 595 This option is required by programs like DOSEMU to run 16-bit legacy
424 code on X86 processors. It also may be needed by software like 596 code on X86 processors. It also may be needed by software like
@@ -427,6 +599,7 @@ config VM86
427 599
428config TOSHIBA 600config TOSHIBA
429 tristate "Toshiba Laptop support" 601 tristate "Toshiba Laptop support"
602 depends on X86_32
430 ---help--- 603 ---help---
431 This adds a driver to safely access the System Management Mode of 604 This adds a driver to safely access the System Management Mode of
432 the CPU on Toshiba portables with a genuine Toshiba BIOS. It does 605 the CPU on Toshiba portables with a genuine Toshiba BIOS. It does
@@ -442,6 +615,7 @@ config TOSHIBA
442 615
443config I8K 616config I8K
444 tristate "Dell laptop support" 617 tristate "Dell laptop support"
618 depends on X86_32
445 ---help--- 619 ---help---
446 This adds a driver to safely access the System Management Mode 620 This adds a driver to safely access the System Management Mode
447 of the CPU on the Dell Inspiron 8000. The System Management Mode 621 of the CPU on the Dell Inspiron 8000. The System Management Mode
@@ -462,7 +636,7 @@ config I8K
462 636
463config X86_REBOOTFIXUPS 637config X86_REBOOTFIXUPS
464 bool "Enable X86 board specific fixups for reboot" 638 bool "Enable X86 board specific fixups for reboot"
465 depends on X86 639 depends on X86_32 && X86
466 default n 640 default n
467 ---help--- 641 ---help---
468 This enables chipset and/or board specific fixups to be done 642 This enables chipset and/or board specific fixups to be done
@@ -517,12 +691,11 @@ config X86_CPUID
517 with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to 691 with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to
518 /dev/cpu/31/cpuid. 692 /dev/cpu/31/cpuid.
519 693
520source "drivers/firmware/Kconfig"
521
522choice 694choice
523 prompt "High Memory Support" 695 prompt "High Memory Support"
524 default HIGHMEM4G if !X86_NUMAQ 696 default HIGHMEM4G if !X86_NUMAQ
525 default HIGHMEM64G if X86_NUMAQ 697 default HIGHMEM64G if X86_NUMAQ
698 depends on X86_32
526 699
527config NOHIGHMEM 700config NOHIGHMEM
528 bool "off" 701 bool "off"
@@ -582,6 +755,7 @@ choice
582 depends on EXPERIMENTAL 755 depends on EXPERIMENTAL
583 prompt "Memory split" if EMBEDDED 756 prompt "Memory split" if EMBEDDED
584 default VMSPLIT_3G 757 default VMSPLIT_3G
758 depends on X86_32
585 help 759 help
586 Select the desired split between kernel and user memory. 760 Select the desired split between kernel and user memory.
587 761
@@ -619,16 +793,17 @@ config PAGE_OFFSET
619 default 0x78000000 if VMSPLIT_2G_OPT 793 default 0x78000000 if VMSPLIT_2G_OPT
620 default 0x40000000 if VMSPLIT_1G 794 default 0x40000000 if VMSPLIT_1G
621 default 0xC0000000 795 default 0xC0000000
796 depends on X86_32
622 797
623config HIGHMEM 798config HIGHMEM
624 bool 799 bool
625 depends on HIGHMEM64G || HIGHMEM4G 800 depends on X86_32 && (HIGHMEM64G || HIGHMEM4G)
626 default y 801 default y
627 802
628config X86_PAE 803config X86_PAE
629 bool "PAE (Physical Address Extension) Support" 804 bool "PAE (Physical Address Extension) Support"
630 default n 805 default n
631 depends on !HIGHMEM4G 806 depends on X86_32 && !HIGHMEM4G
632 select RESOURCES_64BIT 807 select RESOURCES_64BIT
633 help 808 help
634 PAE is required for NX support, and furthermore enables 809 PAE is required for NX support, and furthermore enables
@@ -639,46 +814,82 @@ config X86_PAE
639# Common NUMA Features 814# Common NUMA Features
640config NUMA 815config NUMA
641 bool "Numa Memory Allocation and Scheduler Support (EXPERIMENTAL)" 816 bool "Numa Memory Allocation and Scheduler Support (EXPERIMENTAL)"
642 depends on SMP && HIGHMEM64G && (X86_NUMAQ || (X86_SUMMIT || X86_GENERICARCH) && ACPI) && EXPERIMENTAL 817 depends on SMP
818 depends on X86_64 || (X86_32 && HIGHMEM64G && (X86_NUMAQ || (X86_SUMMIT || X86_GENERICARCH) && ACPI) && EXPERIMENTAL)
643 default n if X86_PC 819 default n if X86_PC
644 default y if (X86_NUMAQ || X86_SUMMIT) 820 default y if (X86_NUMAQ || X86_SUMMIT)
645 help 821 help
646 NUMA support for i386. This is currently highly experimental 822 Enable NUMA (Non Uniform Memory Access) support.
647 and should be only used for kernel development. It might also 823 The kernel will try to allocate memory used by a CPU on the
648 cause boot failures. 824 local memory controller of the CPU and add some more
825 NUMA awareness to the kernel.
826
827 For i386 this is currently highly experimental and should be only
828 used for kernel development. It might also cause boot failures.
829 For x86_64 this is recommended on all multiprocessor Opteron systems.
830 If the system is EM64T, you should say N unless your system is
831 EM64T NUMA.
649 832
650comment "NUMA (Summit) requires SMP, 64GB highmem support, ACPI" 833comment "NUMA (Summit) requires SMP, 64GB highmem support, ACPI"
651 depends on X86_SUMMIT && (!HIGHMEM64G || !ACPI) 834 depends on X86_32 && X86_SUMMIT && (!HIGHMEM64G || !ACPI)
835
836config K8_NUMA
837 bool "Old style AMD Opteron NUMA detection"
838 depends on X86_64 && NUMA && PCI
839 default y
840 help
841 Enable K8 NUMA node topology detection. You should say Y here if
842 you have a multi processor AMD K8 system. This uses an old
843 method to read the NUMA configuration directly from the builtin
844 Northbridge of Opteron. It is recommended to use X86_64_ACPI_NUMA
845 instead, which also takes priority if both are compiled in.
846
847config X86_64_ACPI_NUMA
848 bool "ACPI NUMA detection"
849 depends on X86_64 && NUMA && ACPI && PCI
850 select ACPI_NUMA
851 default y
852 help
853 Enable ACPI SRAT based node topology detection.
854
855config NUMA_EMU
856 bool "NUMA emulation"
857 depends on X86_64 && NUMA
858 help
859 Enable NUMA emulation. A flat machine will be split
860 into virtual nodes when booted with "numa=fake=N", where N is the
861 number of nodes. This is only useful for debugging.
652 862
653config NODES_SHIFT 863config NODES_SHIFT
654 int 864 int
865 default "6" if X86_64
655 default "4" if X86_NUMAQ 866 default "4" if X86_NUMAQ
656 default "3" 867 default "3"
657 depends on NEED_MULTIPLE_NODES 868 depends on NEED_MULTIPLE_NODES
658 869
659config HAVE_ARCH_BOOTMEM_NODE 870config HAVE_ARCH_BOOTMEM_NODE
660 bool 871 bool
661 depends on NUMA 872 depends on X86_32 && NUMA
662 default y 873 default y
663 874
664config ARCH_HAVE_MEMORY_PRESENT 875config ARCH_HAVE_MEMORY_PRESENT
665 bool 876 bool
666 depends on DISCONTIGMEM 877 depends on X86_32 && DISCONTIGMEM
667 default y 878 default y
668 879
669config NEED_NODE_MEMMAP_SIZE 880config NEED_NODE_MEMMAP_SIZE
670 bool 881 bool
671 depends on DISCONTIGMEM || SPARSEMEM 882 depends on X86_32 && (DISCONTIGMEM || SPARSEMEM)
672 default y 883 default y
673 884
674config HAVE_ARCH_ALLOC_REMAP 885config HAVE_ARCH_ALLOC_REMAP
675 bool 886 bool
676 depends on NUMA 887 depends on X86_32 && NUMA
677 default y 888 default y
678 889
679config ARCH_FLATMEM_ENABLE 890config ARCH_FLATMEM_ENABLE
680 def_bool y 891 def_bool y
681 depends on (ARCH_SELECT_MEMORY_MODEL && X86_PC) 892 depends on (X86_32 && ARCH_SELECT_MEMORY_MODEL && X86_PC) || (X86_64 && !NUMA)
682 893
683config ARCH_DISCONTIGMEM_ENABLE 894config ARCH_DISCONTIGMEM_ENABLE
684 def_bool y 895 def_bool y
@@ -690,21 +901,23 @@ config ARCH_DISCONTIGMEM_DEFAULT
690 901
691config ARCH_SPARSEMEM_ENABLE 902config ARCH_SPARSEMEM_ENABLE
692 def_bool y 903 def_bool y
693 depends on (NUMA || (X86_PC && EXPERIMENTAL)) 904 depends on NUMA || (EXPERIMENTAL && (X86_PC || X86_64))
694 select SPARSEMEM_STATIC 905 select SPARSEMEM_STATIC if X86_32
906 select SPARSEMEM_VMEMMAP_ENABLE if X86_64
695 907
696config ARCH_SELECT_MEMORY_MODEL 908config ARCH_SELECT_MEMORY_MODEL
697 def_bool y 909 def_bool y
698 depends on ARCH_SPARSEMEM_ENABLE 910 depends on X86_32 && ARCH_SPARSEMEM_ENABLE
699 911
700config ARCH_POPULATES_NODE_MAP 912config ARCH_MEMORY_PROBE
701 def_bool y 913 def_bool X86_64
914 depends on MEMORY_HOTPLUG
702 915
703source "mm/Kconfig" 916source "mm/Kconfig"
704 917
705config HIGHPTE 918config HIGHPTE
706 bool "Allocate 3rd-level pagetables from highmem" 919 bool "Allocate 3rd-level pagetables from highmem"
707 depends on HIGHMEM4G || HIGHMEM64G 920 depends on X86_32 && (HIGHMEM4G || HIGHMEM64G)
708 help 921 help
709 The VM uses one page table entry for each page of physical memory. 922 The VM uses one page table entry for each page of physical memory.
710 For systems with a lot of RAM, this can be wasteful of precious 923 For systems with a lot of RAM, this can be wasteful of precious
@@ -712,7 +925,8 @@ config HIGHPTE
712 entries in high memory. 925 entries in high memory.
713 926
714config MATH_EMULATION 927config MATH_EMULATION
715 bool "Math emulation" 928 bool
929 prompt "Math emulation" if X86_32
716 ---help--- 930 ---help---
717 Linux can emulate a math coprocessor (used for floating point 931 Linux can emulate a math coprocessor (used for floating point
718 operations) if you don't have one. 486DX and Pentium processors have 932 operations) if you don't have one. 486DX and Pentium processors have
@@ -772,7 +986,7 @@ config MTRR
772 986
773config EFI 987config EFI
774 bool "Boot from EFI support" 988 bool "Boot from EFI support"
775 depends on ACPI 989 depends on X86_32 && ACPI
776 default n 990 default n
777 ---help--- 991 ---help---
778 This enables the kernel to boot on EFI platforms using 992 This enables the kernel to boot on EFI platforms using
@@ -789,18 +1003,18 @@ config EFI
789 kernel should continue to boot on existing non-EFI platforms. 1003 kernel should continue to boot on existing non-EFI platforms.
790 1004
791config IRQBALANCE 1005config IRQBALANCE
792 bool "Enable kernel irq balancing" 1006 bool "Enable kernel irq balancing"
793 depends on SMP && X86_IO_APIC 1007 depends on X86_32 && SMP && X86_IO_APIC
794 default y 1008 default y
795 help 1009 help
796 The default yes will allow the kernel to do irq load balancing. 1010 The default yes will allow the kernel to do irq load balancing.
797 Saying no will keep the kernel from doing irq load balancing. 1011 Saying no will keep the kernel from doing irq load balancing.
798 1012
799# turning this on wastes a bunch of space. 1013# turning this on wastes a bunch of space.
800# Summit needs it only when NUMA is on 1014# Summit needs it only when NUMA is on
801config BOOT_IOREMAP 1015config BOOT_IOREMAP
802 bool 1016 bool
803 depends on (((X86_SUMMIT || X86_GENERICARCH) && NUMA) || (X86 && EFI)) 1017 depends on X86_32 && (((X86_SUMMIT || X86_GENERICARCH) && NUMA) || (X86 && EFI))
804 default y 1018 default y
805 1019
806config SECCOMP 1020config SECCOMP
@@ -820,6 +1034,30 @@ config SECCOMP
820 1034
821 If unsure, say Y. Only embedded should say N here. 1035 If unsure, say Y. Only embedded should say N here.
822 1036
1037config CC_STACKPROTECTOR
1038 bool "Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)"
1039 depends on X86_64 && EXPERIMENTAL
1040 help
1041 This option turns on the -fstack-protector GCC feature. This
1042 feature puts, at the beginning of critical functions, a canary
1043 value on the stack just before the return address, and validates
1044 the value just before actually returning. Stack based buffer
1045 overflows (that need to overwrite this return address) now also
1046 overwrite the canary, which gets detected and the attack is then
1047 neutralized via a kernel panic.
1048
1049 This feature requires gcc version 4.2 or above, or a distribution
1050 gcc with the feature backported. Older versions are automatically
1051 detected and for those versions, this configuration option is ignored.
1052
1053config CC_STACKPROTECTOR_ALL
1054 bool "Use stack-protector for all functions"
1055 depends on CC_STACKPROTECTOR
1056 help
1057 Normally, GCC only inserts the canary value protection for
1058 functions that use large-ish on-stack buffers. By enabling
1059 this option, GCC will be asked to do this for ALL functions.
1060
823source kernel/Kconfig.hz 1061source kernel/Kconfig.hz
824 1062
825config KEXEC 1063config KEXEC
@@ -841,7 +1079,7 @@ config KEXEC
841config CRASH_DUMP 1079config CRASH_DUMP
842 bool "kernel crash dumps (EXPERIMENTAL)" 1080 bool "kernel crash dumps (EXPERIMENTAL)"
843 depends on EXPERIMENTAL 1081 depends on EXPERIMENTAL
844 depends on HIGHMEM 1082 depends on X86_64 || (X86_32 && HIGHMEM)
845 help 1083 help
846 Generate crash dump after being started by kexec. 1084 Generate crash dump after being started by kexec.
847 This should be normally only set in special crash dump kernels 1085 This should be normally only set in special crash dump kernels
@@ -856,6 +1094,7 @@ config CRASH_DUMP
856config PHYSICAL_START 1094config PHYSICAL_START
857 hex "Physical address where the kernel is loaded" if (EMBEDDED || CRASH_DUMP) 1095 hex "Physical address where the kernel is loaded" if (EMBEDDED || CRASH_DUMP)
858 default "0x1000000" if X86_NUMAQ 1096 default "0x1000000" if X86_NUMAQ
1097 default "0x200000" if X86_64
859 default "0x100000" 1098 default "0x100000"
860 help 1099 help
861 This gives the physical address where the kernel is loaded. 1100 This gives the physical address where the kernel is loaded.
@@ -908,25 +1147,31 @@ config RELOCATABLE
908 must live at a different physical address than the primary 1147 must live at a different physical address than the primary
909 kernel. 1148 kernel.
910 1149
1150 Note: If CONFIG_RELOCATABLE=y, then the kernel runs from the address
1151 it has been loaded at and the compile time physical address
1152 (CONFIG_PHYSICAL_START) is ignored.
1153
911config PHYSICAL_ALIGN 1154config PHYSICAL_ALIGN
912 hex "Alignment value to which kernel should be aligned" 1155 hex
913 default "0x100000" 1156 prompt "Alignment value to which kernel should be aligned" if X86_32
1157 default "0x100000" if X86_32
1158 default "0x200000" if X86_64
914 range 0x2000 0x400000 1159 range 0x2000 0x400000
915 help 1160 help
916 This value puts the alignment restrictions on physical address 1161 This value puts the alignment restrictions on physical address
917 where kernel is loaded and run from. Kernel is compiled for an 1162 where kernel is loaded and run from. Kernel is compiled for an
918 address which meets above alignment restriction. 1163 address which meets above alignment restriction.
919 1164
920 If bootloader loads the kernel at a non-aligned address and 1165 If bootloader loads the kernel at a non-aligned address and
921 CONFIG_RELOCATABLE is set, kernel will move itself to nearest 1166 CONFIG_RELOCATABLE is set, kernel will move itself to nearest
922 address aligned to above value and run from there. 1167 address aligned to above value and run from there.
923 1168
924 If bootloader loads the kernel at a non-aligned address and 1169 If bootloader loads the kernel at a non-aligned address and
925 CONFIG_RELOCATABLE is not set, kernel will ignore the run time 1170 CONFIG_RELOCATABLE is not set, kernel will ignore the run time
926 load address and decompress itself to the address it has been 1171 load address and decompress itself to the address it has been
927 compiled for and run from there. The address for which kernel is 1172 compiled for and run from there. The address for which kernel is
928 compiled already meets above alignment restrictions. Hence the 1173 compiled already meets above alignment restrictions. Hence the
929 end result is that kernel runs from a physical address meeting 1174 end result is that kernel runs from a physical address meeting
930 above alignment restrictions. 1175 above alignment restrictions.
931 1176
932 Don't change this unless you know what you are doing. 1177 Don't change this unless you know what you are doing.
@@ -938,10 +1183,13 @@ config HOTPLUG_CPU
938 Say Y here to experiment with turning CPUs off and on, and to 1183 Say Y here to experiment with turning CPUs off and on, and to
939 enable suspend on SMP systems. CPUs can be controlled through 1184 enable suspend on SMP systems. CPUs can be controlled through
940 /sys/devices/system/cpu. 1185 /sys/devices/system/cpu.
1186 Say N if you want to disable CPU hotplug and don't need to
1187 suspend.
941 1188
942config COMPAT_VDSO 1189config COMPAT_VDSO
943 bool "Compat VDSO support" 1190 bool "Compat VDSO support"
944 default y 1191 default y
1192 depends on X86_32
945 help 1193 help
946 Map the VDSO to the predictable old-style address too. 1194 Map the VDSO to the predictable old-style address too.
947 ---help--- 1195 ---help---
@@ -955,18 +1203,35 @@ endmenu
955 1203
956config ARCH_ENABLE_MEMORY_HOTPLUG 1204config ARCH_ENABLE_MEMORY_HOTPLUG
957 def_bool y 1205 def_bool y
958 depends on HIGHMEM 1206 depends on X86_64 || (X86_32 && HIGHMEM)
1207
1208config MEMORY_HOTPLUG_RESERVE
1209 def_bool X86_64
1210 depends on (MEMORY_HOTPLUG && DISCONTIGMEM)
1211
1212config HAVE_ARCH_EARLY_PFN_TO_NID
1213 def_bool X86_64
1214 depends on NUMA
959 1215
960menu "Power management options (ACPI, APM)" 1216config OUT_OF_LINE_PFN_TO_PAGE
1217 def_bool X86_64
1218 depends on DISCONTIGMEM
1219
1220menu "Power management options"
961 depends on !X86_VOYAGER 1221 depends on !X86_VOYAGER
962 1222
963source kernel/power/Kconfig 1223config ARCH_HIBERNATION_HEADER
1224 bool
1225 depends on X86_64 && HIBERNATION
1226 default y
1227
1228source "kernel/power/Kconfig"
964 1229
965source "drivers/acpi/Kconfig" 1230source "drivers/acpi/Kconfig"
966 1231
967menuconfig APM 1232menuconfig APM
968 tristate "APM (Advanced Power Management) BIOS support" 1233 tristate "APM (Advanced Power Management) BIOS support"
969 depends on PM_SLEEP && !X86_VISWS 1234 depends on X86_32 && PM_SLEEP && !X86_VISWS
970 ---help--- 1235 ---help---
971 APM is a BIOS specification for saving power using several different 1236 APM is a BIOS specification for saving power using several different
972 techniques. This is mostly useful for battery powered laptops with 1237 techniques. This is mostly useful for battery powered laptops with
@@ -1092,13 +1357,14 @@ config APM_REAL_MODE_POWER_OFF
1092 1357
1093endif # APM 1358endif # APM
1094 1359
1095source "arch/x86/kernel/cpu/cpufreq/Kconfig_32" 1360source "arch/x86/kernel/cpu/cpufreq/Kconfig"
1096 1361
1097source "drivers/cpuidle/Kconfig" 1362source "drivers/cpuidle/Kconfig"
1098 1363
1099endmenu 1364endmenu
1100 1365
1101menu "Bus options (PCI, PCMCIA, EISA, MCA, ISA)" 1366
1367menu "Bus options (PCI etc.)"
1102 1368
1103config PCI 1369config PCI
1104 bool "PCI support" if !X86_VISWS 1370 bool "PCI support" if !X86_VISWS
@@ -1118,7 +1384,7 @@ config PCI
1118 1384
1119choice 1385choice
1120 prompt "PCI access mode" 1386 prompt "PCI access mode"
1121 depends on PCI && !X86_VISWS 1387 depends on X86_32 && PCI && !X86_VISWS
1122 default PCI_GOANY 1388 default PCI_GOANY
1123 ---help--- 1389 ---help---
1124 On PCI systems, the BIOS can be used to detect the PCI devices and 1390 On PCI systems, the BIOS can be used to detect the PCI devices and
@@ -1151,17 +1417,18 @@ endchoice
1151 1417
1152config PCI_BIOS 1418config PCI_BIOS
1153 bool 1419 bool
1154 depends on !X86_VISWS && PCI && (PCI_GOBIOS || PCI_GOANY) 1420 depends on X86_32 && !X86_VISWS && PCI && (PCI_GOBIOS || PCI_GOANY)
1155 default y 1421 default y
1156 1422
1423# x86-64 doesn't support PCI BIOS access from long mode so always go direct.
1157config PCI_DIRECT 1424config PCI_DIRECT
1158 bool 1425 bool
1159 depends on PCI && ((PCI_GODIRECT || PCI_GOANY) || X86_VISWS) 1426 depends on PCI && (X86_64 || (PCI_GODIRECT || PCI_GOANY) || X86_VISWS)
1160 default y 1427 default y
1161 1428
1162config PCI_MMCONFIG 1429config PCI_MMCONFIG
1163 bool 1430 bool
1164 depends on PCI && ACPI && (PCI_GOMMCONFIG || PCI_GOANY) 1431 depends on X86_32 && PCI && ACPI && (PCI_GOMMCONFIG || PCI_GOANY)
1165 default y 1432 default y
1166 1433
1167config PCI_DOMAINS 1434config PCI_DOMAINS
@@ -1169,14 +1436,52 @@ config PCI_DOMAINS
1169 depends on PCI 1436 depends on PCI
1170 default y 1437 default y
1171 1438
1439config PCI_MMCONFIG
1440 bool "Support mmconfig PCI config space access"
1441 depends on X86_64 && PCI && ACPI
1442
1443config DMAR
1444 bool "Support for DMA Remapping Devices (EXPERIMENTAL)"
1445 depends on X86_64 && PCI_MSI && ACPI && EXPERIMENTAL
1446 help
1447 DMA remapping (DMAR) devices support enables independent address
1448 translations for Direct Memory Access (DMA) from devices.
1449 These DMA remapping devices are reported via ACPI tables
1450 and include PCI device scope covered by these DMA
1451 remapping devices.
1452
1453config DMAR_GFX_WA
1454 bool "Support for Graphics workaround"
1455 depends on DMAR
1456 default y
1457 help
1458 Current Graphics drivers tend to use physical address
1459 for DMA and avoid using DMA APIs. Setting this config
1460 option permits the IOMMU driver to set a unity map for
1461 all the OS-visible memory. Hence the driver can continue
1462 to use physical addresses for DMA.
1463
1464config DMAR_FLOPPY_WA
1465 bool
1466 depends on DMAR
1467 default y
1468 help
1469 Floppy disk drivers are know to bypass DMA API calls
1470 thereby failing to work when IOMMU is enabled. This
1471 workaround will setup a 1:1 mapping for the first
1472 16M to make floppy (an ISA device) work.
1473
1172source "drivers/pci/pcie/Kconfig" 1474source "drivers/pci/pcie/Kconfig"
1173 1475
1174source "drivers/pci/Kconfig" 1476source "drivers/pci/Kconfig"
1175 1477
1478# x86_64 have no ISA slots, but do have ISA-style DMA.
1176config ISA_DMA_API 1479config ISA_DMA_API
1177 bool 1480 bool
1178 default y 1481 default y
1179 1482
1483if X86_32
1484
1180config ISA 1485config ISA
1181 bool "ISA support" 1486 bool "ISA support"
1182 depends on !(X86_VOYAGER || X86_VISWS) 1487 depends on !(X86_VOYAGER || X86_VISWS)
@@ -1248,9 +1553,11 @@ config GEODE_MFGPT_TIMER
1248 MFGPTs have a better resolution and max interval than the 1553 MFGPTs have a better resolution and max interval than the
1249 generic PIT, and are suitable for use as high-res timers. 1554 generic PIT, and are suitable for use as high-res timers.
1250 1555
1556endif # X86_32
1557
1251config K8_NB 1558config K8_NB
1252 def_bool y 1559 def_bool y
1253 depends on AGP_AMD64 1560 depends on AGP_AMD64 || (X86_64 && (GART_IOMMU || (PCI && NUMA)))
1254 1561
1255source "drivers/pcmcia/Kconfig" 1562source "drivers/pcmcia/Kconfig"
1256 1563
@@ -1258,16 +1565,48 @@ source "drivers/pci/hotplug/Kconfig"
1258 1565
1259endmenu 1566endmenu
1260 1567
1261menu "Executable file formats" 1568
1569menu "Executable file formats / Emulations"
1262 1570
1263source "fs/Kconfig.binfmt" 1571source "fs/Kconfig.binfmt"
1264 1572
1573config IA32_EMULATION
1574 bool "IA32 Emulation"
1575 depends on X86_64
1576 help
1577 Include code to run 32-bit programs under a 64-bit kernel. You should
1578 likely turn this on, unless you're 100% sure that you don't have any
1579 32-bit programs left.
1580
1581config IA32_AOUT
1582 tristate "IA32 a.out support"
1583 depends on IA32_EMULATION
1584 help
1585 Support old a.out binaries in the 32bit emulation.
1586
1587config COMPAT
1588 bool
1589 depends on IA32_EMULATION
1590 default y
1591
1592config COMPAT_FOR_U64_ALIGNMENT
1593 def_bool COMPAT
1594 depends on X86_64
1595
1596config SYSVIPC_COMPAT
1597 bool
1598 depends on X86_64 && COMPAT && SYSVIPC
1599 default y
1600
1265endmenu 1601endmenu
1266 1602
1603
1267source "net/Kconfig" 1604source "net/Kconfig"
1268 1605
1269source "drivers/Kconfig" 1606source "drivers/Kconfig"
1270 1607
1608source "drivers/firmware/Kconfig"
1609
1271source "fs/Kconfig" 1610source "fs/Kconfig"
1272 1611
1273source "kernel/Kconfig.instrumentation" 1612source "kernel/Kconfig.instrumentation"
@@ -1279,43 +1618,3 @@ source "security/Kconfig"
1279source "crypto/Kconfig" 1618source "crypto/Kconfig"
1280 1619
1281source "lib/Kconfig" 1620source "lib/Kconfig"
1282
1283#
1284# Use the generic interrupt handling code in kernel/irq/:
1285#
1286config GENERIC_HARDIRQS
1287 bool
1288 default y
1289
1290config GENERIC_IRQ_PROBE
1291 bool
1292 default y
1293
1294config GENERIC_PENDING_IRQ
1295 bool
1296 depends on GENERIC_HARDIRQS && SMP
1297 default y
1298
1299config X86_SMP
1300 bool
1301 depends on SMP && !X86_VOYAGER
1302 default y
1303
1304config X86_HT
1305 bool
1306 depends on SMP && !(X86_VISWS || X86_VOYAGER)
1307 default y
1308
1309config X86_BIOS_REBOOT
1310 bool
1311 depends on !(X86_VISWS || X86_VOYAGER)
1312 default y
1313
1314config X86_TRAMPOLINE
1315 bool
1316 depends on X86_SMP || (X86_VOYAGER && SMP)
1317 default y
1318
1319config KTIME_SCALAR
1320 bool
1321 default y
diff --git a/arch/x86/Kconfig.cpu b/arch/x86/Kconfig.cpu
index 0e2adadf5905..c30162202dc4 100644
--- a/arch/x86/Kconfig.cpu
+++ b/arch/x86/Kconfig.cpu
@@ -3,11 +3,12 @@ if !X86_ELAN
3 3
4choice 4choice
5 prompt "Processor family" 5 prompt "Processor family"
6 default M686 6 default M686 if X86_32
7 default GENERIC_CPU if X86_64
7 8
8config M386 9config M386
9 bool "386" 10 bool "386"
10 depends on !UML 11 depends on X86_32 && !UML
11 ---help--- 12 ---help---
12 This is the processor type of your CPU. This information is used for 13 This is the processor type of your CPU. This information is used for
13 optimizing purposes. In order to compile a kernel that can run on 14 optimizing purposes. In order to compile a kernel that can run on
@@ -49,6 +50,7 @@ config M386
49 50
50config M486 51config M486
51 bool "486" 52 bool "486"
53 depends on X86_32
52 help 54 help
53 Select this for a 486 series processor, either Intel or one of the 55 Select this for a 486 series processor, either Intel or one of the
54 compatible processors from AMD, Cyrix, IBM, or Intel. Includes DX, 56 compatible processors from AMD, Cyrix, IBM, or Intel. Includes DX,
@@ -57,6 +59,7 @@ config M486
57 59
58config M586 60config M586
59 bool "586/K5/5x86/6x86/6x86MX" 61 bool "586/K5/5x86/6x86/6x86MX"
62 depends on X86_32
60 help 63 help
61 Select this for an 586 or 686 series processor such as the AMD K5, 64 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 65 the Cyrix 5x86, 6x86 and 6x86MX. This choice does not
@@ -64,18 +67,21 @@ config M586
64 67
65config M586TSC 68config M586TSC
66 bool "Pentium-Classic" 69 bool "Pentium-Classic"
70 depends on X86_32
67 help 71 help
68 Select this for a Pentium Classic processor with the RDTSC (Read 72 Select this for a Pentium Classic processor with the RDTSC (Read
69 Time Stamp Counter) instruction for benchmarking. 73 Time Stamp Counter) instruction for benchmarking.
70 74
71config M586MMX 75config M586MMX
72 bool "Pentium-MMX" 76 bool "Pentium-MMX"
77 depends on X86_32
73 help 78 help
74 Select this for a Pentium with the MMX graphics/multimedia 79 Select this for a Pentium with the MMX graphics/multimedia
75 extended instructions. 80 extended instructions.
76 81
77config M686 82config M686
78 bool "Pentium-Pro" 83 bool "Pentium-Pro"
84 depends on X86_32
79 help 85 help
80 Select this for Intel Pentium Pro chips. This enables the use of 86 Select this for Intel Pentium Pro chips. This enables the use of
81 Pentium Pro extended instructions, and disables the init-time guard 87 Pentium Pro extended instructions, and disables the init-time guard
@@ -83,6 +89,7 @@ config M686
83 89
84config MPENTIUMII 90config MPENTIUMII
85 bool "Pentium-II/Celeron(pre-Coppermine)" 91 bool "Pentium-II/Celeron(pre-Coppermine)"
92 depends on X86_32
86 help 93 help
87 Select this for Intel chips based on the Pentium-II and 94 Select this for Intel chips based on the Pentium-II and
88 pre-Coppermine Celeron core. This option enables an unaligned 95 pre-Coppermine Celeron core. This option enables an unaligned
@@ -92,6 +99,7 @@ config MPENTIUMII
92 99
93config MPENTIUMIII 100config MPENTIUMIII
94 bool "Pentium-III/Celeron(Coppermine)/Pentium-III Xeon" 101 bool "Pentium-III/Celeron(Coppermine)/Pentium-III Xeon"
102 depends on X86_32
95 help 103 help
96 Select this for Intel chips based on the Pentium-III and 104 Select this for Intel chips based on the Pentium-III and
97 Celeron-Coppermine core. This option enables use of some 105 Celeron-Coppermine core. This option enables use of some
@@ -100,19 +108,14 @@ config MPENTIUMIII
100 108
101config MPENTIUMM 109config MPENTIUMM
102 bool "Pentium M" 110 bool "Pentium M"
111 depends on X86_32
103 help 112 help
104 Select this for Intel Pentium M (not Pentium-4 M) 113 Select this for Intel Pentium M (not Pentium-4 M)
105 notebook chips. 114 notebook chips.
106 115
107config MCORE2
108 bool "Core 2/newer Xeon"
109 help
110 Select this for Intel Core 2 and newer Core 2 Xeons (Xeon 51xx and 53xx)
111 CPUs. You can distinguish newer from older Xeons by the CPU family
112 in /proc/cpuinfo. Newer ones have 6 and older ones 15 (not a typo)
113
114config MPENTIUM4 116config MPENTIUM4
115 bool "Pentium-4/Celeron(P4-based)/Pentium-4 M/older Xeon" 117 bool "Pentium-4/Celeron(P4-based)/Pentium-4 M/older Xeon"
118 depends on X86_32
116 help 119 help
117 Select this for Intel Pentium 4 chips. This includes the 120 Select this for Intel Pentium 4 chips. This includes the
118 Pentium 4, Pentium D, P4-based Celeron and Xeon, and 121 Pentium 4, Pentium D, P4-based Celeron and Xeon, and
@@ -148,6 +151,7 @@ config MPENTIUM4
148 151
149config MK6 152config MK6
150 bool "K6/K6-II/K6-III" 153 bool "K6/K6-II/K6-III"
154 depends on X86_32
151 help 155 help
152 Select this for an AMD K6-family processor. Enables use of 156 Select this for an AMD K6-family processor. Enables use of
153 some extended instructions, and passes appropriate optimization 157 some extended instructions, and passes appropriate optimization
@@ -155,6 +159,7 @@ config MK6
155 159
156config MK7 160config MK7
157 bool "Athlon/Duron/K7" 161 bool "Athlon/Duron/K7"
162 depends on X86_32
158 help 163 help
159 Select this for an AMD Athlon K7-family processor. Enables use of 164 Select this for an AMD Athlon K7-family processor. Enables use of
160 some extended instructions, and passes appropriate optimization 165 some extended instructions, and passes appropriate optimization
@@ -169,6 +174,7 @@ config MK8
169 174
170config MCRUSOE 175config MCRUSOE
171 bool "Crusoe" 176 bool "Crusoe"
177 depends on X86_32
172 help 178 help
173 Select this for a Transmeta Crusoe processor. Treats the processor 179 Select this for a Transmeta Crusoe processor. Treats the processor
174 like a 586 with TSC, and sets some GCC optimization flags (like a 180 like a 586 with TSC, and sets some GCC optimization flags (like a
@@ -176,11 +182,13 @@ config MCRUSOE
176 182
177config MEFFICEON 183config MEFFICEON
178 bool "Efficeon" 184 bool "Efficeon"
185 depends on X86_32
179 help 186 help
180 Select this for a Transmeta Efficeon processor. 187 Select this for a Transmeta Efficeon processor.
181 188
182config MWINCHIPC6 189config MWINCHIPC6
183 bool "Winchip-C6" 190 bool "Winchip-C6"
191 depends on X86_32
184 help 192 help
185 Select this for an IDT Winchip C6 chip. Linux and GCC 193 Select this for an IDT Winchip C6 chip. Linux and GCC
186 treat this chip as a 586TSC with some extended instructions 194 treat this chip as a 586TSC with some extended instructions
@@ -188,6 +196,7 @@ config MWINCHIPC6
188 196
189config MWINCHIP2 197config MWINCHIP2
190 bool "Winchip-2" 198 bool "Winchip-2"
199 depends on X86_32
191 help 200 help
192 Select this for an IDT Winchip-2. Linux and GCC 201 Select this for an IDT Winchip-2. Linux and GCC
193 treat this chip as a 586TSC with some extended instructions 202 treat this chip as a 586TSC with some extended instructions
@@ -195,6 +204,7 @@ config MWINCHIP2
195 204
196config MWINCHIP3D 205config MWINCHIP3D
197 bool "Winchip-2A/Winchip-3" 206 bool "Winchip-2A/Winchip-3"
207 depends on X86_32
198 help 208 help
199 Select this for an IDT Winchip-2A or 3. Linux and GCC 209 Select this for an IDT Winchip-2A or 3. Linux and GCC
200 treat this chip as a 586TSC with some extended instructions 210 treat this chip as a 586TSC with some extended instructions
@@ -204,16 +214,19 @@ config MWINCHIP3D
204 214
205config MGEODEGX1 215config MGEODEGX1
206 bool "GeodeGX1" 216 bool "GeodeGX1"
217 depends on X86_32
207 help 218 help
208 Select this for a Geode GX1 (Cyrix MediaGX) chip. 219 Select this for a Geode GX1 (Cyrix MediaGX) chip.
209 220
210config MGEODE_LX 221config MGEODE_LX
211 bool "Geode GX/LX" 222 bool "Geode GX/LX"
223 depends on X86_32
212 help 224 help
213 Select this for AMD Geode GX and LX processors. 225 Select this for AMD Geode GX and LX processors.
214 226
215config MCYRIXIII 227config MCYRIXIII
216 bool "CyrixIII/VIA-C3" 228 bool "CyrixIII/VIA-C3"
229 depends on X86_32
217 help 230 help
218 Select this for a Cyrix III or C3 chip. Presently Linux and GCC 231 Select this for a Cyrix III or C3 chip. Presently Linux and GCC
219 treat this chip as a generic 586. Whilst the CPU is 686 class, 232 treat this chip as a generic 586. Whilst the CPU is 686 class,
@@ -225,6 +238,7 @@ config MCYRIXIII
225 238
226config MVIAC3_2 239config MVIAC3_2
227 bool "VIA C3-2 (Nehemiah)" 240 bool "VIA C3-2 (Nehemiah)"
241 depends on X86_32
228 help 242 help
229 Select this for a VIA C3 "Nehemiah". Selecting this enables usage 243 Select this for a VIA C3 "Nehemiah". Selecting this enables usage
230 of SSE and tells gcc to treat the CPU as a 686. 244 of SSE and tells gcc to treat the CPU as a 686.
@@ -232,15 +246,42 @@ config MVIAC3_2
232 246
233config MVIAC7 247config MVIAC7
234 bool "VIA C7" 248 bool "VIA C7"
249 depends on X86_32
235 help 250 help
236 Select this for a VIA C7. Selecting this uses the correct cache 251 Select this for a VIA C7. Selecting this uses the correct cache
237 shift and tells gcc to treat the CPU as a 686. 252 shift and tells gcc to treat the CPU as a 686.
238 253
254config MPSC
255 bool "Intel P4 / older Netburst based Xeon"
256 depends on X86_64
257 help
258 Optimize for Intel Pentium 4, Pentium D and older Nocona/Dempsey
259 Xeon CPUs with Intel 64bit which is compatible with x86-64.
260 Note that the latest Xeons (Xeon 51xx and 53xx) are not based on the
261 Netburst core and shouldn't use this option. You can distinguish them
262 using the cpu family field
263 in /proc/cpuinfo. Family 15 is an older Xeon, Family 6 a newer one.
264
265config MCORE2
266 bool "Core 2/newer Xeon"
267 help
268 Select this for Intel Core 2 and newer Core 2 Xeons (Xeon 51xx and 53xx)
269 CPUs. You can distinguish newer from older Xeons by the CPU family
270 in /proc/cpuinfo. Newer ones have 6 and older ones 15 (not a typo)
271
272config GENERIC_CPU
273 bool "Generic-x86-64"
274 depends on X86_64
275 help
276 Generic x86-64 CPU.
277 Run equally well on all x86-64 CPUs.
278
239endchoice 279endchoice
240 280
241config X86_GENERIC 281config X86_GENERIC
242 bool "Generic x86 support" 282 bool "Generic x86 support"
243 help 283 depends on X86_32
284 help
244 Instead of just including optimizations for the selected 285 Instead of just including optimizations for the selected
245 x86 variant (e.g. PII, Crusoe or Athlon), include some more 286 x86 variant (e.g. PII, Crusoe or Athlon), include some more
246 generic optimizations as well. This will make the kernel 287 generic optimizations as well. This will make the kernel
@@ -253,44 +294,31 @@ endif
253 294
254# 295#
255# Define implied options from the CPU selection here 296# Define implied options from the CPU selection here
256# 297config X86_L1_CACHE_BYTES
298 int
299 default "128" if GENERIC_CPU || MPSC
300 default "64" if MK8 || MCORE2
301 depends on X86_64
302
303config X86_INTERNODE_CACHE_BYTES
304 int
305 default "4096" if X86_VSMP
306 default X86_L1_CACHE_BYTES if !X86_VSMP
307 depends on X86_64
308
257config X86_CMPXCHG 309config X86_CMPXCHG
258 bool 310 def_bool X86_64 || (X86_32 && !M386)
259 depends on !M386
260 default y
261 311
262config X86_L1_CACHE_SHIFT 312config X86_L1_CACHE_SHIFT
263 int 313 int
264 default "7" if MPENTIUM4 || X86_GENERIC 314 default "7" if MPENTIUM4 || X86_GENERIC || GENERIC_CPU || MPSC
265 default "4" if X86_ELAN || M486 || M386 || MGEODEGX1 315 default "4" if X86_ELAN || M486 || M386 || MGEODEGX1
266 default "5" if MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCRUSOE || MEFFICEON || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || M586 || MVIAC3_2 || MGEODE_LX 316 default "5" if MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCRUSOE || MEFFICEON || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || M586 || MVIAC3_2 || MGEODE_LX
267 default "6" if MK7 || MK8 || MPENTIUMM || MCORE2 || MVIAC7 317 default "6" if MK7 || MK8 || MPENTIUMM || MCORE2 || MVIAC7
268 318
269config X86_XADD 319config X86_XADD
270 bool 320 bool
271 depends on !M386 321 depends on X86_32 && !M386
272 default y
273
274config RWSEM_GENERIC_SPINLOCK
275 bool
276 depends on !X86_XADD
277 default y
278
279config RWSEM_XCHGADD_ALGORITHM
280 bool
281 depends on X86_XADD
282 default y
283
284config ARCH_HAS_ILOG2_U32
285 bool
286 default n
287
288config ARCH_HAS_ILOG2_U64
289 bool
290 default n
291
292config GENERIC_CALIBRATE_DELAY
293 bool
294 default y 322 default y
295 323
296config X86_PPRO_FENCE 324config X86_PPRO_FENCE
@@ -305,22 +333,22 @@ config X86_F00F_BUG
305 333
306config X86_WP_WORKS_OK 334config X86_WP_WORKS_OK
307 bool 335 bool
308 depends on !M386 336 depends on X86_32 && !M386
309 default y 337 default y
310 338
311config X86_INVLPG 339config X86_INVLPG
312 bool 340 bool
313 depends on !M386 341 depends on X86_32 && !M386
314 default y 342 default y
315 343
316config X86_BSWAP 344config X86_BSWAP
317 bool 345 bool
318 depends on !M386 346 depends on X86_32 && !M386
319 default y 347 default y
320 348
321config X86_POPAD_OK 349config X86_POPAD_OK
322 bool 350 bool
323 depends on !M386 351 depends on X86_32 && !M386
324 default y 352 default y
325 353
326config X86_ALIGNMENT_16 354config X86_ALIGNMENT_16
@@ -330,7 +358,7 @@ config X86_ALIGNMENT_16
330 358
331config X86_GOOD_APIC 359config X86_GOOD_APIC
332 bool 360 bool
333 depends on MK7 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || MK8 || MEFFICEON || MCORE2 || MVIAC7 361 depends on MK7 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || MK8 || MEFFICEON || MCORE2 || MVIAC7 || X86_64
334 default y 362 default y
335 363
336config X86_INTEL_USERCOPY 364config X86_INTEL_USERCOPY
@@ -355,7 +383,7 @@ config X86_OOSTORE
355 383
356config X86_TSC 384config X86_TSC
357 bool 385 bool
358 depends on (MWINCHIP3D || MWINCHIP2 || MCRUSOE || MEFFICEON || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || MK8 || MVIAC3_2 || MVIAC7 || MGEODEGX1 || MGEODE_LX || MCORE2) && !X86_NUMAQ 386 depends on ((MWINCHIP3D || MWINCHIP2 || MCRUSOE || MEFFICEON || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || MK8 || MVIAC3_2 || MVIAC7 || MGEODEGX1 || MGEODE_LX || MCORE2) && !X86_NUMAQ) || X86_64
359 default y 387 default y
360 388
361# this should be set for all -march=.. options where the compiler 389# this should be set for all -march=.. options where the compiler
@@ -367,6 +395,7 @@ config X86_CMOV
367 395
368config X86_MINIMUM_CPU_FAMILY 396config X86_MINIMUM_CPU_FAMILY
369 int 397 int
370 default "4" if X86_XADD || X86_CMPXCHG || X86_BSWAP || X86_WP_WORKS_OK 398 default "64" if X86_64
399 default "4" if X86_32 && (X86_XADD || X86_CMPXCHG || X86_BSWAP || X86_WP_WORKS_OK)
371 default "3" 400 default "3"
372 401
diff --git a/arch/x86/Kconfig.x86_64 b/arch/x86/Kconfig.x86_64
deleted file mode 100644
index cc468ea61240..000000000000
--- a/arch/x86/Kconfig.x86_64
+++ /dev/null
@@ -1,839 +0,0 @@
1#
2# For a description of the syntax of this configuration file,
3# see Documentation/kbuild/kconfig-language.txt.
4#
5# Note: ISA is disabled and will hopefully never be enabled.
6# If you managed to buy an ISA x86-64 box you'll have to fix all the
7# ISA drivers you need yourself.
8#
9
10mainmenu "Linux Kernel Configuration"
11
12config X86_64
13 bool
14 default y
15 help
16 Port to the x86-64 architecture. x86-64 is a 64-bit extension to the
17 classical 32-bit x86 architecture. For details see
18 <http://www.x86-64.org/>.
19
20config 64BIT
21 def_bool y
22
23config X86
24 bool
25 default y
26
27config GENERIC_TIME
28 bool
29 default y
30
31config GENERIC_TIME_VSYSCALL
32 bool
33 default y
34
35config GENERIC_CMOS_UPDATE
36 bool
37 default y
38
39config CLOCKSOURCE_WATCHDOG
40 bool
41 default y
42
43config GENERIC_CLOCKEVENTS
44 bool
45 default y
46
47config GENERIC_CLOCKEVENTS_BROADCAST
48 bool
49 default y
50
51config ZONE_DMA32
52 bool
53 default y
54
55config LOCKDEP_SUPPORT
56 bool
57 default y
58
59config STACKTRACE_SUPPORT
60 bool
61 default y
62
63config SEMAPHORE_SLEEPERS
64 bool
65 default y
66
67config MMU
68 bool
69 default y
70
71config ZONE_DMA
72 bool
73 default y
74
75config ISA
76 bool
77
78config SBUS
79 bool
80
81config RWSEM_GENERIC_SPINLOCK
82 bool
83 default y
84
85config RWSEM_XCHGADD_ALGORITHM
86 bool
87
88config GENERIC_HWEIGHT
89 bool
90 default y
91
92config GENERIC_CALIBRATE_DELAY
93 bool
94 default y
95
96config X86_CMPXCHG
97 bool
98 default y
99
100config GENERIC_ISA_DMA
101 bool
102 default y
103
104config GENERIC_IOMAP
105 bool
106 default y
107
108config ARCH_MAY_HAVE_PC_FDC
109 bool
110 default y
111
112config ARCH_POPULATES_NODE_MAP
113 def_bool y
114
115config DMI
116 bool
117 default y
118
119config AUDIT_ARCH
120 bool
121 default y
122
123config GENERIC_BUG
124 bool
125 default y
126 depends on BUG
127
128config ARCH_HAS_ILOG2_U32
129 bool
130 default n
131
132config ARCH_HAS_ILOG2_U64
133 bool
134 default n
135
136source "init/Kconfig"
137
138
139menu "Processor type and features"
140
141source "kernel/time/Kconfig"
142
143choice
144 prompt "Subarchitecture Type"
145 default X86_PC
146
147config X86_PC
148 bool "PC-compatible"
149 help
150 Choose this option if your computer is a standard PC or compatible.
151
152config X86_VSMP
153 bool "Support for ScaleMP vSMP"
154 depends on PCI
155 help
156 Support for ScaleMP vSMP systems. Say 'Y' here if this kernel is
157 supposed to run on these EM64T-based machines. Only choose this option
158 if you have one of these machines.
159
160endchoice
161
162choice
163 prompt "Processor family"
164 default GENERIC_CPU
165
166config MK8
167 bool "AMD-Opteron/Athlon64"
168 help
169 Optimize for AMD Opteron/Athlon64/Hammer/K8 CPUs.
170
171config MPSC
172 bool "Intel P4 / older Netburst based Xeon"
173 help
174 Optimize for Intel Pentium 4, Pentium D and older Nocona/Dempsey
175 Xeon CPUs with Intel 64bit which is compatible with x86-64.
176 Note that the latest Xeons (Xeon 51xx and 53xx) are not based on the
177 Netburst core and shouldn't use this option. You can distinguish them
178 using the cpu family field
179 in /proc/cpuinfo. Family 15 is an older Xeon, Family 6 a newer one.
180
181config MCORE2
182 bool "Intel Core2 / newer Xeon"
183 help
184 Optimize for Intel Core2 and newer Xeons (51xx)
185 You can distinguish the newer Xeons from the older ones using
186 the cpu family field in /proc/cpuinfo. 15 is an older Xeon
187 (use CONFIG_MPSC then), 6 is a newer one.
188
189config GENERIC_CPU
190 bool "Generic-x86-64"
191 help
192 Generic x86-64 CPU.
193 Run equally well on all x86-64 CPUs.
194
195endchoice
196
197#
198# Define implied options from the CPU selection here
199#
200config X86_L1_CACHE_BYTES
201 int
202 default "128" if GENERIC_CPU || MPSC
203 default "64" if MK8 || MCORE2
204
205config X86_L1_CACHE_SHIFT
206 int
207 default "7" if GENERIC_CPU || MPSC
208 default "6" if MK8 || MCORE2
209
210config X86_INTERNODE_CACHE_BYTES
211 int
212 default "4096" if X86_VSMP
213 default X86_L1_CACHE_BYTES if !X86_VSMP
214
215config X86_TSC
216 bool
217 default y
218
219config X86_GOOD_APIC
220 bool
221 default y
222
223config MICROCODE
224 tristate "/dev/cpu/microcode - Intel CPU microcode support"
225 select FW_LOADER
226 ---help---
227 If you say Y here the 'File systems' section, you will be
228 able to update the microcode on Intel processors. You will
229 obviously need the actual microcode binary data itself which is
230 not shipped with the Linux kernel.
231
232 For latest news and information on obtaining all the required
233 ingredients for this driver, check:
234 <http://www.urbanmyth.org/microcode/>.
235
236 To compile this driver as a module, choose M here: the
237 module will be called microcode.
238 If you use modprobe or kmod you may also want to add the line
239 'alias char-major-10-184 microcode' to your /etc/modules.conf file.
240
241config MICROCODE_OLD_INTERFACE
242 bool
243 depends on MICROCODE
244 default y
245
246config X86_MSR
247 tristate "/dev/cpu/*/msr - Model-specific register support"
248 help
249 This device gives privileged processes access to the x86
250 Model-Specific Registers (MSRs). It is a character device with
251 major 202 and minors 0 to 31 for /dev/cpu/0/msr to /dev/cpu/31/msr.
252 MSR accesses are directed to a specific CPU on multi-processor
253 systems.
254
255config X86_CPUID
256 tristate "/dev/cpu/*/cpuid - CPU information support"
257 help
258 This device gives processes access to the x86 CPUID instruction to
259 be executed on a specific processor. It is a character device
260 with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to
261 /dev/cpu/31/cpuid.
262
263config X86_HT
264 bool
265 depends on SMP && !MK8
266 default y
267
268config MATH_EMULATION
269 bool
270
271config MCA
272 bool
273
274config EISA
275 bool
276
277config X86_IO_APIC
278 bool
279 default y
280
281config X86_LOCAL_APIC
282 bool
283 default y
284
285config MTRR
286 bool "MTRR (Memory Type Range Register) support"
287 ---help---
288 On Intel P6 family processors (Pentium Pro, Pentium II and later)
289 the Memory Type Range Registers (MTRRs) may be used to control
290 processor access to memory ranges. This is most useful if you have
291 a video (VGA) card on a PCI or AGP bus. Enabling write-combining
292 allows bus write transfers to be combined into a larger transfer
293 before bursting over the PCI/AGP bus. This can increase performance
294 of image write operations 2.5 times or more. Saying Y here creates a
295 /proc/mtrr file which may be used to manipulate your processor's
296 MTRRs. Typically the X server should use this.
297
298 This code has a reasonably generic interface so that similar
299 control registers on other processors can be easily supported
300 as well.
301
302 Saying Y here also fixes a problem with buggy SMP BIOSes which only
303 set the MTRRs for the boot CPU and not for the secondary CPUs. This
304 can lead to all sorts of problems, so it's good to say Y here.
305
306 Just say Y here, all x86-64 machines support MTRRs.
307
308 See <file:Documentation/mtrr.txt> for more information.
309
310config SMP
311 bool "Symmetric multi-processing support"
312 ---help---
313 This enables support for systems with more than one CPU. If you have
314 a system with only one CPU, like most personal computers, say N. If
315 you have a system with more than one CPU, say Y.
316
317 If you say N here, the kernel will run on single and multiprocessor
318 machines, but will use only one CPU of a multiprocessor machine. If
319 you say Y here, the kernel will run on many, but not all,
320 singleprocessor machines. On a singleprocessor machine, the kernel
321 will run faster if you say N here.
322
323 If you don't know what to do here, say N.
324
325config SCHED_SMT
326 bool "SMT (Hyperthreading) scheduler support"
327 depends on SMP
328 default n
329 help
330 SMT scheduler support improves the CPU scheduler's decision making
331 when dealing with Intel Pentium 4 chips with HyperThreading at a
332 cost of slightly increased overhead in some places. If unsure say
333 N here.
334
335config SCHED_MC
336 bool "Multi-core scheduler support"
337 depends on SMP
338 default y
339 help
340 Multi-core scheduler support improves the CPU scheduler's decision
341 making when dealing with multi-core CPU chips at a cost of slightly
342 increased overhead in some places. If unsure say N here.
343
344source "kernel/Kconfig.preempt"
345
346config NUMA
347 bool "Non Uniform Memory Access (NUMA) Support"
348 depends on SMP
349 help
350 Enable NUMA (Non Uniform Memory Access) support. The kernel
351 will try to allocate memory used by a CPU on the local memory
352 controller of the CPU and add some more NUMA awareness to the kernel.
353 This code is recommended on all multiprocessor Opteron systems.
354 If the system is EM64T, you should say N unless your system is EM64T
355 NUMA.
356
357config K8_NUMA
358 bool "Old style AMD Opteron NUMA detection"
359 depends on NUMA && PCI
360 default y
361 help
362 Enable K8 NUMA node topology detection. You should say Y here if
363 you have a multi processor AMD K8 system. This uses an old
364 method to read the NUMA configuration directly from the builtin
365 Northbridge of Opteron. It is recommended to use X86_64_ACPI_NUMA
366 instead, which also takes priority if both are compiled in.
367
368config NODES_SHIFT
369 int
370 default "6"
371 depends on NEED_MULTIPLE_NODES
372
373# Dummy CONFIG option to select ACPI_NUMA from drivers/acpi/Kconfig.
374
375config X86_64_ACPI_NUMA
376 bool "ACPI NUMA detection"
377 depends on NUMA
378 select ACPI
379 select PCI
380 select ACPI_NUMA
381 default y
382 help
383 Enable ACPI SRAT based node topology detection.
384
385config NUMA_EMU
386 bool "NUMA emulation"
387 depends on NUMA
388 help
389 Enable NUMA emulation. A flat machine will be split
390 into virtual nodes when booted with "numa=fake=N", where N is the
391 number of nodes. This is only useful for debugging.
392
393config ARCH_DISCONTIGMEM_ENABLE
394 bool
395 depends on NUMA
396 default y
397
398config ARCH_DISCONTIGMEM_DEFAULT
399 def_bool y
400 depends on NUMA
401
402config ARCH_SPARSEMEM_ENABLE
403 def_bool y
404 depends on (NUMA || EXPERIMENTAL)
405 select SPARSEMEM_VMEMMAP_ENABLE
406
407config ARCH_MEMORY_PROBE
408 def_bool y
409 depends on MEMORY_HOTPLUG
410
411config ARCH_FLATMEM_ENABLE
412 def_bool y
413 depends on !NUMA
414
415source "mm/Kconfig"
416
417config MEMORY_HOTPLUG_RESERVE
418 def_bool y
419 depends on (MEMORY_HOTPLUG && DISCONTIGMEM)
420
421config HAVE_ARCH_EARLY_PFN_TO_NID
422 def_bool y
423 depends on NUMA
424
425config OUT_OF_LINE_PFN_TO_PAGE
426 def_bool y
427 depends on DISCONTIGMEM
428
429config NR_CPUS
430 int "Maximum number of CPUs (2-255)"
431 range 2 255
432 depends on SMP
433 default "8"
434 help
435 This allows you to specify the maximum number of CPUs which this
436 kernel will support. Current maximum is 255 CPUs due to
437 APIC addressing limits. Less depending on the hardware.
438
439 This is purely to save memory - each supported CPU requires
440 memory in the static kernel configuration.
441
442config PHYSICAL_ALIGN
443 hex
444 default "0x200000"
445
446config HOTPLUG_CPU
447 bool "Support for suspend on SMP and hot-pluggable CPUs (EXPERIMENTAL)"
448 depends on SMP && HOTPLUG && EXPERIMENTAL
449 help
450 Say Y here to experiment with turning CPUs off and on. CPUs
451 can be controlled through /sys/devices/system/cpu/cpu#.
452 This is also required for suspend/hibernation on SMP systems.
453
454 Say N if you want to disable CPU hotplug and don't need to
455 suspend.
456
457config ARCH_ENABLE_MEMORY_HOTPLUG
458 def_bool y
459
460config HPET_TIMER
461 bool
462 default y
463 help
464 Use the IA-PC HPET (High Precision Event Timer) to manage
465 time in preference to the PIT and RTC, if a HPET is
466 present. The HPET provides a stable time base on SMP
467 systems, unlike the TSC, but it is more expensive to access,
468 as it is off-chip. You can find the HPET spec at
469 <http://www.intel.com/hardwaredesign/hpetspec.htm>.
470
471config HPET_EMULATE_RTC
472 bool
473 depends on HPET_TIMER && RTC=y
474 default y
475
476# Mark as embedded because too many people got it wrong.
477# The code disables itself when not needed.
478config GART_IOMMU
479 bool "GART IOMMU support" if EMBEDDED
480 default y
481 select SWIOTLB
482 select AGP
483 depends on PCI
484 help
485 Support for full DMA access of devices with 32bit memory access only
486 on systems with more than 3GB. This is usually needed for USB,
487 sound, many IDE/SATA chipsets and some other devices.
488 Provides a driver for the AMD Athlon64/Opteron/Turion/Sempron GART
489 based hardware IOMMU and a software bounce buffer based IOMMU used
490 on Intel systems and as fallback.
491 The code is only active when needed (enough memory and limited
492 device) unless CONFIG_IOMMU_DEBUG or iommu=force is specified
493 too.
494
495config CALGARY_IOMMU
496 bool "IBM Calgary IOMMU support"
497 select SWIOTLB
498 depends on PCI && EXPERIMENTAL
499 help
500 Support for hardware IOMMUs in IBM's xSeries x366 and x460
501 systems. Needed to run systems with more than 3GB of memory
502 properly with 32-bit PCI devices that do not support DAC
503 (Double Address Cycle). Calgary also supports bus level
504 isolation, where all DMAs pass through the IOMMU. This
505 prevents them from going anywhere except their intended
506 destination. This catches hard-to-find kernel bugs and
507 mis-behaving drivers and devices that do not use the DMA-API
508 properly to set up their DMA buffers. The IOMMU can be
509 turned off at boot time with the iommu=off parameter.
510 Normally the kernel will make the right choice by itself.
511 If unsure, say Y.
512
513config CALGARY_IOMMU_ENABLED_BY_DEFAULT
514 bool "Should Calgary be enabled by default?"
515 default y
516 depends on CALGARY_IOMMU
517 help
518 Should Calgary be enabled by default? if you choose 'y', Calgary
519 will be used (if it exists). If you choose 'n', Calgary will not be
520 used even if it exists. If you choose 'n' and would like to use
521 Calgary anyway, pass 'iommu=calgary' on the kernel command line.
522 If unsure, say Y.
523
524# need this always selected by IOMMU for the VIA workaround
525config SWIOTLB
526 bool
527 help
528 Support for software bounce buffers used on x86-64 systems
529 which don't have a hardware IOMMU (e.g. the current generation
530 of Intel's x86-64 CPUs). Using this PCI devices which can only
531 access 32-bits of memory can be used on systems with more than
532 3 GB of memory. If unsure, say Y.
533
534config X86_MCE
535 bool "Machine check support" if EMBEDDED
536 default y
537 help
538 Include a machine check error handler to report hardware errors.
539 This version will require the mcelog utility to decode some
540 machine check error logs. See
541 ftp://ftp.x86-64.org/pub/linux/tools/mcelog
542
543config X86_MCE_INTEL
544 bool "Intel MCE features"
545 depends on X86_MCE && X86_LOCAL_APIC
546 default y
547 help
548 Additional support for intel specific MCE features such as
549 the thermal monitor.
550
551config X86_MCE_AMD
552 bool "AMD MCE features"
553 depends on X86_MCE && X86_LOCAL_APIC
554 default y
555 help
556 Additional support for AMD specific MCE features such as
557 the DRAM Error Threshold.
558
559config KEXEC
560 bool "kexec system call"
561 help
562 kexec is a system call that implements the ability to shutdown your
563 current kernel, and to start another kernel. It is like a reboot
564 but it is independent of the system firmware. And like a reboot
565 you can start any kernel with it, not just Linux.
566
567 The name comes from the similarity to the exec system call.
568
569 It is an ongoing process to be certain the hardware in a machine
570 is properly shutdown, so do not be surprised if this code does not
571 initially work for you. It may help to enable device hotplugging
572 support. As of this writing the exact hardware interface is
573 strongly in flux, so no good recommendation can be made.
574
575config CRASH_DUMP
576 bool "kernel crash dumps (EXPERIMENTAL)"
577 depends on EXPERIMENTAL
578 help
579 Generate crash dump after being started by kexec.
580 This should be normally only set in special crash dump kernels
581 which are loaded in the main kernel with kexec-tools into
582 a specially reserved region and then later executed after
583 a crash by kdump/kexec. The crash dump kernel must be compiled
584 to a memory address not used by the main kernel or BIOS using
585 PHYSICAL_START, or it must be built as a relocatable image
586 (CONFIG_RELOCATABLE=y).
587 For more details see Documentation/kdump/kdump.txt
588
589config RELOCATABLE
590 bool "Build a relocatable kernel (EXPERIMENTAL)"
591 depends on EXPERIMENTAL
592 help
593 Builds a relocatable kernel. This enables loading and running
594 a kernel binary from a different physical address than it has
595 been compiled for.
596
597 One use is for the kexec on panic case where the recovery kernel
598 must live at a different physical address than the primary
599 kernel.
600
601 Note: If CONFIG_RELOCATABLE=y, then the kernel runs from the address
602 it has been loaded at and the compile time physical address
603 (CONFIG_PHYSICAL_START) is ignored.
604
605config PHYSICAL_START
606 hex "Physical address where the kernel is loaded" if (EMBEDDED || CRASH_DUMP)
607 default "0x200000"
608 help
609 This gives the physical address where the kernel is loaded. It
610 should be aligned to 2MB boundary.
611
612 If kernel is a not relocatable (CONFIG_RELOCATABLE=n) then
613 bzImage will decompress itself to above physical address and
614 run from there. Otherwise, bzImage will run from the address where
615 it has been loaded by the boot loader and will ignore above physical
616 address.
617
618 In normal kdump cases one does not have to set/change this option
619 as now bzImage can be compiled as a completely relocatable image
620 (CONFIG_RELOCATABLE=y) and be used to load and run from a different
621 address. This option is mainly useful for the folks who don't want
622 to use a bzImage for capturing the crash dump and want to use a
623 vmlinux instead.
624
625 So if you are using bzImage for capturing the crash dump, leave
626 the value here unchanged to 0x200000 and set CONFIG_RELOCATABLE=y.
627 Otherwise if you plan to use vmlinux for capturing the crash dump
628 change this value to start of the reserved region (Typically 16MB
629 0x1000000). In other words, it can be set based on the "X" value as
630 specified in the "crashkernel=YM@XM" command line boot parameter
631 passed to the panic-ed kernel. Typically this parameter is set as
632 crashkernel=64M@16M. Please take a look at
633 Documentation/kdump/kdump.txt for more details about crash dumps.
634
635 Usage of bzImage for capturing the crash dump is advantageous as
636 one does not have to build two kernels. Same kernel can be used
637 as production kernel and capture kernel.
638
639 Don't change this unless you know what you are doing.
640
641config SECCOMP
642 bool "Enable seccomp to safely compute untrusted bytecode"
643 depends on PROC_FS
644 default y
645 help
646 This kernel feature is useful for number crunching applications
647 that may need to compute untrusted bytecode during their
648 execution. By using pipes or other transports made available to
649 the process as file descriptors supporting the read/write
650 syscalls, it's possible to isolate those applications in
651 their own address space using seccomp. Once seccomp is
652 enabled via /proc/<pid>/seccomp, it cannot be disabled
653 and the task is only allowed to execute a few safe syscalls
654 defined by each seccomp mode.
655
656 If unsure, say Y. Only embedded should say N here.
657
658config CC_STACKPROTECTOR
659 bool "Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)"
660 depends on EXPERIMENTAL
661 help
662 This option turns on the -fstack-protector GCC feature. This
663 feature puts, at the beginning of critical functions, a canary
664 value on the stack just before the return address, and validates
665 the value just before actually returning. Stack based buffer
666 overflows (that need to overwrite this return address) now also
667 overwrite the canary, which gets detected and the attack is then
668 neutralized via a kernel panic.
669
670 This feature requires gcc version 4.2 or above, or a distribution
671 gcc with the feature backported. Older versions are automatically
672 detected and for those versions, this configuration option is ignored.
673
674config CC_STACKPROTECTOR_ALL
675 bool "Use stack-protector for all functions"
676 depends on CC_STACKPROTECTOR
677 help
678 Normally, GCC only inserts the canary value protection for
679 functions that use large-ish on-stack buffers. By enabling
680 this option, GCC will be asked to do this for ALL functions.
681
682source kernel/Kconfig.hz
683
684config K8_NB
685 def_bool y
686 depends on AGP_AMD64 || GART_IOMMU || (PCI && NUMA)
687
688endmenu
689
690#
691# Use the generic interrupt handling code in kernel/irq/:
692#
693config GENERIC_HARDIRQS
694 bool
695 default y
696
697config GENERIC_IRQ_PROBE
698 bool
699 default y
700
701# we have no ISA slots, but we do have ISA-style DMA.
702config ISA_DMA_API
703 bool
704 default y
705
706config GENERIC_PENDING_IRQ
707 bool
708 depends on GENERIC_HARDIRQS && SMP
709 default y
710
711menu "Power management options"
712
713source kernel/power/Kconfig
714
715config ARCH_HIBERNATION_HEADER
716 bool
717 depends on HIBERNATION
718 default y
719
720source "drivers/acpi/Kconfig"
721
722source "arch/x86/kernel/cpu/cpufreq/Kconfig_64"
723
724source "drivers/cpuidle/Kconfig"
725
726endmenu
727
728menu "Bus options (PCI etc.)"
729
730config PCI
731 bool "PCI support"
732 select ARCH_SUPPORTS_MSI if (X86_LOCAL_APIC && X86_IO_APIC)
733
734# x86-64 doesn't support PCI BIOS access from long mode so always go direct.
735config PCI_DIRECT
736 bool
737 depends on PCI
738 default y
739
740config PCI_MMCONFIG
741 bool "Support mmconfig PCI config space access"
742 depends on PCI && ACPI
743
744config PCI_DOMAINS
745 bool
746 depends on PCI
747 default y
748
749config DMAR
750 bool "Support for DMA Remapping Devices (EXPERIMENTAL)"
751 depends on PCI_MSI && ACPI && EXPERIMENTAL
752 help
753 DMA remapping (DMAR) devices support enables independent address
754 translations for Direct Memory Access (DMA) from devices.
755 These DMA remapping devices are reported via ACPI tables
756 and include PCI device scope covered by these DMA
757 remapping devices.
758
759config DMAR_GFX_WA
760 bool "Support for Graphics workaround"
761 depends on DMAR
762 default y
763 help
764 Current Graphics drivers tend to use physical address
765 for DMA and avoid using DMA APIs. Setting this config
766 option permits the IOMMU driver to set a unity map for
767 all the OS-visible memory. Hence the driver can continue
768 to use physical addresses for DMA.
769
770config DMAR_FLOPPY_WA
771 bool
772 depends on DMAR
773 default y
774 help
775 Floppy disk drivers are know to bypass DMA API calls
776 thereby failing to work when IOMMU is enabled. This
777 workaround will setup a 1:1 mapping for the first
778 16M to make floppy (an ISA device) work.
779
780source "drivers/pci/pcie/Kconfig"
781
782source "drivers/pci/Kconfig"
783
784source "drivers/pcmcia/Kconfig"
785
786source "drivers/pci/hotplug/Kconfig"
787
788endmenu
789
790
791menu "Executable file formats / Emulations"
792
793source "fs/Kconfig.binfmt"
794
795config IA32_EMULATION
796 bool "IA32 Emulation"
797 help
798 Include code to run 32-bit programs under a 64-bit kernel. You should
799 likely turn this on, unless you're 100% sure that you don't have any
800 32-bit programs left.
801
802config IA32_AOUT
803 tristate "IA32 a.out support"
804 depends on IA32_EMULATION
805 help
806 Support old a.out binaries in the 32bit emulation.
807
808config COMPAT
809 bool
810 depends on IA32_EMULATION
811 default y
812
813config COMPAT_FOR_U64_ALIGNMENT
814 def_bool COMPAT
815
816config SYSVIPC_COMPAT
817 bool
818 depends on COMPAT && SYSVIPC
819 default y
820
821endmenu
822
823source "net/Kconfig"
824
825source drivers/Kconfig
826
827source "drivers/firmware/Kconfig"
828
829source fs/Kconfig
830
831source "kernel/Kconfig.instrumentation"
832
833source "arch/x86/Kconfig.debug"
834
835source "security/Kconfig"
836
837source "crypto/Kconfig"
838
839source "lib/Kconfig"
diff --git a/arch/x86/Makefile b/arch/x86/Makefile
index 309597386a77..116b03a45636 100644
--- a/arch/x86/Makefile
+++ b/arch/x86/Makefile
@@ -1,12 +1,16 @@
1# Unified Makefile for i386 and x86_64 1# Unified Makefile for i386 and x86_64
2 2
3# select defconfig based on actual architecture 3# select defconfig based on actual architecture
4KBUILD_DEFCONFIG := $(ARCH)_defconfig 4ifeq ($(ARCH),x86)
5 KBUILD_DEFCONFIG := i386_defconfig
6else
7 KBUILD_DEFCONFIG := $(ARCH)_defconfig
8endif
5 9
6# # No need to remake these files 10# No need to remake these files
7$(srctree)/arch/x86/Makefile%: ; 11$(srctree)/arch/x86/Makefile%: ;
8 12
9ifeq ($(ARCH),i386) 13ifeq ($(CONFIG_X86_32),y)
10 include $(srctree)/arch/x86/Makefile_32 14 include $(srctree)/arch/x86/Makefile_32
11else 15else
12 include $(srctree)/arch/x86/Makefile_64 16 include $(srctree)/arch/x86/Makefile_64
diff --git a/arch/x86/Makefile_32 b/arch/x86/Makefile_32
index 346ac0766875..50394da2f6c1 100644
--- a/arch/x86/Makefile_32
+++ b/arch/x86/Makefile_32
@@ -160,7 +160,7 @@ archclean:
160 $(Q)$(MAKE) $(clean)=arch/x86/boot 160 $(Q)$(MAKE) $(clean)=arch/x86/boot
161 161
162define archhelp 162define archhelp
163 echo '* bzImage - Compressed kernel image (arch/$(ARCH)/boot/bzImage)' 163 echo '* bzImage - Compressed kernel image (arch/x86/boot/bzImage)'
164 echo ' install - Install kernel using' 164 echo ' install - Install kernel using'
165 echo ' (your) ~/bin/installkernel or' 165 echo ' (your) ~/bin/installkernel or'
166 echo ' (distribution) /sbin/installkernel or' 166 echo ' (distribution) /sbin/installkernel or'
@@ -170,6 +170,6 @@ define archhelp
170 echo ' isoimage - Create a boot CD-ROM image' 170 echo ' isoimage - Create a boot CD-ROM image'
171endef 171endef
172 172
173CLEAN_FILES += arch/$(ARCH)/boot/fdimage \ 173CLEAN_FILES += arch/x86/boot/fdimage \
174 arch/$(ARCH)/boot/image.iso \ 174 arch/x86/boot/image.iso \
175 arch/$(ARCH)/boot/mtools.conf 175 arch/x86/boot/mtools.conf
diff --git a/arch/x86/Makefile_64 b/arch/x86/Makefile_64
index 57e714a47af7..a804860022e6 100644
--- a/arch/x86/Makefile_64
+++ b/arch/x86/Makefile_64
@@ -127,7 +127,7 @@ archclean:
127 $(Q)$(MAKE) $(clean)=$(boot) 127 $(Q)$(MAKE) $(clean)=$(boot)
128 128
129define archhelp 129define archhelp
130 echo '* bzImage - Compressed kernel image (arch/$(ARCH)/boot/bzImage)' 130 echo '* bzImage - Compressed kernel image (arch/x86/boot/bzImage)'
131 echo ' install - Install kernel using' 131 echo ' install - Install kernel using'
132 echo ' (your) ~/bin/installkernel or' 132 echo ' (your) ~/bin/installkernel or'
133 echo ' (distribution) /sbin/installkernel or' 133 echo ' (distribution) /sbin/installkernel or'
@@ -137,8 +137,8 @@ define archhelp
137 echo ' isoimage - Create a boot CD-ROM image' 137 echo ' isoimage - Create a boot CD-ROM image'
138endef 138endef
139 139
140CLEAN_FILES += arch/$(ARCH)/boot/fdimage \ 140CLEAN_FILES += arch/x86/boot/fdimage \
141 arch/$(ARCH)/boot/image.iso \ 141 arch/x86/boot/image.iso \
142 arch/$(ARCH)/boot/mtools.conf 142 arch/x86/boot/mtools.conf
143 143
144 144
diff --git a/arch/x86/boot/Makefile b/arch/x86/boot/Makefile
index 89dbf970e058..7a3116ccf387 100644
--- a/arch/x86/boot/Makefile
+++ b/arch/x86/boot/Makefile
@@ -49,10 +49,10 @@ HOSTCFLAGS_build.o := $(LINUXINCLUDE)
49 49
50# How to compile the 16-bit code. Note we always compile for -march=i386, 50# How to compile the 16-bit code. Note we always compile for -march=i386,
51# that way we can complain to the user if the CPU is insufficient. 51# that way we can complain to the user if the CPU is insufficient.
52cflags-i386 := 52cflags-$(CONFIG_X86_32) :=
53cflags-x86_64 := -m32 53cflags-$(CONFIG_X86_64) := -m32
54KBUILD_CFLAGS := $(LINUXINCLUDE) -g -Os -D_SETUP -D__KERNEL__ \ 54KBUILD_CFLAGS := $(LINUXINCLUDE) -g -Os -D_SETUP -D__KERNEL__ \
55 $(cflags-$(ARCH)) \ 55 $(cflags-y) \
56 -Wall -Wstrict-prototypes \ 56 -Wall -Wstrict-prototypes \
57 -march=i386 -mregparm=3 \ 57 -march=i386 -mregparm=3 \
58 -include $(srctree)/$(src)/code16gcc.h \ 58 -include $(srctree)/$(src)/code16gcc.h \
diff --git a/arch/x86/boot/cpucheck.c b/arch/x86/boot/cpucheck.c
index e655a89c5510..769065bd23d7 100644
--- a/arch/x86/boot/cpucheck.c
+++ b/arch/x86/boot/cpucheck.c
@@ -42,13 +42,7 @@ static struct cpu_features cpu;
42static u32 cpu_vendor[3]; 42static u32 cpu_vendor[3];
43static u32 err_flags[NCAPINTS]; 43static u32 err_flags[NCAPINTS];
44 44
45#ifdef CONFIG_X86_64
46static const int req_level = 64;
47#elif defined(CONFIG_X86_MINIMUM_CPU_FAMILY)
48static const int req_level = CONFIG_X86_MINIMUM_CPU_FAMILY; 45static const int req_level = CONFIG_X86_MINIMUM_CPU_FAMILY;
49#else
50static const int req_level = 3;
51#endif
52 46
53static const u32 req_flags[NCAPINTS] = 47static const u32 req_flags[NCAPINTS] =
54{ 48{
diff --git a/arch/x86/kernel/Makefile_32 b/arch/x86/kernel/Makefile_32
index b9d679820306..a7bc93c27662 100644
--- a/arch/x86/kernel/Makefile_32
+++ b/arch/x86/kernel/Makefile_32
@@ -3,6 +3,7 @@
3# 3#
4 4
5extra-y := head_32.o init_task.o vmlinux.lds 5extra-y := head_32.o init_task.o vmlinux.lds
6CPPFLAGS_vmlinux.lds += -Ui386
6 7
7obj-y := process_32.o signal_32.o entry_32.o traps_32.o irq_32.o \ 8obj-y := process_32.o signal_32.o entry_32.o traps_32.o irq_32.o \
8 ptrace_32.o time_32.o ioport_32.o ldt_32.o setup_32.o i8259_32.o sys_i386_32.o \ 9 ptrace_32.o time_32.o ioport_32.o ldt_32.o setup_32.o i8259_32.o sys_i386_32.o \
@@ -60,7 +61,7 @@ quiet_cmd_syscall = SYSCALL $@
60 cmd_syscall = $(CC) -m elf_i386 -nostdlib $(SYSCFLAGS_$(@F)) \ 61 cmd_syscall = $(CC) -m elf_i386 -nostdlib $(SYSCFLAGS_$(@F)) \
61 -Wl,-T,$(filter-out FORCE,$^) -o $@ 62 -Wl,-T,$(filter-out FORCE,$^) -o $@
62 63
63export CPPFLAGS_vsyscall_32.lds += -P -C -U$(ARCH) 64export CPPFLAGS_vsyscall_32.lds += -P -C -Ui386
64 65
65vsyscall-flags = -shared -s -Wl,-soname=linux-gate.so.1 \ 66vsyscall-flags = -shared -s -Wl,-soname=linux-gate.so.1 \
66 $(call ld-option, -Wl$(comma)--hash-style=sysv) 67 $(call ld-option, -Wl$(comma)--hash-style=sysv)
diff --git a/arch/x86/kernel/Makefile_64 b/arch/x86/kernel/Makefile_64
index 24671c3838b3..5a88890d8ee9 100644
--- a/arch/x86/kernel/Makefile_64
+++ b/arch/x86/kernel/Makefile_64
@@ -3,7 +3,9 @@
3# 3#
4 4
5extra-y := head_64.o head64.o init_task.o vmlinux.lds 5extra-y := head_64.o head64.o init_task.o vmlinux.lds
6CPPFLAGS_vmlinux.lds += -Ux86_64
6EXTRA_AFLAGS := -traditional 7EXTRA_AFLAGS := -traditional
8
7obj-y := process_64.o signal_64.o entry_64.o traps_64.o irq_64.o \ 9obj-y := process_64.o signal_64.o entry_64.o traps_64.o irq_64.o \
8 ptrace_64.o time_64.o ioport_64.o ldt_64.o setup_64.o i8259_64.o sys_x86_64.o \ 10 ptrace_64.o time_64.o ioport_64.o ldt_64.o setup_64.o i8259_64.o sys_x86_64.o \
9 x8664_ksyms_64.o i387_64.o syscall_64.o vsyscall_64.o \ 11 x8664_ksyms_64.o i387_64.o syscall_64.o vsyscall_64.o \
diff --git a/arch/x86/kernel/cpu/cpufreq/Kconfig_32 b/arch/x86/kernel/cpu/cpufreq/Kconfig
index d8c6f132dc7a..151eda0a23fc 100644
--- a/arch/x86/kernel/cpu/cpufreq/Kconfig_32
+++ b/arch/x86/kernel/cpu/cpufreq/Kconfig
@@ -19,6 +19,9 @@ config X86_ACPI_CPUFREQ
19 Processor Performance States. 19 Processor Performance States.
20 This driver also supports Intel Enhanced Speedstep. 20 This driver also supports Intel Enhanced Speedstep.
21 21
22 To compile this driver as a module, choose M here: the
23 module will be called acpi-cpufreq.
24
22 For details, take a look at <file:Documentation/cpu-freq/>. 25 For details, take a look at <file:Documentation/cpu-freq/>.
23 26
24 If in doubt, say N. 27 If in doubt, say N.
@@ -26,7 +29,7 @@ config X86_ACPI_CPUFREQ
26config ELAN_CPUFREQ 29config ELAN_CPUFREQ
27 tristate "AMD Elan SC400 and SC410" 30 tristate "AMD Elan SC400 and SC410"
28 select CPU_FREQ_TABLE 31 select CPU_FREQ_TABLE
29 depends on X86_ELAN 32 depends on X86_32 && X86_ELAN
30 ---help--- 33 ---help---
31 This adds the CPUFreq driver for AMD Elan SC400 and SC410 34 This adds the CPUFreq driver for AMD Elan SC400 and SC410
32 processors. 35 processors.
@@ -42,7 +45,7 @@ config ELAN_CPUFREQ
42config SC520_CPUFREQ 45config SC520_CPUFREQ
43 tristate "AMD Elan SC520" 46 tristate "AMD Elan SC520"
44 select CPU_FREQ_TABLE 47 select CPU_FREQ_TABLE
45 depends on X86_ELAN 48 depends on X86_32 && X86_ELAN
46 ---help--- 49 ---help---
47 This adds the CPUFreq driver for AMD Elan SC520 processor. 50 This adds the CPUFreq driver for AMD Elan SC520 processor.
48 51
@@ -54,6 +57,7 @@ config SC520_CPUFREQ
54config X86_POWERNOW_K6 57config X86_POWERNOW_K6
55 tristate "AMD Mobile K6-2/K6-3 PowerNow!" 58 tristate "AMD Mobile K6-2/K6-3 PowerNow!"
56 select CPU_FREQ_TABLE 59 select CPU_FREQ_TABLE
60 depends on X86_32
57 help 61 help
58 This adds the CPUFreq driver for mobile AMD K6-2+ and mobile 62 This adds the CPUFreq driver for mobile AMD K6-2+ and mobile
59 AMD K6-3+ processors. 63 AMD K6-3+ processors.
@@ -65,6 +69,7 @@ config X86_POWERNOW_K6
65config X86_POWERNOW_K7 69config X86_POWERNOW_K7
66 tristate "AMD Mobile Athlon/Duron PowerNow!" 70 tristate "AMD Mobile Athlon/Duron PowerNow!"
67 select CPU_FREQ_TABLE 71 select CPU_FREQ_TABLE
72 depends on X86_32
68 help 73 help
69 This adds the CPUFreq driver for mobile AMD K7 mobile processors. 74 This adds the CPUFreq driver for mobile AMD K7 mobile processors.
70 75
@@ -76,23 +81,27 @@ config X86_POWERNOW_K7_ACPI
76 bool 81 bool
77 depends on X86_POWERNOW_K7 && ACPI_PROCESSOR 82 depends on X86_POWERNOW_K7 && ACPI_PROCESSOR
78 depends on !(X86_POWERNOW_K7 = y && ACPI_PROCESSOR = m) 83 depends on !(X86_POWERNOW_K7 = y && ACPI_PROCESSOR = m)
84 depends on X86_32
79 default y 85 default y
80 86
81config X86_POWERNOW_K8 87config X86_POWERNOW_K8
82 tristate "AMD Opteron/Athlon64 PowerNow!" 88 tristate "AMD Opteron/Athlon64 PowerNow!"
83 select CPU_FREQ_TABLE 89 select CPU_FREQ_TABLE
84 depends on EXPERIMENTAL
85 help 90 help
86 This adds the CPUFreq driver for mobile AMD Opteron/Athlon64 processors. 91 This adds the CPUFreq driver for mobile AMD Opteron/Athlon64 processors.
87 92
93 To compile this driver as a module, choose M here: the
94 module will be called powernow-k8.
95
88 For details, take a look at <file:Documentation/cpu-freq/>. 96 For details, take a look at <file:Documentation/cpu-freq/>.
89 97
90 If in doubt, say N. 98 If in doubt, say N.
91 99
92config X86_POWERNOW_K8_ACPI 100config X86_POWERNOW_K8_ACPI
93 bool "ACPI Support" 101 bool
94 select ACPI_PROCESSOR 102 prompt "ACPI Support" if X86_32
95 depends on ACPI && X86_POWERNOW_K8 103 depends on ACPI && X86_POWERNOW_K8 && ACPI_PROCESSOR
104 depends on !(X86_POWERNOW_K8 = y && ACPI_PROCESSOR = m)
96 default y 105 default y
97 help 106 help
98 This provides access to the K8s Processor Performance States via ACPI. 107 This provides access to the K8s Processor Performance States via ACPI.
@@ -104,7 +113,7 @@ config X86_POWERNOW_K8_ACPI
104 113
105config X86_GX_SUSPMOD 114config X86_GX_SUSPMOD
106 tristate "Cyrix MediaGX/NatSemi Geode Suspend Modulation" 115 tristate "Cyrix MediaGX/NatSemi Geode Suspend Modulation"
107 depends on PCI 116 depends on X86_32 && PCI
108 help 117 help
109 This add the CPUFreq driver for NatSemi Geode processors which 118 This add the CPUFreq driver for NatSemi Geode processors which
110 support suspend modulation. 119 support suspend modulation.
@@ -114,15 +123,20 @@ config X86_GX_SUSPMOD
114 If in doubt, say N. 123 If in doubt, say N.
115 124
116config X86_SPEEDSTEP_CENTRINO 125config X86_SPEEDSTEP_CENTRINO
117 tristate "Intel Enhanced SpeedStep" 126 tristate "Intel Enhanced SpeedStep (deprecated)"
118 select CPU_FREQ_TABLE 127 select CPU_FREQ_TABLE
119 select X86_SPEEDSTEP_CENTRINO_TABLE 128 select X86_SPEEDSTEP_CENTRINO_TABLE if X86_32
129 depends on X86_32 || (X86_64 && ACPI_PROCESSOR)
120 help 130 help
131 This is deprecated and this functionality is now merged into
132 acpi_cpufreq (X86_ACPI_CPUFREQ). Use that driver instead of
133 speedstep_centrino.
121 This adds the CPUFreq driver for Enhanced SpeedStep enabled 134 This adds the CPUFreq driver for Enhanced SpeedStep enabled
122 mobile CPUs. This means Intel Pentium M (Centrino) CPUs. However, 135 mobile CPUs. This means Intel Pentium M (Centrino) CPUs
123 you also need to say Y to "Use ACPI tables to decode..." below 136 or 64bit enabled Intel Xeons.
124 [which might imply enabling ACPI] if you want to use this driver 137
125 on non-Banias CPUs. 138 To compile this driver as a module, choose M here: the
139 module will be called speedstep-centrino.
126 140
127 For details, take a look at <file:Documentation/cpu-freq/>. 141 For details, take a look at <file:Documentation/cpu-freq/>.
128 142
@@ -130,7 +144,7 @@ config X86_SPEEDSTEP_CENTRINO
130 144
131config X86_SPEEDSTEP_CENTRINO_TABLE 145config X86_SPEEDSTEP_CENTRINO_TABLE
132 bool "Built-in tables for Banias CPUs" 146 bool "Built-in tables for Banias CPUs"
133 depends on X86_SPEEDSTEP_CENTRINO 147 depends on X86_32 && X86_SPEEDSTEP_CENTRINO
134 default y 148 default y
135 help 149 help
136 Use built-in tables for Banias CPUs if ACPI encoding 150 Use built-in tables for Banias CPUs if ACPI encoding
@@ -141,6 +155,7 @@ config X86_SPEEDSTEP_CENTRINO_TABLE
141config X86_SPEEDSTEP_ICH 155config X86_SPEEDSTEP_ICH
142 tristate "Intel Speedstep on ICH-M chipsets (ioport interface)" 156 tristate "Intel Speedstep on ICH-M chipsets (ioport interface)"
143 select CPU_FREQ_TABLE 157 select CPU_FREQ_TABLE
158 depends on X86_32
144 help 159 help
145 This adds the CPUFreq driver for certain mobile Intel Pentium III 160 This adds the CPUFreq driver for certain mobile Intel Pentium III
146 (Coppermine), all mobile Intel Pentium III-M (Tualatin) and all 161 (Coppermine), all mobile Intel Pentium III-M (Tualatin) and all
@@ -154,7 +169,7 @@ config X86_SPEEDSTEP_ICH
154config X86_SPEEDSTEP_SMI 169config X86_SPEEDSTEP_SMI
155 tristate "Intel SpeedStep on 440BX/ZX/MX chipsets (SMI interface)" 170 tristate "Intel SpeedStep on 440BX/ZX/MX chipsets (SMI interface)"
156 select CPU_FREQ_TABLE 171 select CPU_FREQ_TABLE
157 depends on EXPERIMENTAL 172 depends on X86_32 && EXPERIMENTAL
158 help 173 help
159 This adds the CPUFreq driver for certain mobile Intel Pentium III 174 This adds the CPUFreq driver for certain mobile Intel Pentium III
160 (Coppermine), all mobile Intel Pentium III-M (Tualatin) 175 (Coppermine), all mobile Intel Pentium III-M (Tualatin)
@@ -169,15 +184,24 @@ config X86_P4_CLOCKMOD
169 select CPU_FREQ_TABLE 184 select CPU_FREQ_TABLE
170 help 185 help
171 This adds the CPUFreq driver for Intel Pentium 4 / XEON 186 This adds the CPUFreq driver for Intel Pentium 4 / XEON
172 processors. 187 processors. When enabled it will lower CPU temperature by skipping
188 clocks.
189
190 This driver should be only used in exceptional
191 circumstances when very low power is needed because it causes severe
192 slowdowns and noticeable latencies. Normally Speedstep should be used
193 instead.
194
195 To compile this driver as a module, choose M here: the
196 module will be called p4-clockmod.
173 197
174 For details, take a look at <file:Documentation/cpu-freq/>. 198 For details, take a look at <file:Documentation/cpu-freq/>.
175 199
176 If in doubt, say N. 200 Unless you are absolutely sure say N.
177 201
178config X86_CPUFREQ_NFORCE2 202config X86_CPUFREQ_NFORCE2
179 tristate "nVidia nForce2 FSB changing" 203 tristate "nVidia nForce2 FSB changing"
180 depends on EXPERIMENTAL 204 depends on X86_32 && EXPERIMENTAL
181 help 205 help
182 This adds the CPUFreq driver for FSB changing on nVidia nForce2 206 This adds the CPUFreq driver for FSB changing on nVidia nForce2
183 platforms. 207 platforms.
@@ -188,6 +212,7 @@ config X86_CPUFREQ_NFORCE2
188 212
189config X86_LONGRUN 213config X86_LONGRUN
190 tristate "Transmeta LongRun" 214 tristate "Transmeta LongRun"
215 depends on X86_32
191 help 216 help
192 This adds the CPUFreq driver for Transmeta Crusoe and Efficeon processors 217 This adds the CPUFreq driver for Transmeta Crusoe and Efficeon processors
193 which support LongRun. 218 which support LongRun.
@@ -199,7 +224,7 @@ config X86_LONGRUN
199config X86_LONGHAUL 224config X86_LONGHAUL
200 tristate "VIA Cyrix III Longhaul" 225 tristate "VIA Cyrix III Longhaul"
201 select CPU_FREQ_TABLE 226 select CPU_FREQ_TABLE
202 depends on ACPI_PROCESSOR 227 depends on X86_32 && ACPI_PROCESSOR
203 help 228 help
204 This adds the CPUFreq driver for VIA Samuel/CyrixIII, 229 This adds the CPUFreq driver for VIA Samuel/CyrixIII,
205 VIA Cyrix Samuel/C3, VIA Cyrix Ezra and VIA Cyrix Ezra-T 230 VIA Cyrix Samuel/C3, VIA Cyrix Ezra and VIA Cyrix Ezra-T
@@ -212,7 +237,7 @@ config X86_LONGHAUL
212config X86_E_POWERSAVER 237config X86_E_POWERSAVER
213 tristate "VIA C7 Enhanced PowerSaver (EXPERIMENTAL)" 238 tristate "VIA C7 Enhanced PowerSaver (EXPERIMENTAL)"
214 select CPU_FREQ_TABLE 239 select CPU_FREQ_TABLE
215 depends on EXPERIMENTAL 240 depends on X86_32 && EXPERIMENTAL
216 help 241 help
217 This adds the CPUFreq driver for VIA C7 processors. 242 This adds the CPUFreq driver for VIA C7 processors.
218 243
@@ -233,11 +258,11 @@ config X86_ACPI_CPUFREQ_PROC_INTF
233 258
234config X86_SPEEDSTEP_LIB 259config X86_SPEEDSTEP_LIB
235 tristate 260 tristate
236 default X86_SPEEDSTEP_ICH || X86_SPEEDSTEP_SMI || X86_P4_CLOCKMOD 261 default (X86_SPEEDSTEP_ICH || X86_SPEEDSTEP_SMI || X86_P4_CLOCKMOD)
237 262
238config X86_SPEEDSTEP_RELAXED_CAP_CHECK 263config X86_SPEEDSTEP_RELAXED_CAP_CHECK
239 bool "Relaxed speedstep capability checks" 264 bool "Relaxed speedstep capability checks"
240 depends on (X86_SPEEDSTEP_SMI || X86_SPEEDSTEP_ICH) 265 depends on X86_32 && (X86_SPEEDSTEP_SMI || X86_SPEEDSTEP_ICH)
241 help 266 help
242 Don't perform all checks for a speedstep capable system which would 267 Don't perform all checks for a speedstep capable system which would
243 normally be done. Some ancient or strange systems, though speedstep 268 normally be done. Some ancient or strange systems, though speedstep
diff --git a/arch/x86/kernel/cpu/cpufreq/Kconfig_64 b/arch/x86/kernel/cpu/cpufreq/Kconfig_64
deleted file mode 100644
index 9c9699fdcf52..000000000000
--- a/arch/x86/kernel/cpu/cpufreq/Kconfig_64
+++ /dev/null
@@ -1,108 +0,0 @@
1#
2# CPU Frequency scaling
3#
4
5menu "CPU Frequency scaling"
6
7source "drivers/cpufreq/Kconfig"
8
9if CPU_FREQ
10
11comment "CPUFreq processor drivers"
12
13config X86_POWERNOW_K8
14 tristate "AMD Opteron/Athlon64 PowerNow!"
15 select CPU_FREQ_TABLE
16 help
17 This adds the CPUFreq driver for mobile AMD Opteron/Athlon64 processors.
18
19 To compile this driver as a module, choose M here: the
20 module will be called powernow-k8.
21
22 For details, take a look at <file:Documentation/cpu-freq/>.
23
24 If in doubt, say N.
25
26config X86_POWERNOW_K8_ACPI
27 bool
28 depends on X86_POWERNOW_K8 && ACPI_PROCESSOR
29 depends on !(X86_POWERNOW_K8 = y && ACPI_PROCESSOR = m)
30 default y
31
32config X86_SPEEDSTEP_CENTRINO
33 tristate "Intel Enhanced SpeedStep (deprecated)"
34 select CPU_FREQ_TABLE
35 depends on ACPI_PROCESSOR
36 help
37 This is deprecated and this functionality is now merged into
38 acpi_cpufreq (X86_ACPI_CPUFREQ). Use that driver instead of
39 speedstep_centrino.
40 This adds the CPUFreq driver for Enhanced SpeedStep enabled
41 mobile CPUs. This means Intel Pentium M (Centrino) CPUs
42 or 64bit enabled Intel Xeons.
43
44 To compile this driver as a module, choose M here: the
45 module will be called speedstep-centrino.
46
47 For details, take a look at <file:Documentation/cpu-freq/>.
48
49 If in doubt, say N.
50
51config X86_ACPI_CPUFREQ
52 tristate "ACPI Processor P-States driver"
53 select CPU_FREQ_TABLE
54 depends on ACPI_PROCESSOR
55 help
56 This driver adds a CPUFreq driver which utilizes the ACPI
57 Processor Performance States.
58 This driver also supports Intel Enhanced Speedstep.
59
60 To compile this driver as a module, choose M here: the
61 module will be called acpi-cpufreq.
62
63 For details, take a look at <file:Documentation/cpu-freq/>.
64
65 If in doubt, say N.
66
67comment "shared options"
68
69config X86_ACPI_CPUFREQ_PROC_INTF
70 bool "/proc/acpi/processor/../performance interface (deprecated)"
71 depends on PROC_FS
72 depends on X86_ACPI_CPUFREQ || X86_POWERNOW_K8_ACPI
73 help
74 This enables the deprecated /proc/acpi/processor/../performance
75 interface. While it is helpful for debugging, the generic,
76 cross-architecture cpufreq interfaces should be used.
77
78 If in doubt, say N.
79
80config X86_P4_CLOCKMOD
81 tristate "Intel Pentium 4 clock modulation"
82 depends on EMBEDDED
83 select CPU_FREQ_TABLE
84 help
85 This adds the clock modulation driver for Intel Pentium 4 / XEON
86 processors. When enabled it will lower CPU temperature by skipping
87 clocks.
88
89 This driver should be only used in exceptional
90 circumstances when very low power is needed because it causes severe
91 slowdowns and noticeable latencies. Normally Speedstep should be used
92 instead.
93
94 To compile this driver as a module, choose M here: the
95 module will be called p4-clockmod.
96
97 For details, take a look at <file:Documentation/cpu-freq/>.
98
99 Unless you are absolutely sure say N.
100
101
102config X86_SPEEDSTEP_LIB
103 tristate
104 default X86_P4_CLOCKMOD
105
106endif
107
108endmenu
diff --git a/arch/x86/vdso/Makefile b/arch/x86/vdso/Makefile
index 7a2ba4583939..e7bff0fbac23 100644
--- a/arch/x86/vdso/Makefile
+++ b/arch/x86/vdso/Makefile
@@ -20,7 +20,7 @@ quiet_cmd_syscall = SYSCALL $@
20 cmd_syscall = $(CC) -m elf_x86_64 -nostdlib $(SYSCFLAGS_$(@F)) \ 20 cmd_syscall = $(CC) -m elf_x86_64 -nostdlib $(SYSCFLAGS_$(@F)) \
21 -Wl,-T,$(filter-out FORCE,$^) -o $@ 21 -Wl,-T,$(filter-out FORCE,$^) -o $@
22 22
23export CPPFLAGS_vdso.lds += -P -C -U$(ARCH) 23export CPPFLAGS_vdso.lds += -P -C
24 24
25vdso-flags = -fPIC -shared -Wl,-soname=linux-vdso.so.1 \ 25vdso-flags = -fPIC -shared -Wl,-soname=linux-vdso.so.1 \
26 $(call ld-option, -Wl$(comma)--hash-style=sysv) \ 26 $(call ld-option, -Wl$(comma)--hash-style=sysv) \