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

+682 -1233
+10 -3
Makefile
··· 197 UTS_MACHINE := $(ARCH) 198 SRCARCH := $(ARCH) 199 200 - # for i386 and x86_64 we use SRCARCH equal to x86 201 - SRCARCH := $(if $(filter x86_64 i386,$(SRCARCH)),x86,$(SRCARCH)) 202 203 KCONFIG_CONFIG ?= .config 204 ··· 341 KERNELVERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) 342 343 export VERSION PATCHLEVEL SUBLEVEL KERNELRELEASE KERNELVERSION 344 - export ARCH SRCARCH CONFIG_SHELL HOSTCC HOSTCFLAGS CROSS_COMPILE AS LD CC 345 export CPP AR NM STRIP OBJCOPY OBJDUMP MAKE AWK GENKSYMS PERL UTS_MACHINE 346 export HOSTCXX HOSTCXXFLAGS LDFLAGS_MODULE CHECK CHECKFLAGS 347
··· 197 UTS_MACHINE := $(ARCH) 198 SRCARCH := $(ARCH) 199 200 + # Additional ARCH settings for x86 201 + ifeq ($(ARCH),i386) 202 + SRCARCH := x86 203 + K64BIT := n 204 + endif 205 + ifeq ($(ARCH),x86_64) 206 + SRCARCH := x86 207 + K64BIT := y 208 + endif 209 210 KCONFIG_CONFIG ?= .config 211 ··· 334 KERNELVERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) 335 336 export VERSION PATCHLEVEL SUBLEVEL KERNELRELEASE KERNELVERSION 337 + export ARCH SRCARCH K64BIT CONFIG_SHELL HOSTCC HOSTCFLAGS CROSS_COMPILE AS LD CC 338 export CPP AR NM STRIP OBJCOPY OBJDUMP MAKE AWK GENKSYMS PERL UTS_MACHINE 339 export HOSTCXX HOSTCXXFLAGS LDFLAGS_MODULE CHECK CHECKFLAGS 340
+2
README
··· 194 "make *config" checks for a file named "all{yes/mod/no/random}.config" 195 for symbol values that are to be forced. If this file is not found, 196 it checks for a file named "all.config" to contain forced values. 197 198 NOTES on "make config": 199 - having unnecessary drivers will make the kernel bigger, and can
··· 194 "make *config" checks for a file named "all{yes/mod/no/random}.config" 195 for symbol values that are to be forced. If this file is not found, 196 it checks for a file named "all.config" to contain forced values. 197 + Finally it checks the environment variable K64BIT and if found, sets 198 + the config symbol "64BIT" to the value of the K64BIT variable. 199 200 NOTES on "make config": 201 - having unnecessary drivers will make the kernel bigger, and can
+75 -46
arch/x86/Kconfig.cpu
··· 3 4 choice 5 prompt "Processor family" 6 - default M686 7 8 config M386 9 bool "386" 10 - depends on !UML 11 ---help--- 12 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 ··· 50 51 config M486 52 bool "486" 53 help 54 Select this for a 486 series processor, either Intel or one of the 55 compatible processors from AMD, Cyrix, IBM, or Intel. Includes DX, ··· 59 60 config M586 61 bool "586/K5/5x86/6x86/6x86MX" 62 help 63 Select this for an 586 or 686 series processor such as the AMD K5, 64 the Cyrix 5x86, 6x86 and 6x86MX. This choice does not ··· 67 68 config M586TSC 69 bool "Pentium-Classic" 70 help 71 Select this for a Pentium Classic processor with the RDTSC (Read 72 Time Stamp Counter) instruction for benchmarking. 73 74 config M586MMX 75 bool "Pentium-MMX" 76 help 77 Select this for a Pentium with the MMX graphics/multimedia 78 extended instructions. 79 80 config M686 81 bool "Pentium-Pro" 82 help 83 Select this for Intel Pentium Pro chips. This enables the use of 84 Pentium Pro extended instructions, and disables the init-time guard ··· 89 90 config MPENTIUMII 91 bool "Pentium-II/Celeron(pre-Coppermine)" 92 help 93 Select this for Intel chips based on the Pentium-II and 94 pre-Coppermine Celeron core. This option enables an unaligned ··· 99 100 config MPENTIUMIII 101 bool "Pentium-III/Celeron(Coppermine)/Pentium-III Xeon" 102 help 103 Select this for Intel chips based on the Pentium-III and 104 Celeron-Coppermine core. This option enables use of some ··· 108 109 config MPENTIUMM 110 bool "Pentium M" 111 help 112 Select this for Intel Pentium M (not Pentium-4 M) 113 notebook chips. 114 115 - config MCORE2 116 - bool "Core 2/newer Xeon" 117 - help 118 - Select this for Intel Core 2 and newer Core 2 Xeons (Xeon 51xx and 53xx) 119 - CPUs. You can distinguish newer from older Xeons by the CPU family 120 - in /proc/cpuinfo. Newer ones have 6 and older ones 15 (not a typo) 121 - 122 config MPENTIUM4 123 bool "Pentium-4/Celeron(P4-based)/Pentium-4 M/older Xeon" 124 help 125 Select this for Intel Pentium 4 chips. This includes the 126 Pentium 4, Pentium D, P4-based Celeron and Xeon, and ··· 151 152 config MK6 153 bool "K6/K6-II/K6-III" 154 help 155 Select this for an AMD K6-family processor. Enables use of 156 some extended instructions, and passes appropriate optimization ··· 159 160 config MK7 161 bool "Athlon/Duron/K7" 162 help 163 Select this for an AMD Athlon K7-family processor. Enables use of 164 some extended instructions, and passes appropriate optimization ··· 174 175 config MCRUSOE 176 bool "Crusoe" 177 help 178 Select this for a Transmeta Crusoe processor. Treats the processor 179 like a 586 with TSC, and sets some GCC optimization flags (like a ··· 182 183 config MEFFICEON 184 bool "Efficeon" 185 help 186 Select this for a Transmeta Efficeon processor. 187 188 config MWINCHIPC6 189 bool "Winchip-C6" 190 help 191 Select this for an IDT Winchip C6 chip. Linux and GCC 192 treat this chip as a 586TSC with some extended instructions ··· 196 197 config MWINCHIP2 198 bool "Winchip-2" 199 help 200 Select this for an IDT Winchip-2. Linux and GCC 201 treat this chip as a 586TSC with some extended instructions ··· 204 205 config MWINCHIP3D 206 bool "Winchip-2A/Winchip-3" 207 help 208 Select this for an IDT Winchip-2A or 3. Linux and GCC 209 treat this chip as a 586TSC with some extended instructions ··· 214 215 config MGEODEGX1 216 bool "GeodeGX1" 217 help 218 Select this for a Geode GX1 (Cyrix MediaGX) chip. 219 220 config MGEODE_LX 221 bool "Geode GX/LX" 222 help 223 Select this for AMD Geode GX and LX processors. 224 225 config MCYRIXIII 226 bool "CyrixIII/VIA-C3" 227 help 228 Select this for a Cyrix III or C3 chip. Presently Linux and GCC 229 treat this chip as a generic 586. Whilst the CPU is 686 class, ··· 238 239 config MVIAC3_2 240 bool "VIA C3-2 (Nehemiah)" 241 help 242 Select this for a VIA C3 "Nehemiah". Selecting this enables usage 243 of SSE and tells gcc to treat the CPU as a 686. ··· 246 247 config MVIAC7 248 bool "VIA C7" 249 help 250 Select this for a VIA C7. Selecting this uses the correct cache 251 shift and tells gcc to treat the CPU as a 686. 252 253 endchoice 254 255 config X86_GENERIC 256 - bool "Generic x86 support" 257 - help 258 Instead of just including optimizations for the selected 259 x86 variant (e.g. PII, Crusoe or Athlon), include some more 260 generic optimizations as well. This will make the kernel ··· 294 295 # 296 # Define implied options from the CPU selection here 297 - # 298 config X86_CMPXCHG 299 - bool 300 - depends on !M386 301 - default y 302 303 config X86_L1_CACHE_SHIFT 304 int 305 - default "7" if MPENTIUM4 || X86_GENERIC 306 default "4" if X86_ELAN || M486 || M386 || MGEODEGX1 307 default "5" if MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCRUSOE || MEFFICEON || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || M586 || MVIAC3_2 || MGEODE_LX 308 default "6" if MK7 || MK8 || MPENTIUMM || MCORE2 || MVIAC7 309 310 config X86_XADD 311 bool 312 - depends on !M386 313 - default y 314 - 315 - config RWSEM_GENERIC_SPINLOCK 316 - bool 317 - depends on !X86_XADD 318 - default y 319 - 320 - config RWSEM_XCHGADD_ALGORITHM 321 - bool 322 - depends on X86_XADD 323 - default y 324 - 325 - config ARCH_HAS_ILOG2_U32 326 - bool 327 - default n 328 - 329 - config ARCH_HAS_ILOG2_U64 330 - bool 331 - default n 332 - 333 - config GENERIC_CALIBRATE_DELAY 334 - bool 335 default y 336 337 config X86_PPRO_FENCE ··· 333 334 config X86_WP_WORKS_OK 335 bool 336 - depends on !M386 337 default y 338 339 config X86_INVLPG 340 bool 341 - depends on !M386 342 default y 343 344 config X86_BSWAP 345 bool 346 - depends on !M386 347 default y 348 349 config X86_POPAD_OK 350 bool 351 - depends on !M386 352 default y 353 354 config X86_ALIGNMENT_16 ··· 358 359 config X86_GOOD_APIC 360 bool 361 - depends on MK7 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || MK8 || MEFFICEON || MCORE2 || MVIAC7 362 default y 363 364 config X86_INTEL_USERCOPY ··· 383 384 config X86_TSC 385 bool 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 387 default y 388 389 # this should be set for all -march=.. options where the compiler ··· 395 396 config X86_MINIMUM_CPU_FAMILY 397 int 398 - default "4" if X86_XADD || X86_CMPXCHG || X86_BSWAP || X86_WP_WORKS_OK 399 default "3" 400
··· 3 4 choice 5 prompt "Processor family" 6 + default M686 if X86_32 7 + default GENERIC_CPU if X86_64 8 9 config M386 10 bool "386" 11 + depends on X86_32 && !UML 12 ---help--- 13 This is the processor type of your CPU. This information is used for 14 optimizing purposes. In order to compile a kernel that can run on ··· 49 50 config M486 51 bool "486" 52 + depends on X86_32 53 help 54 Select this for a 486 series processor, either Intel or one of the 55 compatible processors from AMD, Cyrix, IBM, or Intel. Includes DX, ··· 57 58 config M586 59 bool "586/K5/5x86/6x86/6x86MX" 60 + depends on X86_32 61 help 62 Select this for an 586 or 686 series processor such as the AMD K5, 63 the Cyrix 5x86, 6x86 and 6x86MX. This choice does not ··· 64 65 config M586TSC 66 bool "Pentium-Classic" 67 + depends on X86_32 68 help 69 Select this for a Pentium Classic processor with the RDTSC (Read 70 Time Stamp Counter) instruction for benchmarking. 71 72 config M586MMX 73 bool "Pentium-MMX" 74 + depends on X86_32 75 help 76 Select this for a Pentium with the MMX graphics/multimedia 77 extended instructions. 78 79 config M686 80 bool "Pentium-Pro" 81 + depends on X86_32 82 help 83 Select this for Intel Pentium Pro chips. This enables the use of 84 Pentium Pro extended instructions, and disables the init-time guard ··· 83 84 config MPENTIUMII 85 bool "Pentium-II/Celeron(pre-Coppermine)" 86 + depends on X86_32 87 help 88 Select this for Intel chips based on the Pentium-II and 89 pre-Coppermine Celeron core. This option enables an unaligned ··· 92 93 config MPENTIUMIII 94 bool "Pentium-III/Celeron(Coppermine)/Pentium-III Xeon" 95 + depends on X86_32 96 help 97 Select this for Intel chips based on the Pentium-III and 98 Celeron-Coppermine core. This option enables use of some ··· 100 101 config MPENTIUMM 102 bool "Pentium M" 103 + depends on X86_32 104 help 105 Select this for Intel Pentium M (not Pentium-4 M) 106 notebook chips. 107 108 config MPENTIUM4 109 bool "Pentium-4/Celeron(P4-based)/Pentium-4 M/older Xeon" 110 + depends on X86_32 111 help 112 Select this for Intel Pentium 4 chips. This includes the 113 Pentium 4, Pentium D, P4-based Celeron and Xeon, and ··· 148 149 config MK6 150 bool "K6/K6-II/K6-III" 151 + depends on X86_32 152 help 153 Select this for an AMD K6-family processor. Enables use of 154 some extended instructions, and passes appropriate optimization ··· 155 156 config MK7 157 bool "Athlon/Duron/K7" 158 + depends on X86_32 159 help 160 Select this for an AMD Athlon K7-family processor. Enables use of 161 some extended instructions, and passes appropriate optimization ··· 169 170 config MCRUSOE 171 bool "Crusoe" 172 + depends on X86_32 173 help 174 Select this for a Transmeta Crusoe processor. Treats the processor 175 like a 586 with TSC, and sets some GCC optimization flags (like a ··· 176 177 config MEFFICEON 178 bool "Efficeon" 179 + depends on X86_32 180 help 181 Select this for a Transmeta Efficeon processor. 182 183 config MWINCHIPC6 184 bool "Winchip-C6" 185 + depends on X86_32 186 help 187 Select this for an IDT Winchip C6 chip. Linux and GCC 188 treat this chip as a 586TSC with some extended instructions ··· 188 189 config MWINCHIP2 190 bool "Winchip-2" 191 + depends on X86_32 192 help 193 Select this for an IDT Winchip-2. Linux and GCC 194 treat this chip as a 586TSC with some extended instructions ··· 195 196 config MWINCHIP3D 197 bool "Winchip-2A/Winchip-3" 198 + depends on X86_32 199 help 200 Select this for an IDT Winchip-2A or 3. Linux and GCC 201 treat this chip as a 586TSC with some extended instructions ··· 204 205 config MGEODEGX1 206 bool "GeodeGX1" 207 + depends on X86_32 208 help 209 Select this for a Geode GX1 (Cyrix MediaGX) chip. 210 211 config MGEODE_LX 212 bool "Geode GX/LX" 213 + depends on X86_32 214 help 215 Select this for AMD Geode GX and LX processors. 216 217 config MCYRIXIII 218 bool "CyrixIII/VIA-C3" 219 + depends on X86_32 220 help 221 Select this for a Cyrix III or C3 chip. Presently Linux and GCC 222 treat this chip as a generic 586. Whilst the CPU is 686 class, ··· 225 226 config MVIAC3_2 227 bool "VIA C3-2 (Nehemiah)" 228 + depends on X86_32 229 help 230 Select this for a VIA C3 "Nehemiah". Selecting this enables usage 231 of SSE and tells gcc to treat the CPU as a 686. ··· 232 233 config MVIAC7 234 bool "VIA C7" 235 + depends on X86_32 236 help 237 Select this for a VIA C7. Selecting this uses the correct cache 238 shift and tells gcc to treat the CPU as a 686. 239 240 + config MPSC 241 + bool "Intel P4 / older Netburst based Xeon" 242 + depends on X86_64 243 + help 244 + Optimize for Intel Pentium 4, Pentium D and older Nocona/Dempsey 245 + Xeon CPUs with Intel 64bit which is compatible with x86-64. 246 + Note that the latest Xeons (Xeon 51xx and 53xx) are not based on the 247 + Netburst core and shouldn't use this option. You can distinguish them 248 + using the cpu family field 249 + in /proc/cpuinfo. Family 15 is an older Xeon, Family 6 a newer one. 250 + 251 + config MCORE2 252 + bool "Core 2/newer Xeon" 253 + help 254 + Select this for Intel Core 2 and newer Core 2 Xeons (Xeon 51xx and 53xx) 255 + CPUs. You can distinguish newer from older Xeons by the CPU family 256 + in /proc/cpuinfo. Newer ones have 6 and older ones 15 (not a typo) 257 + 258 + config GENERIC_CPU 259 + bool "Generic-x86-64" 260 + depends on X86_64 261 + help 262 + Generic x86-64 CPU. 263 + Run equally well on all x86-64 CPUs. 264 + 265 endchoice 266 267 config X86_GENERIC 268 + bool "Generic x86 support" 269 + depends on X86_32 270 + help 271 Instead of just including optimizations for the selected 272 x86 variant (e.g. PII, Crusoe or Athlon), include some more 273 generic optimizations as well. This will make the kernel ··· 253 254 # 255 # Define implied options from the CPU selection here 256 + config X86_L1_CACHE_BYTES 257 + int 258 + default "128" if GENERIC_CPU || MPSC 259 + default "64" if MK8 || MCORE2 260 + depends on X86_64 261 + 262 + config X86_INTERNODE_CACHE_BYTES 263 + int 264 + default "4096" if X86_VSMP 265 + default X86_L1_CACHE_BYTES if !X86_VSMP 266 + depends on X86_64 267 + 268 config X86_CMPXCHG 269 + def_bool X86_64 || (X86_32 && !M386) 270 271 config X86_L1_CACHE_SHIFT 272 int 273 + default "7" if MPENTIUM4 || X86_GENERIC || GENERIC_CPU || MPSC 274 default "4" if X86_ELAN || M486 || M386 || MGEODEGX1 275 default "5" if MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCRUSOE || MEFFICEON || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || M586 || MVIAC3_2 || MGEODE_LX 276 default "6" if MK7 || MK8 || MPENTIUMM || MCORE2 || MVIAC7 277 278 config X86_XADD 279 bool 280 + depends on X86_32 && !M386 281 default y 282 283 config X86_PPRO_FENCE ··· 305 306 config X86_WP_WORKS_OK 307 bool 308 + depends on X86_32 && !M386 309 default y 310 311 config X86_INVLPG 312 bool 313 + depends on X86_32 && !M386 314 default y 315 316 config X86_BSWAP 317 bool 318 + depends on X86_32 && !M386 319 default y 320 321 config X86_POPAD_OK 322 bool 323 + depends on X86_32 && !M386 324 default y 325 326 config X86_ALIGNMENT_16 ··· 330 331 config X86_GOOD_APIC 332 bool 333 + depends on MK7 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || MK8 || MEFFICEON || MCORE2 || MVIAC7 || X86_64 334 default y 335 336 config X86_INTEL_USERCOPY ··· 355 356 config X86_TSC 357 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) || X86_64 359 default y 360 361 # this should be set for all -march=.. options where the compiler ··· 367 368 config X86_MINIMUM_CPU_FAMILY 369 int 370 + default "64" if X86_64 371 + default "4" if X86_32 && (X86_XADD || X86_CMPXCHG || X86_BSWAP || X86_WP_WORKS_OK) 372 default "3" 373
+431 -132
arch/x86/Kconfig.i386 arch/x86/Kconfig
··· 1 - # 2 - # For a description of the syntax of this configuration file, 3 - # see Documentation/kbuild/kconfig-language.txt. 4 - # 5 6 - mainmenu "Linux Kernel Configuration" 7 8 config X86_32 9 bool 10 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 17 config GENERIC_TIME 18 bool ··· 39 config GENERIC_CLOCKEVENTS_BROADCAST 40 bool 41 default y 42 - depends on X86_LOCAL_APIC 43 44 config LOCKDEP_SUPPORT 45 bool ··· 53 bool 54 default y 55 56 - config X86 57 - bool 58 - default y 59 - 60 config MMU 61 bool 62 default y ··· 63 64 config QUICKLIST 65 bool 66 - default y 67 68 config SBUS 69 bool ··· 93 bool 94 default y 95 96 source "init/Kconfig" 97 98 menu "Processor type and features" ··· 209 210 config X86_ELAN 211 bool "AMD Elan" 212 help 213 Select this for an AMD Elan processor. 214 ··· 219 220 config X86_VOYAGER 221 bool "Voyager (NCR)" 222 select SMP if !BROKEN 223 help 224 Voyager is an MCA-based 32-way capable SMP architecture proprietary ··· 234 bool "NUMAQ (IBM/Sequent)" 235 select SMP 236 select NUMA 237 help 238 This option is used for getting Linux to run on a (IBM/Sequent) NUMA 239 multiquad box. This changes the way that processors are bootstrapped, ··· 244 245 config X86_SUMMIT 246 bool "Summit/EXA (IBM x440)" 247 - depends on SMP 248 help 249 This option is needed for IBM systems that use the Summit/EXA chipset. 250 In particular, it is needed for the x440. ··· 254 255 config X86_BIGSMP 256 bool "Support for other sub-arch SMP systems with more than 8 CPUs" 257 - depends on SMP 258 help 259 This option is needed for the systems that have more than 8 CPUs 260 and if the system is not of any sub-arch type above. ··· 263 264 config X86_VISWS 265 bool "SGI 320/540 (Visual Workstation)" 266 help 267 The SGI Visual Workstation series is an IA32-based workstation 268 based on SGI systems chips with some legacy PC hardware attached. ··· 275 276 config X86_GENERICARCH 277 bool "Generic architecture (Summit, bigsmp, ES7000, default)" 278 help 279 This option compiles in the Summit, bigsmp, ES7000, default subarchitectures. 280 It is intended for a generic binary kernel. ··· 283 284 config X86_ES7000 285 bool "Support for Unisys ES7000 IA32 series" 286 - depends on SMP 287 help 288 Support for Unisys ES7000 systems. Say 'Y' here if this kernel is 289 supposed to run on an IA32-based Unisys ES7000 system. 290 Only choose this option if you have such a system, otherwise you 291 should say N here. 292 293 endchoice 294 295 config SCHED_NO_NO_OMIT_FRAME_POINTER 296 bool "Single-depth WCHAN output" 297 default y 298 help 299 Calculate simpler /proc/<PID>/wchan values. If this option 300 is disabled then wchan values will recurse back to the ··· 314 315 config PARAVIRT 316 bool 317 - depends on !(X86_VISWS || X86_VOYAGER) 318 help 319 This changes the kernel so it can modify itself when it is run 320 under a hypervisor, potentially improving performance significantly ··· 323 324 menuconfig PARAVIRT_GUEST 325 bool "Paravirtualized guest support" 326 help 327 Say Y here to get to see options related to running Linux under 328 various hypervisors. This option alone does not add any kernel code. ··· 351 config ACPI_SRAT 352 bool 353 default y 354 - depends on ACPI && NUMA && (X86_SUMMIT || X86_GENERICARCH) 355 select ACPI_NUMA 356 357 config HAVE_ARCH_PARSE_SRAT ··· 362 config X86_SUMMIT_NUMA 363 bool 364 default y 365 - depends on NUMA && (X86_SUMMIT || X86_GENERICARCH) 366 367 config X86_CYCLONE_TIMER 368 bool 369 default y 370 - depends on X86_SUMMIT || X86_GENERICARCH 371 372 config ES7000_CLUSTERED_APIC 373 bool ··· 377 source "arch/x86/Kconfig.cpu" 378 379 config HPET_TIMER 380 - bool "HPET Timer Support" 381 help 382 - This enables the use of the HPET for the kernel's internal timer. 383 - HPET is the next generation timer replacing legacy 8254s. 384 - You can safely choose Y here. However, HPET will only be 385 - activated if the platform and the BIOS support this feature. 386 - Otherwise the 8254 will be used for timing services. 387 388 - Choose N to continue using the legacy 8254 timer. 389 390 config HPET_EMULATE_RTC 391 bool 392 depends on HPET_TIMER && RTC=y 393 default y 394 395 config NR_CPUS 396 int "Maximum number of CPUs (2-255)" ··· 476 477 config SCHED_SMT 478 bool "SMT (Hyperthreading) scheduler support" 479 - depends on X86_HT 480 help 481 SMT scheduler support improves the CPU scheduler's decision making 482 when dealing with Intel Pentium 4 chips with HyperThreading at a ··· 485 486 config SCHED_MC 487 bool "Multi-core scheduler support" 488 - depends on X86_HT 489 default y 490 help 491 Multi-core scheduler support improves the CPU scheduler's decision ··· 496 497 config X86_UP_APIC 498 bool "Local APIC support on uniprocessors" 499 - depends on !SMP && !(X86_VISWS || X86_VOYAGER || X86_GENERICARCH) 500 help 501 A local APIC (Advanced Programmable Interrupt Controller) is an 502 integrated interrupt controller in the CPU. If you have a single-CPU ··· 521 522 config X86_LOCAL_APIC 523 bool 524 - depends on X86_UP_APIC || ((X86_VISWS || SMP) && !X86_VOYAGER) || X86_GENERICARCH 525 default y 526 527 config X86_IO_APIC 528 bool 529 - depends on X86_UP_IOAPIC || (SMP && !(X86_VISWS || X86_VOYAGER)) || X86_GENERICARCH 530 default y 531 532 config X86_VISWS_APIC 533 bool 534 - depends on X86_VISWS 535 default y 536 537 config X86_MCE ··· 551 to disable it. MCE support simply ignores non-MCE processors like 552 the 386 and 486, so nearly everyone can say Y here. 553 554 config X86_MCE_NONFATAL 555 tristate "Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium 4" 556 - depends on X86_MCE 557 help 558 Enabling this feature starts a timer that triggers every 5 seconds which 559 will look at the machine check registers to see if anything happened. ··· 582 583 config X86_MCE_P4THERMAL 584 bool "check for P4 thermal throttling interrupt." 585 - depends on X86_MCE && (X86_UP_APIC || SMP) && !X86_VISWS 586 help 587 Enabling this feature will cause a message to be printed when the P4 588 enters thermal throttling. 589 590 config VM86 591 - default y 592 bool "Enable VM86 support" if EMBEDDED 593 help 594 This option is required by programs like DOSEMU to run 16-bit legacy 595 code on X86 processors. It also may be needed by software like ··· 599 600 config TOSHIBA 601 tristate "Toshiba Laptop support" 602 ---help--- 603 This adds a driver to safely access the System Management Mode of 604 the CPU on Toshiba portables with a genuine Toshiba BIOS. It does ··· 615 616 config I8K 617 tristate "Dell laptop support" 618 ---help--- 619 This adds a driver to safely access the System Management Mode 620 of the CPU on the Dell Inspiron 8000. The System Management Mode ··· 636 637 config X86_REBOOTFIXUPS 638 bool "Enable X86 board specific fixups for reboot" 639 - depends on X86 640 default n 641 ---help--- 642 This enables chipset and/or board specific fixups to be done ··· 691 with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to 692 /dev/cpu/31/cpuid. 693 694 - source "drivers/firmware/Kconfig" 695 - 696 choice 697 prompt "High Memory Support" 698 default HIGHMEM4G if !X86_NUMAQ 699 default HIGHMEM64G if X86_NUMAQ 700 701 config NOHIGHMEM 702 bool "off" ··· 755 depends on EXPERIMENTAL 756 prompt "Memory split" if EMBEDDED 757 default VMSPLIT_3G 758 help 759 Select the desired split between kernel and user memory. 760 ··· 793 default 0x78000000 if VMSPLIT_2G_OPT 794 default 0x40000000 if VMSPLIT_1G 795 default 0xC0000000 796 797 config HIGHMEM 798 bool 799 - depends on HIGHMEM64G || HIGHMEM4G 800 default y 801 802 config X86_PAE 803 bool "PAE (Physical Address Extension) Support" 804 default n 805 - depends on !HIGHMEM4G 806 select RESOURCES_64BIT 807 help 808 PAE is required for NX support, and furthermore enables ··· 814 # Common NUMA Features 815 config NUMA 816 bool "Numa Memory Allocation and Scheduler Support (EXPERIMENTAL)" 817 - depends on SMP && HIGHMEM64G && (X86_NUMAQ || (X86_SUMMIT || X86_GENERICARCH) && ACPI) && EXPERIMENTAL 818 default n if X86_PC 819 default y if (X86_NUMAQ || X86_SUMMIT) 820 help 821 - NUMA support for i386. This is currently highly experimental 822 - and should be only used for kernel development. It might also 823 - cause boot failures. 824 825 comment "NUMA (Summit) requires SMP, 64GB highmem support, ACPI" 826 - depends on X86_SUMMIT && (!HIGHMEM64G || !ACPI) 827 828 config NODES_SHIFT 829 int 830 default "4" if X86_NUMAQ 831 default "3" 832 depends on NEED_MULTIPLE_NODES 833 834 config HAVE_ARCH_BOOTMEM_NODE 835 bool 836 - depends on NUMA 837 default y 838 839 config ARCH_HAVE_MEMORY_PRESENT 840 bool 841 - depends on DISCONTIGMEM 842 default y 843 844 config NEED_NODE_MEMMAP_SIZE 845 bool 846 - depends on DISCONTIGMEM || SPARSEMEM 847 default y 848 849 config HAVE_ARCH_ALLOC_REMAP 850 bool 851 - depends on NUMA 852 default y 853 854 config ARCH_FLATMEM_ENABLE 855 def_bool y 856 - depends on (ARCH_SELECT_MEMORY_MODEL && X86_PC) 857 858 config ARCH_DISCONTIGMEM_ENABLE 859 def_bool y ··· 901 902 config ARCH_SPARSEMEM_ENABLE 903 def_bool y 904 - depends on (NUMA || (X86_PC && EXPERIMENTAL)) 905 - select SPARSEMEM_STATIC 906 907 config ARCH_SELECT_MEMORY_MODEL 908 def_bool y 909 - depends on ARCH_SPARSEMEM_ENABLE 910 911 - config ARCH_POPULATES_NODE_MAP 912 - def_bool y 913 914 source "mm/Kconfig" 915 916 config HIGHPTE 917 bool "Allocate 3rd-level pagetables from highmem" 918 - depends on HIGHMEM4G || HIGHMEM64G 919 help 920 The VM uses one page table entry for each page of physical memory. 921 For systems with a lot of RAM, this can be wasteful of precious ··· 925 entries in high memory. 926 927 config MATH_EMULATION 928 - bool "Math emulation" 929 ---help--- 930 Linux can emulate a math coprocessor (used for floating point 931 operations) if you don't have one. 486DX and Pentium processors have ··· 986 987 config EFI 988 bool "Boot from EFI support" 989 - depends on ACPI 990 default n 991 ---help--- 992 This enables the kernel to boot on EFI platforms using ··· 1003 kernel should continue to boot on existing non-EFI platforms. 1004 1005 config IRQBALANCE 1006 - bool "Enable kernel irq balancing" 1007 - depends on SMP && X86_IO_APIC 1008 default y 1009 help 1010 - The default yes will allow the kernel to do irq load balancing. 1011 Saying no will keep the kernel from doing irq load balancing. 1012 1013 # turning this on wastes a bunch of space. 1014 # Summit needs it only when NUMA is on 1015 config BOOT_IOREMAP 1016 bool 1017 - depends on (((X86_SUMMIT || X86_GENERICARCH) && NUMA) || (X86 && EFI)) 1018 default y 1019 1020 config SECCOMP ··· 1033 defined by each seccomp mode. 1034 1035 If unsure, say Y. Only embedded should say N here. 1036 1037 source kernel/Kconfig.hz 1038 ··· 1079 config CRASH_DUMP 1080 bool "kernel crash dumps (EXPERIMENTAL)" 1081 depends on EXPERIMENTAL 1082 - depends on HIGHMEM 1083 help 1084 Generate crash dump after being started by kexec. 1085 This should be normally only set in special crash dump kernels ··· 1094 config PHYSICAL_START 1095 hex "Physical address where the kernel is loaded" if (EMBEDDED || CRASH_DUMP) 1096 default "0x1000000" if X86_NUMAQ 1097 default "0x100000" 1098 help 1099 This gives the physical address where the kernel is loaded. ··· 1147 must live at a different physical address than the primary 1148 kernel. 1149 1150 config PHYSICAL_ALIGN 1151 - hex "Alignment value to which kernel should be aligned" 1152 - default "0x100000" 1153 range 0x2000 0x400000 1154 help 1155 This value puts the alignment restrictions on physical address 1156 - where kernel is loaded and run from. Kernel is compiled for an 1157 - address which meets above alignment restriction. 1158 1159 - If bootloader loads the kernel at a non-aligned address and 1160 - CONFIG_RELOCATABLE is set, kernel will move itself to nearest 1161 - address aligned to above value and run from there. 1162 1163 - If bootloader loads the kernel at a non-aligned address and 1164 - CONFIG_RELOCATABLE is not set, kernel will ignore the run time 1165 - load address and decompress itself to the address it has been 1166 - compiled for and run from there. The address for which kernel is 1167 - compiled already meets above alignment restrictions. Hence the 1168 - end result is that kernel runs from a physical address meeting 1169 above alignment restrictions. 1170 1171 Don't change this unless you know what you are doing. ··· 1183 Say Y here to experiment with turning CPUs off and on, and to 1184 enable suspend on SMP systems. CPUs can be controlled through 1185 /sys/devices/system/cpu. 1186 1187 config COMPAT_VDSO 1188 bool "Compat VDSO support" 1189 default y 1190 help 1191 Map the VDSO to the predictable old-style address too. 1192 ---help--- ··· 1203 1204 config ARCH_ENABLE_MEMORY_HOTPLUG 1205 def_bool y 1206 - depends on HIGHMEM 1207 1208 - menu "Power management options (ACPI, APM)" 1209 depends on !X86_VOYAGER 1210 1211 - source kernel/power/Kconfig 1212 1213 source "drivers/acpi/Kconfig" 1214 1215 menuconfig APM 1216 tristate "APM (Advanced Power Management) BIOS support" 1217 - depends on PM_SLEEP && !X86_VISWS 1218 ---help--- 1219 APM is a BIOS specification for saving power using several different 1220 techniques. This is mostly useful for battery powered laptops with ··· 1357 1358 endif # APM 1359 1360 - source "arch/x86/kernel/cpu/cpufreq/Kconfig_32" 1361 1362 source "drivers/cpuidle/Kconfig" 1363 1364 endmenu 1365 1366 - menu "Bus options (PCI, PCMCIA, EISA, MCA, ISA)" 1367 1368 config PCI 1369 bool "PCI support" if !X86_VISWS ··· 1384 1385 choice 1386 prompt "PCI access mode" 1387 - depends on PCI && !X86_VISWS 1388 default PCI_GOANY 1389 ---help--- 1390 On PCI systems, the BIOS can be used to detect the PCI devices and ··· 1417 1418 config PCI_BIOS 1419 bool 1420 - depends on !X86_VISWS && PCI && (PCI_GOBIOS || PCI_GOANY) 1421 default y 1422 1423 config PCI_DIRECT 1424 bool 1425 - depends on PCI && ((PCI_GODIRECT || PCI_GOANY) || X86_VISWS) 1426 default y 1427 1428 config PCI_MMCONFIG 1429 bool 1430 - depends on PCI && ACPI && (PCI_GOMMCONFIG || PCI_GOANY) 1431 default y 1432 1433 config PCI_DOMAINS ··· 1436 depends on PCI 1437 default y 1438 1439 source "drivers/pci/pcie/Kconfig" 1440 1441 source "drivers/pci/Kconfig" 1442 1443 config ISA_DMA_API 1444 bool 1445 default y 1446 1447 config ISA 1448 bool "ISA support" ··· 1553 MFGPTs have a better resolution and max interval than the 1554 generic PIT, and are suitable for use as high-res timers. 1555 1556 config K8_NB 1557 def_bool y 1558 - depends on AGP_AMD64 1559 1560 source "drivers/pcmcia/Kconfig" 1561 ··· 1565 1566 endmenu 1567 1568 - menu "Executable file formats" 1569 1570 source "fs/Kconfig.binfmt" 1571 1572 endmenu 1573 1574 source "net/Kconfig" 1575 1576 source "drivers/Kconfig" 1577 1578 source "fs/Kconfig" 1579 ··· 1618 source "crypto/Kconfig" 1619 1620 source "lib/Kconfig" 1621 - 1622 - # 1623 - # Use the generic interrupt handling code in kernel/irq/: 1624 - # 1625 - config GENERIC_HARDIRQS 1626 - bool 1627 - default y 1628 - 1629 - config GENERIC_IRQ_PROBE 1630 - bool 1631 - default y 1632 - 1633 - config GENERIC_PENDING_IRQ 1634 - bool 1635 - depends on GENERIC_HARDIRQS && SMP 1636 - default y 1637 - 1638 - config X86_SMP 1639 - bool 1640 - depends on SMP && !X86_VOYAGER 1641 - default y 1642 - 1643 - config X86_HT 1644 - bool 1645 - depends on SMP && !(X86_VISWS || X86_VOYAGER) 1646 - default y 1647 - 1648 - config X86_BIOS_REBOOT 1649 - bool 1650 - depends on !(X86_VISWS || X86_VOYAGER) 1651 - default y 1652 - 1653 - config X86_TRAMPOLINE 1654 - bool 1655 - depends on X86_SMP || (X86_VOYAGER && SMP) 1656 - default y 1657 - 1658 - config KTIME_SCALAR 1659 - bool 1660 - default y
··· 1 + # x86 configuration 2 + mainmenu "Linux Kernel Configuration for x86" 3 4 + # Select 32 or 64 bit 5 + config 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 11 12 config X86_32 13 + def_bool !64BIT 14 + 15 + config X86_64 16 + def_bool 64BIT 17 + 18 + ### Arch settings 19 + config X86 20 bool 21 default y 22 23 config GENERIC_TIME 24 bool ··· 33 config GENERIC_CLOCKEVENTS_BROADCAST 34 bool 35 default y 36 + depends on X86_64 || (X86_32 && X86_LOCAL_APIC) 37 38 config LOCKDEP_SUPPORT 39 bool ··· 47 bool 48 default y 49 50 config MMU 51 bool 52 default y ··· 61 62 config QUICKLIST 63 bool 64 + default X86_32 65 66 config SBUS 67 bool ··· 91 bool 92 default y 93 94 + config RWSEM_GENERIC_SPINLOCK 95 + def_bool !X86_XADD 96 + 97 + config RWSEM_XCHGADD_ALGORITHM 98 + def_bool X86_XADD 99 + 100 + config ARCH_HAS_ILOG2_U32 101 + def_bool n 102 + 103 + config ARCH_HAS_ILOG2_U64 104 + def_bool n 105 + 106 + config GENERIC_CALIBRATE_DELAY 107 + def_bool y 108 + 109 + config GENERIC_TIME_VSYSCALL 110 + bool 111 + default X86_64 112 + 113 + 114 + 115 + 116 + 117 + config ZONE_DMA32 118 + bool 119 + default X86_64 120 + 121 + config ARCH_POPULATES_NODE_MAP 122 + def_bool y 123 + 124 + config AUDIT_ARCH 125 + bool 126 + default X86_64 127 + 128 + # Use the generic interrupt handling code in kernel/irq/: 129 + config GENERIC_HARDIRQS 130 + bool 131 + default y 132 + 133 + config GENERIC_IRQ_PROBE 134 + bool 135 + default y 136 + 137 + config GENERIC_PENDING_IRQ 138 + bool 139 + depends on GENERIC_HARDIRQS && SMP 140 + default y 141 + 142 + config X86_SMP 143 + bool 144 + depends on X86_32 && SMP && !X86_VOYAGER 145 + default y 146 + 147 + config X86_HT 148 + bool 149 + depends on SMP && !(X86_VISWS || X86_VOYAGER || MK8) 150 + default y 151 + 152 + config X86_BIOS_REBOOT 153 + bool 154 + depends on X86_32 && !(X86_VISWS || X86_VOYAGER) 155 + default y 156 + 157 + config X86_TRAMPOLINE 158 + bool 159 + depends on X86_SMP || (X86_VOYAGER && SMP) 160 + default y 161 + 162 + config KTIME_SCALAR 163 + def_bool X86_32 164 source "init/Kconfig" 165 166 menu "Processor type and features" ··· 137 138 config X86_ELAN 139 bool "AMD Elan" 140 + depends on X86_32 141 help 142 Select this for an AMD Elan processor. 143 ··· 146 147 config X86_VOYAGER 148 bool "Voyager (NCR)" 149 + depends on X86_32 150 select SMP if !BROKEN 151 help 152 Voyager is an MCA-based 32-way capable SMP architecture proprietary ··· 160 bool "NUMAQ (IBM/Sequent)" 161 select SMP 162 select NUMA 163 + depends on X86_32 164 help 165 This option is used for getting Linux to run on a (IBM/Sequent) NUMA 166 multiquad box. This changes the way that processors are bootstrapped, ··· 169 170 config X86_SUMMIT 171 bool "Summit/EXA (IBM x440)" 172 + depends on X86_32 && SMP 173 help 174 This option is needed for IBM systems that use the Summit/EXA chipset. 175 In particular, it is needed for the x440. ··· 179 180 config X86_BIGSMP 181 bool "Support for other sub-arch SMP systems with more than 8 CPUs" 182 + depends on X86_32 && SMP 183 help 184 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. ··· 188 189 config X86_VISWS 190 bool "SGI 320/540 (Visual Workstation)" 191 + depends on X86_32 192 help 193 The SGI Visual Workstation series is an IA32-based workstation 194 based on SGI systems chips with some legacy PC hardware attached. ··· 199 200 config X86_GENERICARCH 201 bool "Generic architecture (Summit, bigsmp, ES7000, default)" 202 + depends on X86_32 203 help 204 This option compiles in the Summit, bigsmp, ES7000, default subarchitectures. 205 It is intended for a generic binary kernel. ··· 206 207 config X86_ES7000 208 bool "Support for Unisys ES7000 IA32 series" 209 + depends on X86_32 && SMP 210 help 211 Support for Unisys ES7000 systems. Say 'Y' here if this kernel is 212 supposed to run on an IA32-based Unisys ES7000 system. 213 Only choose this option if you have such a system, otherwise you 214 should say N here. 215 216 + config X86_VSMP 217 + bool "Support for ScaleMP vSMP" 218 + depends on X86_64 && PCI 219 + help 220 + Support for ScaleMP vSMP systems. Say 'Y' here if this kernel is 221 + supposed to run on these EM64T-based machines. Only choose this option 222 + if you have one of these machines. 223 + 224 endchoice 225 226 config SCHED_NO_NO_OMIT_FRAME_POINTER 227 bool "Single-depth WCHAN output" 228 default y 229 + depends on X86_32 230 help 231 Calculate simpler /proc/<PID>/wchan values. If this option 232 is disabled then wchan values will recurse back to the ··· 228 229 config PARAVIRT 230 bool 231 + depends on X86_32 && !(X86_VISWS || X86_VOYAGER) 232 help 233 This changes the kernel so it can modify itself when it is run 234 under a hypervisor, potentially improving performance significantly ··· 237 238 menuconfig PARAVIRT_GUEST 239 bool "Paravirtualized guest support" 240 + depends on X86_32 241 help 242 Say Y here to get to see options related to running Linux under 243 various hypervisors. This option alone does not add any kernel code. ··· 264 config ACPI_SRAT 265 bool 266 default y 267 + depends on X86_32 && ACPI && NUMA && (X86_SUMMIT || X86_GENERICARCH) 268 select ACPI_NUMA 269 270 config HAVE_ARCH_PARSE_SRAT ··· 275 config X86_SUMMIT_NUMA 276 bool 277 default y 278 + depends on X86_32 && NUMA && (X86_SUMMIT || X86_GENERICARCH) 279 280 config X86_CYCLONE_TIMER 281 bool 282 default y 283 + depends on X86_32 && X86_SUMMIT || X86_GENERICARCH 284 285 config ES7000_CLUSTERED_APIC 286 bool ··· 290 source "arch/x86/Kconfig.cpu" 291 292 config HPET_TIMER 293 + bool 294 + prompt "HPET Timer Support" if X86_32 295 + default X86_64 296 help 297 + Use the IA-PC HPET (High Precision Event Timer) to manage 298 + time in preference to the PIT and RTC, if a HPET is 299 + present. 300 + HPET is the next generation timer replacing legacy 8254s. 301 + The HPET provides a stable time base on SMP 302 + systems, unlike the TSC, but it is more expensive to access, 303 + as it is off-chip. You can find the HPET spec at 304 + <http://www.intel.com/hardwaredesign/hpetspec.htm>. 305 306 + You can safely choose Y here. However, HPET will only be 307 + activated if the platform and the BIOS support this feature. 308 + Otherwise the 8254 will be used for timing services. 309 + 310 + Choose N to continue using the legacy 8254 timer. 311 312 config HPET_EMULATE_RTC 313 bool 314 depends on HPET_TIMER && RTC=y 315 default y 316 + 317 + # Mark as embedded because too many people got it wrong. 318 + # The code disables itself when not needed. 319 + config GART_IOMMU 320 + bool "GART IOMMU support" if EMBEDDED 321 + default y 322 + select SWIOTLB 323 + select AGP 324 + depends on X86_64 && PCI 325 + help 326 + Support for full DMA access of devices with 32bit memory access only 327 + on systems with more than 3GB. This is usually needed for USB, 328 + sound, many IDE/SATA chipsets and some other devices. 329 + Provides a driver for the AMD Athlon64/Opteron/Turion/Sempron GART 330 + based hardware IOMMU and a software bounce buffer based IOMMU used 331 + on Intel systems and as fallback. 332 + The code is only active when needed (enough memory and limited 333 + device) unless CONFIG_IOMMU_DEBUG or iommu=force is specified 334 + too. 335 + 336 + config CALGARY_IOMMU 337 + bool "IBM Calgary IOMMU support" 338 + select SWIOTLB 339 + depends on X86_64 && PCI && EXPERIMENTAL 340 + help 341 + Support for hardware IOMMUs in IBM's xSeries x366 and x460 342 + systems. Needed to run systems with more than 3GB of memory 343 + properly with 32-bit PCI devices that do not support DAC 344 + (Double Address Cycle). Calgary also supports bus level 345 + isolation, where all DMAs pass through the IOMMU. This 346 + prevents them from going anywhere except their intended 347 + destination. This catches hard-to-find kernel bugs and 348 + mis-behaving drivers and devices that do not use the DMA-API 349 + properly to set up their DMA buffers. The IOMMU can be 350 + turned off at boot time with the iommu=off parameter. 351 + Normally the kernel will make the right choice by itself. 352 + If unsure, say Y. 353 + 354 + config CALGARY_IOMMU_ENABLED_BY_DEFAULT 355 + bool "Should Calgary be enabled by default?" 356 + default y 357 + depends on CALGARY_IOMMU 358 + help 359 + Should Calgary be enabled by default? if you choose 'y', Calgary 360 + will be used (if it exists). If you choose 'n', Calgary will not be 361 + used even if it exists. If you choose 'n' and would like to use 362 + Calgary anyway, pass 'iommu=calgary' on the kernel command line. 363 + If unsure, say Y. 364 + 365 + # need this always selected by IOMMU for the VIA workaround 366 + config SWIOTLB 367 + bool 368 + help 369 + Support for software bounce buffers used on x86-64 systems 370 + which don't have a hardware IOMMU (e.g. the current generation 371 + of Intel's x86-64 CPUs). Using this PCI devices which can only 372 + access 32-bits of memory can be used on systems with more than 373 + 3 GB of memory. If unsure, say Y. 374 + 375 376 config NR_CPUS 377 int "Maximum number of CPUs (2-255)" ··· 321 322 config SCHED_SMT 323 bool "SMT (Hyperthreading) scheduler support" 324 + depends on (X86_64 && SMP) || (X86_32 && X86_HT) 325 help 326 SMT scheduler support improves the CPU scheduler's decision making 327 when dealing with Intel Pentium 4 chips with HyperThreading at a ··· 330 331 config SCHED_MC 332 bool "Multi-core scheduler support" 333 + depends on (X86_64 && SMP) || (X86_32 && X86_HT) 334 default y 335 help 336 Multi-core scheduler support improves the CPU scheduler's decision ··· 341 342 config X86_UP_APIC 343 bool "Local APIC support on uniprocessors" 344 + depends on X86_32 && !SMP && !(X86_VISWS || X86_VOYAGER || X86_GENERICARCH) 345 help 346 A local APIC (Advanced Programmable Interrupt Controller) is an 347 integrated interrupt controller in the CPU. If you have a single-CPU ··· 366 367 config X86_LOCAL_APIC 368 bool 369 + depends on X86_64 || (X86_32 && (X86_UP_APIC || ((X86_VISWS || SMP) && !X86_VOYAGER) || X86_GENERICARCH)) 370 default y 371 372 config X86_IO_APIC 373 bool 374 + depends on X86_64 || (X86_32 && (X86_UP_IOAPIC || (SMP && !(X86_VISWS || X86_VOYAGER)) || X86_GENERICARCH)) 375 default y 376 377 config X86_VISWS_APIC 378 bool 379 + depends on X86_32 && X86_VISWS 380 default y 381 382 config X86_MCE ··· 396 to disable it. MCE support simply ignores non-MCE processors like 397 the 386 and 486, so nearly everyone can say Y here. 398 399 + config X86_MCE_INTEL 400 + bool "Intel MCE features" 401 + depends on X86_64 && X86_MCE && X86_LOCAL_APIC 402 + default y 403 + help 404 + Additional support for intel specific MCE features such as 405 + the thermal monitor. 406 + 407 + config X86_MCE_AMD 408 + bool "AMD MCE features" 409 + depends on X86_64 && X86_MCE && X86_LOCAL_APIC 410 + default y 411 + help 412 + Additional support for AMD specific MCE features such as 413 + the DRAM Error Threshold. 414 + 415 config X86_MCE_NONFATAL 416 tristate "Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium 4" 417 + depends on X86_32 && X86_MCE 418 help 419 Enabling this feature starts a timer that triggers every 5 seconds which 420 will look at the machine check registers to see if anything happened. ··· 411 412 config X86_MCE_P4THERMAL 413 bool "check for P4 thermal throttling interrupt." 414 + depends on X86_32 && X86_MCE && (X86_UP_APIC || SMP) && !X86_VISWS 415 help 416 Enabling this feature will cause a message to be printed when the P4 417 enters thermal throttling. 418 419 config VM86 420 bool "Enable VM86 support" if EMBEDDED 421 + default y 422 + depends on X86_32 423 help 424 This option is required by programs like DOSEMU to run 16-bit legacy 425 code on X86 processors. It also may be needed by software like ··· 427 428 config TOSHIBA 429 tristate "Toshiba Laptop support" 430 + depends on X86_32 431 ---help--- 432 This adds a driver to safely access the System Management Mode of 433 the CPU on Toshiba portables with a genuine Toshiba BIOS. It does ··· 442 443 config I8K 444 tristate "Dell laptop support" 445 + depends on X86_32 446 ---help--- 447 This adds a driver to safely access the System Management Mode 448 of the CPU on the Dell Inspiron 8000. The System Management Mode ··· 462 463 config X86_REBOOTFIXUPS 464 bool "Enable X86 board specific fixups for reboot" 465 + depends on X86_32 && X86 466 default n 467 ---help--- 468 This enables chipset and/or board specific fixups to be done ··· 517 with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to 518 /dev/cpu/31/cpuid. 519 520 choice 521 prompt "High Memory Support" 522 default HIGHMEM4G if !X86_NUMAQ 523 default HIGHMEM64G if X86_NUMAQ 524 + depends on X86_32 525 526 config NOHIGHMEM 527 bool "off" ··· 582 depends on EXPERIMENTAL 583 prompt "Memory split" if EMBEDDED 584 default VMSPLIT_3G 585 + depends on X86_32 586 help 587 Select the desired split between kernel and user memory. 588 ··· 619 default 0x78000000 if VMSPLIT_2G_OPT 620 default 0x40000000 if VMSPLIT_1G 621 default 0xC0000000 622 + depends on X86_32 623 624 config HIGHMEM 625 bool 626 + depends on X86_32 && (HIGHMEM64G || HIGHMEM4G) 627 default y 628 629 config X86_PAE 630 bool "PAE (Physical Address Extension) Support" 631 default n 632 + depends on X86_32 && !HIGHMEM4G 633 select RESOURCES_64BIT 634 help 635 PAE is required for NX support, and furthermore enables ··· 639 # Common NUMA Features 640 config NUMA 641 bool "Numa Memory Allocation and Scheduler Support (EXPERIMENTAL)" 642 + depends on SMP 643 + depends on X86_64 || (X86_32 && HIGHMEM64G && (X86_NUMAQ || (X86_SUMMIT || X86_GENERICARCH) && ACPI) && EXPERIMENTAL) 644 default n if X86_PC 645 default y if (X86_NUMAQ || X86_SUMMIT) 646 help 647 + Enable NUMA (Non Uniform Memory Access) support. 648 + The kernel will try to allocate memory used by a CPU on the 649 + local memory controller of the CPU and add some more 650 + NUMA awareness to the kernel. 651 + 652 + For i386 this is currently highly experimental and should be only 653 + used for kernel development. It might also cause boot failures. 654 + For x86_64 this is recommended on all multiprocessor Opteron systems. 655 + If the system is EM64T, you should say N unless your system is 656 + EM64T NUMA. 657 658 comment "NUMA (Summit) requires SMP, 64GB highmem support, ACPI" 659 + depends on X86_32 && X86_SUMMIT && (!HIGHMEM64G || !ACPI) 660 + 661 + config K8_NUMA 662 + bool "Old style AMD Opteron NUMA detection" 663 + depends on X86_64 && NUMA && PCI 664 + default y 665 + help 666 + Enable K8 NUMA node topology detection. You should say Y here if 667 + you have a multi processor AMD K8 system. This uses an old 668 + method to read the NUMA configuration directly from the builtin 669 + Northbridge of Opteron. It is recommended to use X86_64_ACPI_NUMA 670 + instead, which also takes priority if both are compiled in. 671 + 672 + config X86_64_ACPI_NUMA 673 + bool "ACPI NUMA detection" 674 + depends on X86_64 && NUMA && ACPI && PCI 675 + select ACPI_NUMA 676 + default y 677 + help 678 + Enable ACPI SRAT based node topology detection. 679 + 680 + config NUMA_EMU 681 + bool "NUMA emulation" 682 + depends on X86_64 && NUMA 683 + help 684 + Enable NUMA emulation. A flat machine will be split 685 + into virtual nodes when booted with "numa=fake=N", where N is the 686 + number of nodes. This is only useful for debugging. 687 688 config NODES_SHIFT 689 int 690 + default "6" if X86_64 691 default "4" if X86_NUMAQ 692 default "3" 693 depends on NEED_MULTIPLE_NODES 694 695 config HAVE_ARCH_BOOTMEM_NODE 696 bool 697 + depends on X86_32 && NUMA 698 default y 699 700 config ARCH_HAVE_MEMORY_PRESENT 701 bool 702 + depends on X86_32 && DISCONTIGMEM 703 default y 704 705 config NEED_NODE_MEMMAP_SIZE 706 bool 707 + depends on X86_32 && (DISCONTIGMEM || SPARSEMEM) 708 default y 709 710 config HAVE_ARCH_ALLOC_REMAP 711 bool 712 + depends on X86_32 && NUMA 713 default y 714 715 config ARCH_FLATMEM_ENABLE 716 def_bool y 717 + depends on (X86_32 && ARCH_SELECT_MEMORY_MODEL && X86_PC) || (X86_64 && !NUMA) 718 719 config ARCH_DISCONTIGMEM_ENABLE 720 def_bool y ··· 690 691 config ARCH_SPARSEMEM_ENABLE 692 def_bool y 693 + depends on NUMA || (EXPERIMENTAL && (X86_PC || X86_64)) 694 + select SPARSEMEM_STATIC if X86_32 695 + select SPARSEMEM_VMEMMAP_ENABLE if X86_64 696 697 config ARCH_SELECT_MEMORY_MODEL 698 def_bool y 699 + depends on X86_32 && ARCH_SPARSEMEM_ENABLE 700 701 + config ARCH_MEMORY_PROBE 702 + def_bool X86_64 703 + depends on MEMORY_HOTPLUG 704 705 source "mm/Kconfig" 706 707 config HIGHPTE 708 bool "Allocate 3rd-level pagetables from highmem" 709 + depends on X86_32 && (HIGHMEM4G || HIGHMEM64G) 710 help 711 The VM uses one page table entry for each page of physical memory. 712 For systems with a lot of RAM, this can be wasteful of precious ··· 712 entries in high memory. 713 714 config MATH_EMULATION 715 + bool 716 + prompt "Math emulation" if X86_32 717 ---help--- 718 Linux can emulate a math coprocessor (used for floating point 719 operations) if you don't have one. 486DX and Pentium processors have ··· 772 773 config EFI 774 bool "Boot from EFI support" 775 + depends on X86_32 && ACPI 776 default n 777 ---help--- 778 This enables the kernel to boot on EFI platforms using ··· 789 kernel should continue to boot on existing non-EFI platforms. 790 791 config IRQBALANCE 792 + bool "Enable kernel irq balancing" 793 + depends on X86_32 && SMP && X86_IO_APIC 794 default y 795 help 796 + The default yes will allow the kernel to do irq load balancing. 797 Saying no will keep the kernel from doing irq load balancing. 798 799 # turning this on wastes a bunch of space. 800 # Summit needs it only when NUMA is on 801 config BOOT_IOREMAP 802 bool 803 + depends on X86_32 && (((X86_SUMMIT || X86_GENERICARCH) && NUMA) || (X86 && EFI)) 804 default y 805 806 config SECCOMP ··· 819 defined by each seccomp mode. 820 821 If unsure, say Y. Only embedded should say N here. 822 + 823 + config CC_STACKPROTECTOR 824 + bool "Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)" 825 + depends on X86_64 && EXPERIMENTAL 826 + help 827 + This option turns on the -fstack-protector GCC feature. This 828 + feature puts, at the beginning of critical functions, a canary 829 + value on the stack just before the return address, and validates 830 + the value just before actually returning. Stack based buffer 831 + overflows (that need to overwrite this return address) now also 832 + overwrite the canary, which gets detected and the attack is then 833 + neutralized via a kernel panic. 834 + 835 + This feature requires gcc version 4.2 or above, or a distribution 836 + gcc with the feature backported. Older versions are automatically 837 + detected and for those versions, this configuration option is ignored. 838 + 839 + config CC_STACKPROTECTOR_ALL 840 + bool "Use stack-protector for all functions" 841 + depends on CC_STACKPROTECTOR 842 + help 843 + Normally, GCC only inserts the canary value protection for 844 + functions that use large-ish on-stack buffers. By enabling 845 + this option, GCC will be asked to do this for ALL functions. 846 847 source kernel/Kconfig.hz 848 ··· 841 config CRASH_DUMP 842 bool "kernel crash dumps (EXPERIMENTAL)" 843 depends on EXPERIMENTAL 844 + depends on X86_64 || (X86_32 && HIGHMEM) 845 help 846 Generate crash dump after being started by kexec. 847 This should be normally only set in special crash dump kernels ··· 856 config PHYSICAL_START 857 hex "Physical address where the kernel is loaded" if (EMBEDDED || CRASH_DUMP) 858 default "0x1000000" if X86_NUMAQ 859 + default "0x200000" if X86_64 860 default "0x100000" 861 help 862 This gives the physical address where the kernel is loaded. ··· 908 must live at a different physical address than the primary 909 kernel. 910 911 + Note: If CONFIG_RELOCATABLE=y, then the kernel runs from the address 912 + it has been loaded at and the compile time physical address 913 + (CONFIG_PHYSICAL_START) is ignored. 914 + 915 config PHYSICAL_ALIGN 916 + hex 917 + prompt "Alignment value to which kernel should be aligned" if X86_32 918 + default "0x100000" if X86_32 919 + default "0x200000" if X86_64 920 range 0x2000 0x400000 921 help 922 This value puts the alignment restrictions on physical address 923 + where kernel is loaded and run from. Kernel is compiled for an 924 + address which meets above alignment restriction. 925 926 + If bootloader loads the kernel at a non-aligned address and 927 + CONFIG_RELOCATABLE is set, kernel will move itself to nearest 928 + address aligned to above value and run from there. 929 930 + If bootloader loads the kernel at a non-aligned address and 931 + CONFIG_RELOCATABLE is not set, kernel will ignore the run time 932 + load address and decompress itself to the address it has been 933 + compiled for and run from there. The address for which kernel is 934 + compiled already meets above alignment restrictions. Hence the 935 + end result is that kernel runs from a physical address meeting 936 above alignment restrictions. 937 938 Don't change this unless you know what you are doing. ··· 938 Say Y here to experiment with turning CPUs off and on, and to 939 enable suspend on SMP systems. CPUs can be controlled through 940 /sys/devices/system/cpu. 941 + Say N if you want to disable CPU hotplug and don't need to 942 + suspend. 943 944 config COMPAT_VDSO 945 bool "Compat VDSO support" 946 default y 947 + depends on X86_32 948 help 949 Map the VDSO to the predictable old-style address too. 950 ---help--- ··· 955 956 config ARCH_ENABLE_MEMORY_HOTPLUG 957 def_bool y 958 + depends on X86_64 || (X86_32 && HIGHMEM) 959 960 + config MEMORY_HOTPLUG_RESERVE 961 + def_bool X86_64 962 + depends on (MEMORY_HOTPLUG && DISCONTIGMEM) 963 + 964 + config HAVE_ARCH_EARLY_PFN_TO_NID 965 + def_bool X86_64 966 + depends on NUMA 967 + 968 + config OUT_OF_LINE_PFN_TO_PAGE 969 + def_bool X86_64 970 + depends on DISCONTIGMEM 971 + 972 + menu "Power management options" 973 depends on !X86_VOYAGER 974 975 + config ARCH_HIBERNATION_HEADER 976 + bool 977 + depends on X86_64 && HIBERNATION 978 + default y 979 + 980 + source "kernel/power/Kconfig" 981 982 source "drivers/acpi/Kconfig" 983 984 menuconfig APM 985 tristate "APM (Advanced Power Management) BIOS support" 986 + depends on X86_32 && PM_SLEEP && !X86_VISWS 987 ---help--- 988 APM is a BIOS specification for saving power using several different 989 techniques. This is mostly useful for battery powered laptops with ··· 1092 1093 endif # APM 1094 1095 + source "arch/x86/kernel/cpu/cpufreq/Kconfig" 1096 1097 source "drivers/cpuidle/Kconfig" 1098 1099 endmenu 1100 1101 + 1102 + menu "Bus options (PCI etc.)" 1103 1104 config PCI 1105 bool "PCI support" if !X86_VISWS ··· 1118 1119 choice 1120 prompt "PCI access mode" 1121 + depends on X86_32 && PCI && !X86_VISWS 1122 default PCI_GOANY 1123 ---help--- 1124 On PCI systems, the BIOS can be used to detect the PCI devices and ··· 1151 1152 config PCI_BIOS 1153 bool 1154 + depends on X86_32 && !X86_VISWS && PCI && (PCI_GOBIOS || PCI_GOANY) 1155 default y 1156 1157 + # x86-64 doesn't support PCI BIOS access from long mode so always go direct. 1158 config PCI_DIRECT 1159 bool 1160 + depends on PCI && (X86_64 || (PCI_GODIRECT || PCI_GOANY) || X86_VISWS) 1161 default y 1162 1163 config PCI_MMCONFIG 1164 bool 1165 + depends on X86_32 && PCI && ACPI && (PCI_GOMMCONFIG || PCI_GOANY) 1166 default y 1167 1168 config PCI_DOMAINS ··· 1169 depends on PCI 1170 default y 1171 1172 + config PCI_MMCONFIG 1173 + bool "Support mmconfig PCI config space access" 1174 + depends on X86_64 && PCI && ACPI 1175 + 1176 + config DMAR 1177 + bool "Support for DMA Remapping Devices (EXPERIMENTAL)" 1178 + depends on X86_64 && PCI_MSI && ACPI && EXPERIMENTAL 1179 + help 1180 + DMA remapping (DMAR) devices support enables independent address 1181 + translations for Direct Memory Access (DMA) from devices. 1182 + These DMA remapping devices are reported via ACPI tables 1183 + and include PCI device scope covered by these DMA 1184 + remapping devices. 1185 + 1186 + config DMAR_GFX_WA 1187 + bool "Support for Graphics workaround" 1188 + depends on DMAR 1189 + default y 1190 + help 1191 + Current Graphics drivers tend to use physical address 1192 + for DMA and avoid using DMA APIs. Setting this config 1193 + option permits the IOMMU driver to set a unity map for 1194 + all the OS-visible memory. Hence the driver can continue 1195 + to use physical addresses for DMA. 1196 + 1197 + config DMAR_FLOPPY_WA 1198 + bool 1199 + depends on DMAR 1200 + default y 1201 + help 1202 + Floppy disk drivers are know to bypass DMA API calls 1203 + thereby failing to work when IOMMU is enabled. This 1204 + workaround will setup a 1:1 mapping for the first 1205 + 16M to make floppy (an ISA device) work. 1206 + 1207 source "drivers/pci/pcie/Kconfig" 1208 1209 source "drivers/pci/Kconfig" 1210 1211 + # x86_64 have no ISA slots, but do have ISA-style DMA. 1212 config ISA_DMA_API 1213 bool 1214 default y 1215 + 1216 + if X86_32 1217 1218 config ISA 1219 bool "ISA support" ··· 1248 MFGPTs have a better resolution and max interval than the 1249 generic PIT, and are suitable for use as high-res timers. 1250 1251 + endif # X86_32 1252 + 1253 config K8_NB 1254 def_bool y 1255 + depends on AGP_AMD64 || (X86_64 && (GART_IOMMU || (PCI && NUMA))) 1256 1257 source "drivers/pcmcia/Kconfig" 1258 ··· 1258 1259 endmenu 1260 1261 + 1262 + menu "Executable file formats / Emulations" 1263 1264 source "fs/Kconfig.binfmt" 1265 1266 + config IA32_EMULATION 1267 + bool "IA32 Emulation" 1268 + depends on X86_64 1269 + help 1270 + Include code to run 32-bit programs under a 64-bit kernel. You should 1271 + likely turn this on, unless you're 100% sure that you don't have any 1272 + 32-bit programs left. 1273 + 1274 + config IA32_AOUT 1275 + tristate "IA32 a.out support" 1276 + depends on IA32_EMULATION 1277 + help 1278 + Support old a.out binaries in the 32bit emulation. 1279 + 1280 + config COMPAT 1281 + bool 1282 + depends on IA32_EMULATION 1283 + default y 1284 + 1285 + config COMPAT_FOR_U64_ALIGNMENT 1286 + def_bool COMPAT 1287 + depends on X86_64 1288 + 1289 + config SYSVIPC_COMPAT 1290 + bool 1291 + depends on X86_64 && COMPAT && SYSVIPC 1292 + default y 1293 + 1294 endmenu 1295 + 1296 1297 source "net/Kconfig" 1298 1299 source "drivers/Kconfig" 1300 + 1301 + source "drivers/firmware/Kconfig" 1302 1303 source "fs/Kconfig" 1304 ··· 1279 source "crypto/Kconfig" 1280 1281 source "lib/Kconfig"
-839
arch/x86/Kconfig.x86_64
··· 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 - 10 - mainmenu "Linux Kernel Configuration" 11 - 12 - config 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 - 20 - config 64BIT 21 - def_bool y 22 - 23 - config X86 24 - bool 25 - default y 26 - 27 - config GENERIC_TIME 28 - bool 29 - default y 30 - 31 - config GENERIC_TIME_VSYSCALL 32 - bool 33 - default y 34 - 35 - config GENERIC_CMOS_UPDATE 36 - bool 37 - default y 38 - 39 - config CLOCKSOURCE_WATCHDOG 40 - bool 41 - default y 42 - 43 - config GENERIC_CLOCKEVENTS 44 - bool 45 - default y 46 - 47 - config GENERIC_CLOCKEVENTS_BROADCAST 48 - bool 49 - default y 50 - 51 - config ZONE_DMA32 52 - bool 53 - default y 54 - 55 - config LOCKDEP_SUPPORT 56 - bool 57 - default y 58 - 59 - config STACKTRACE_SUPPORT 60 - bool 61 - default y 62 - 63 - config SEMAPHORE_SLEEPERS 64 - bool 65 - default y 66 - 67 - config MMU 68 - bool 69 - default y 70 - 71 - config ZONE_DMA 72 - bool 73 - default y 74 - 75 - config ISA 76 - bool 77 - 78 - config SBUS 79 - bool 80 - 81 - config RWSEM_GENERIC_SPINLOCK 82 - bool 83 - default y 84 - 85 - config RWSEM_XCHGADD_ALGORITHM 86 - bool 87 - 88 - config GENERIC_HWEIGHT 89 - bool 90 - default y 91 - 92 - config GENERIC_CALIBRATE_DELAY 93 - bool 94 - default y 95 - 96 - config X86_CMPXCHG 97 - bool 98 - default y 99 - 100 - config GENERIC_ISA_DMA 101 - bool 102 - default y 103 - 104 - config GENERIC_IOMAP 105 - bool 106 - default y 107 - 108 - config ARCH_MAY_HAVE_PC_FDC 109 - bool 110 - default y 111 - 112 - config ARCH_POPULATES_NODE_MAP 113 - def_bool y 114 - 115 - config DMI 116 - bool 117 - default y 118 - 119 - config AUDIT_ARCH 120 - bool 121 - default y 122 - 123 - config GENERIC_BUG 124 - bool 125 - default y 126 - depends on BUG 127 - 128 - config ARCH_HAS_ILOG2_U32 129 - bool 130 - default n 131 - 132 - config ARCH_HAS_ILOG2_U64 133 - bool 134 - default n 135 - 136 - source "init/Kconfig" 137 - 138 - 139 - menu "Processor type and features" 140 - 141 - source "kernel/time/Kconfig" 142 - 143 - choice 144 - prompt "Subarchitecture Type" 145 - default X86_PC 146 - 147 - config X86_PC 148 - bool "PC-compatible" 149 - help 150 - Choose this option if your computer is a standard PC or compatible. 151 - 152 - config 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 - 160 - endchoice 161 - 162 - choice 163 - prompt "Processor family" 164 - default GENERIC_CPU 165 - 166 - config MK8 167 - bool "AMD-Opteron/Athlon64" 168 - help 169 - Optimize for AMD Opteron/Athlon64/Hammer/K8 CPUs. 170 - 171 - config 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 - 181 - config 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 - 189 - config GENERIC_CPU 190 - bool "Generic-x86-64" 191 - help 192 - Generic x86-64 CPU. 193 - Run equally well on all x86-64 CPUs. 194 - 195 - endchoice 196 - 197 - # 198 - # Define implied options from the CPU selection here 199 - # 200 - config X86_L1_CACHE_BYTES 201 - int 202 - default "128" if GENERIC_CPU || MPSC 203 - default "64" if MK8 || MCORE2 204 - 205 - config X86_L1_CACHE_SHIFT 206 - int 207 - default "7" if GENERIC_CPU || MPSC 208 - default "6" if MK8 || MCORE2 209 - 210 - config X86_INTERNODE_CACHE_BYTES 211 - int 212 - default "4096" if X86_VSMP 213 - default X86_L1_CACHE_BYTES if !X86_VSMP 214 - 215 - config X86_TSC 216 - bool 217 - default y 218 - 219 - config X86_GOOD_APIC 220 - bool 221 - default y 222 - 223 - config 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 - 241 - config MICROCODE_OLD_INTERFACE 242 - bool 243 - depends on MICROCODE 244 - default y 245 - 246 - config 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 - 255 - config 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 - 263 - config X86_HT 264 - bool 265 - depends on SMP && !MK8 266 - default y 267 - 268 - config MATH_EMULATION 269 - bool 270 - 271 - config MCA 272 - bool 273 - 274 - config EISA 275 - bool 276 - 277 - config X86_IO_APIC 278 - bool 279 - default y 280 - 281 - config X86_LOCAL_APIC 282 - bool 283 - default y 284 - 285 - config 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 - 310 - config 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 - 325 - config 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 - 335 - config 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 - 344 - source "kernel/Kconfig.preempt" 345 - 346 - config 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 - 357 - config 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 - 368 - config 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 - 375 - config 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 - 385 - config 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 - 393 - config ARCH_DISCONTIGMEM_ENABLE 394 - bool 395 - depends on NUMA 396 - default y 397 - 398 - config ARCH_DISCONTIGMEM_DEFAULT 399 - def_bool y 400 - depends on NUMA 401 - 402 - config ARCH_SPARSEMEM_ENABLE 403 - def_bool y 404 - depends on (NUMA || EXPERIMENTAL) 405 - select SPARSEMEM_VMEMMAP_ENABLE 406 - 407 - config ARCH_MEMORY_PROBE 408 - def_bool y 409 - depends on MEMORY_HOTPLUG 410 - 411 - config ARCH_FLATMEM_ENABLE 412 - def_bool y 413 - depends on !NUMA 414 - 415 - source "mm/Kconfig" 416 - 417 - config MEMORY_HOTPLUG_RESERVE 418 - def_bool y 419 - depends on (MEMORY_HOTPLUG && DISCONTIGMEM) 420 - 421 - config HAVE_ARCH_EARLY_PFN_TO_NID 422 - def_bool y 423 - depends on NUMA 424 - 425 - config OUT_OF_LINE_PFN_TO_PAGE 426 - def_bool y 427 - depends on DISCONTIGMEM 428 - 429 - config 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 - 442 - config PHYSICAL_ALIGN 443 - hex 444 - default "0x200000" 445 - 446 - config 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 - 457 - config ARCH_ENABLE_MEMORY_HOTPLUG 458 - def_bool y 459 - 460 - config 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 - 471 - config 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. 478 - config 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 - 495 - config 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 - 513 - config 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 525 - config 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 - 534 - config 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 - 543 - config 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 - 551 - config 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 - 559 - config 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 - 575 - config 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 - 589 - config 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 - 605 - config 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 - 641 - config 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 - 658 - config 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 - 674 - config 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 - 682 - source kernel/Kconfig.hz 683 - 684 - config K8_NB 685 - def_bool y 686 - depends on AGP_AMD64 || GART_IOMMU || (PCI && NUMA) 687 - 688 - endmenu 689 - 690 - # 691 - # Use the generic interrupt handling code in kernel/irq/: 692 - # 693 - config GENERIC_HARDIRQS 694 - bool 695 - default y 696 - 697 - config GENERIC_IRQ_PROBE 698 - bool 699 - default y 700 - 701 - # we have no ISA slots, but we do have ISA-style DMA. 702 - config ISA_DMA_API 703 - bool 704 - default y 705 - 706 - config GENERIC_PENDING_IRQ 707 - bool 708 - depends on GENERIC_HARDIRQS && SMP 709 - default y 710 - 711 - menu "Power management options" 712 - 713 - source kernel/power/Kconfig 714 - 715 - config ARCH_HIBERNATION_HEADER 716 - bool 717 - depends on HIBERNATION 718 - default y 719 - 720 - source "drivers/acpi/Kconfig" 721 - 722 - source "arch/x86/kernel/cpu/cpufreq/Kconfig_64" 723 - 724 - source "drivers/cpuidle/Kconfig" 725 - 726 - endmenu 727 - 728 - menu "Bus options (PCI etc.)" 729 - 730 - config 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. 735 - config PCI_DIRECT 736 - bool 737 - depends on PCI 738 - default y 739 - 740 - config PCI_MMCONFIG 741 - bool "Support mmconfig PCI config space access" 742 - depends on PCI && ACPI 743 - 744 - config PCI_DOMAINS 745 - bool 746 - depends on PCI 747 - default y 748 - 749 - config 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 - 759 - config 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 - 770 - config 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 - 780 - source "drivers/pci/pcie/Kconfig" 781 - 782 - source "drivers/pci/Kconfig" 783 - 784 - source "drivers/pcmcia/Kconfig" 785 - 786 - source "drivers/pci/hotplug/Kconfig" 787 - 788 - endmenu 789 - 790 - 791 - menu "Executable file formats / Emulations" 792 - 793 - source "fs/Kconfig.binfmt" 794 - 795 - config 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 - 802 - config 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 - 808 - config COMPAT 809 - bool 810 - depends on IA32_EMULATION 811 - default y 812 - 813 - config COMPAT_FOR_U64_ALIGNMENT 814 - def_bool COMPAT 815 - 816 - config SYSVIPC_COMPAT 817 - bool 818 - depends on COMPAT && SYSVIPC 819 - default y 820 - 821 - endmenu 822 - 823 - source "net/Kconfig" 824 - 825 - source drivers/Kconfig 826 - 827 - source "drivers/firmware/Kconfig" 828 - 829 - source fs/Kconfig 830 - 831 - source "kernel/Kconfig.instrumentation" 832 - 833 - source "arch/x86/Kconfig.debug" 834 - 835 - source "security/Kconfig" 836 - 837 - source "crypto/Kconfig" 838 - 839 - source "lib/Kconfig"
···
+7 -3
arch/x86/Makefile
··· 1 # Unified Makefile for i386 and x86_64 2 3 # select defconfig based on actual architecture 4 - KBUILD_DEFCONFIG := $(ARCH)_defconfig 5 6 - # # No need to remake these files 7 $(srctree)/arch/x86/Makefile%: ; 8 9 - ifeq ($(ARCH),i386) 10 include $(srctree)/arch/x86/Makefile_32 11 else 12 include $(srctree)/arch/x86/Makefile_64
··· 1 # Unified Makefile for i386 and x86_64 2 3 # select defconfig based on actual architecture 4 + ifeq ($(ARCH),x86) 5 + KBUILD_DEFCONFIG := i386_defconfig 6 + else 7 + KBUILD_DEFCONFIG := $(ARCH)_defconfig 8 + endif 9 10 + # No need to remake these files 11 $(srctree)/arch/x86/Makefile%: ; 12 13 + ifeq ($(CONFIG_X86_32),y) 14 include $(srctree)/arch/x86/Makefile_32 15 else 16 include $(srctree)/arch/x86/Makefile_64
+4 -4
arch/x86/Makefile_32
··· 160 $(Q)$(MAKE) $(clean)=arch/x86/boot 161 162 define archhelp 163 - echo '* bzImage - Compressed kernel image (arch/$(ARCH)/boot/bzImage)' 164 echo ' install - Install kernel using' 165 echo ' (your) ~/bin/installkernel or' 166 echo ' (distribution) /sbin/installkernel or' ··· 170 echo ' isoimage - Create a boot CD-ROM image' 171 endef 172 173 - CLEAN_FILES += arch/$(ARCH)/boot/fdimage \ 174 - arch/$(ARCH)/boot/image.iso \ 175 - arch/$(ARCH)/boot/mtools.conf
··· 160 $(Q)$(MAKE) $(clean)=arch/x86/boot 161 162 define archhelp 163 + echo '* bzImage - Compressed kernel image (arch/x86/boot/bzImage)' 164 echo ' install - Install kernel using' 165 echo ' (your) ~/bin/installkernel or' 166 echo ' (distribution) /sbin/installkernel or' ··· 170 echo ' isoimage - Create a boot CD-ROM image' 171 endef 172 173 + CLEAN_FILES += arch/x86/boot/fdimage \ 174 + arch/x86/boot/image.iso \ 175 + arch/x86/boot/mtools.conf
+4 -4
arch/x86/Makefile_64
··· 127 $(Q)$(MAKE) $(clean)=$(boot) 128 129 define archhelp 130 - echo '* bzImage - Compressed kernel image (arch/$(ARCH)/boot/bzImage)' 131 echo ' install - Install kernel using' 132 echo ' (your) ~/bin/installkernel or' 133 echo ' (distribution) /sbin/installkernel or' ··· 137 echo ' isoimage - Create a boot CD-ROM image' 138 endef 139 140 - CLEAN_FILES += arch/$(ARCH)/boot/fdimage \ 141 - arch/$(ARCH)/boot/image.iso \ 142 - arch/$(ARCH)/boot/mtools.conf 143 144
··· 127 $(Q)$(MAKE) $(clean)=$(boot) 128 129 define archhelp 130 + echo '* bzImage - Compressed kernel image (arch/x86/boot/bzImage)' 131 echo ' install - Install kernel using' 132 echo ' (your) ~/bin/installkernel or' 133 echo ' (distribution) /sbin/installkernel or' ··· 137 echo ' isoimage - Create a boot CD-ROM image' 138 endef 139 140 + CLEAN_FILES += arch/x86/boot/fdimage \ 141 + arch/x86/boot/image.iso \ 142 + arch/x86/boot/mtools.conf 143 144
+3 -3
arch/x86/boot/Makefile
··· 49 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. 52 - cflags-i386 := 53 - cflags-x86_64 := -m32 54 KBUILD_CFLAGS := $(LINUXINCLUDE) -g -Os -D_SETUP -D__KERNEL__ \ 55 - $(cflags-$(ARCH)) \ 56 -Wall -Wstrict-prototypes \ 57 -march=i386 -mregparm=3 \ 58 -include $(srctree)/$(src)/code16gcc.h \
··· 49 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. 52 + cflags-$(CONFIG_X86_32) := 53 + cflags-$(CONFIG_X86_64) := -m32 54 KBUILD_CFLAGS := $(LINUXINCLUDE) -g -Os -D_SETUP -D__KERNEL__ \ 55 + $(cflags-y) \ 56 -Wall -Wstrict-prototypes \ 57 -march=i386 -mregparm=3 \ 58 -include $(srctree)/$(src)/code16gcc.h \
-6
arch/x86/boot/cpucheck.c
··· 42 static u32 cpu_vendor[3]; 43 static u32 err_flags[NCAPINTS]; 44 45 - #ifdef CONFIG_X86_64 46 - static const int req_level = 64; 47 - #elif defined(CONFIG_X86_MINIMUM_CPU_FAMILY) 48 static const int req_level = CONFIG_X86_MINIMUM_CPU_FAMILY; 49 - #else 50 - static const int req_level = 3; 51 - #endif 52 53 static const u32 req_flags[NCAPINTS] = 54 {
··· 42 static u32 cpu_vendor[3]; 43 static u32 err_flags[NCAPINTS]; 44 45 static const int req_level = CONFIG_X86_MINIMUM_CPU_FAMILY; 46 47 static const u32 req_flags[NCAPINTS] = 48 {
+2 -1
arch/x86/kernel/Makefile_32
··· 3 # 4 5 extra-y := head_32.o init_task.o vmlinux.lds 6 7 obj-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 \ ··· 61 cmd_syscall = $(CC) -m elf_i386 -nostdlib $(SYSCFLAGS_$(@F)) \ 62 -Wl,-T,$(filter-out FORCE,$^) -o $@ 63 64 - export CPPFLAGS_vsyscall_32.lds += -P -C -U$(ARCH) 65 66 vsyscall-flags = -shared -s -Wl,-soname=linux-gate.so.1 \ 67 $(call ld-option, -Wl$(comma)--hash-style=sysv)
··· 3 # 4 5 extra-y := head_32.o init_task.o vmlinux.lds 6 + CPPFLAGS_vmlinux.lds += -Ui386 7 8 obj-y := process_32.o signal_32.o entry_32.o traps_32.o irq_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 cmd_syscall = $(CC) -m elf_i386 -nostdlib $(SYSCFLAGS_$(@F)) \ 61 -Wl,-T,$(filter-out FORCE,$^) -o $@ 62 63 + export CPPFLAGS_vsyscall_32.lds += -P -C -Ui386 64 65 vsyscall-flags = -shared -s -Wl,-soname=linux-gate.so.1 \ 66 $(call ld-option, -Wl$(comma)--hash-style=sysv)
+2
arch/x86/kernel/Makefile_64
··· 3 # 4 5 extra-y := head_64.o head64.o init_task.o vmlinux.lds 6 EXTRA_AFLAGS := -traditional 7 obj-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 \ 9 x8664_ksyms_64.o i387_64.o syscall_64.o vsyscall_64.o \
··· 3 # 4 5 extra-y := head_64.o head64.o init_task.o vmlinux.lds 6 + CPPFLAGS_vmlinux.lds += -Ux86_64 7 EXTRA_AFLAGS := -traditional 8 + 9 obj-y := process_64.o signal_64.o entry_64.o traps_64.o irq_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 \ 11 x8664_ksyms_64.o i387_64.o syscall_64.o vsyscall_64.o \
+47 -22
arch/x86/kernel/cpu/cpufreq/Kconfig_32 arch/x86/kernel/cpu/cpufreq/Kconfig
··· 19 Processor Performance States. 20 This driver also supports Intel Enhanced Speedstep. 21 22 For details, take a look at <file:Documentation/cpu-freq/>. 23 24 If in doubt, say N. ··· 29 config ELAN_CPUFREQ 30 tristate "AMD Elan SC400 and SC410" 31 select CPU_FREQ_TABLE 32 - depends on X86_ELAN 33 ---help--- 34 This adds the CPUFreq driver for AMD Elan SC400 and SC410 35 processors. ··· 45 config SC520_CPUFREQ 46 tristate "AMD Elan SC520" 47 select CPU_FREQ_TABLE 48 - depends on X86_ELAN 49 ---help--- 50 This adds the CPUFreq driver for AMD Elan SC520 processor. 51 ··· 57 config X86_POWERNOW_K6 58 tristate "AMD Mobile K6-2/K6-3 PowerNow!" 59 select CPU_FREQ_TABLE 60 help 61 This adds the CPUFreq driver for mobile AMD K6-2+ and mobile 62 AMD K6-3+ processors. ··· 69 config X86_POWERNOW_K7 70 tristate "AMD Mobile Athlon/Duron PowerNow!" 71 select CPU_FREQ_TABLE 72 help 73 This adds the CPUFreq driver for mobile AMD K7 mobile processors. 74 ··· 81 bool 82 depends on X86_POWERNOW_K7 && ACPI_PROCESSOR 83 depends on !(X86_POWERNOW_K7 = y && ACPI_PROCESSOR = m) 84 default y 85 86 config X86_POWERNOW_K8 87 tristate "AMD Opteron/Athlon64 PowerNow!" 88 select CPU_FREQ_TABLE 89 - depends on EXPERIMENTAL 90 help 91 This adds the CPUFreq driver for mobile AMD Opteron/Athlon64 processors. 92 93 For details, take a look at <file:Documentation/cpu-freq/>. 94 95 If in doubt, say N. 96 97 config X86_POWERNOW_K8_ACPI 98 - bool "ACPI Support" 99 - select ACPI_PROCESSOR 100 - depends on ACPI && X86_POWERNOW_K8 101 default y 102 help 103 This provides access to the K8s Processor Performance States via ACPI. ··· 113 114 config X86_GX_SUSPMOD 115 tristate "Cyrix MediaGX/NatSemi Geode Suspend Modulation" 116 - depends on PCI 117 help 118 This add the CPUFreq driver for NatSemi Geode processors which 119 support suspend modulation. ··· 123 If in doubt, say N. 124 125 config X86_SPEEDSTEP_CENTRINO 126 - tristate "Intel Enhanced SpeedStep" 127 select CPU_FREQ_TABLE 128 - select X86_SPEEDSTEP_CENTRINO_TABLE 129 help 130 This adds the CPUFreq driver for Enhanced SpeedStep enabled 131 - mobile CPUs. This means Intel Pentium M (Centrino) CPUs. However, 132 - you also need to say Y to "Use ACPI tables to decode..." below 133 - [which might imply enabling ACPI] if you want to use this driver 134 - on non-Banias CPUs. 135 136 For details, take a look at <file:Documentation/cpu-freq/>. 137 ··· 144 145 config X86_SPEEDSTEP_CENTRINO_TABLE 146 bool "Built-in tables for Banias CPUs" 147 - depends on X86_SPEEDSTEP_CENTRINO 148 default y 149 help 150 Use built-in tables for Banias CPUs if ACPI encoding ··· 155 config X86_SPEEDSTEP_ICH 156 tristate "Intel Speedstep on ICH-M chipsets (ioport interface)" 157 select CPU_FREQ_TABLE 158 help 159 This adds the CPUFreq driver for certain mobile Intel Pentium III 160 (Coppermine), all mobile Intel Pentium III-M (Tualatin) and all ··· 169 config X86_SPEEDSTEP_SMI 170 tristate "Intel SpeedStep on 440BX/ZX/MX chipsets (SMI interface)" 171 select CPU_FREQ_TABLE 172 - depends on EXPERIMENTAL 173 help 174 This adds the CPUFreq driver for certain mobile Intel Pentium III 175 (Coppermine), all mobile Intel Pentium III-M (Tualatin) ··· 184 select CPU_FREQ_TABLE 185 help 186 This adds the CPUFreq driver for Intel Pentium 4 / XEON 187 - processors. 188 189 For details, take a look at <file:Documentation/cpu-freq/>. 190 191 - If in doubt, say N. 192 193 config X86_CPUFREQ_NFORCE2 194 tristate "nVidia nForce2 FSB changing" 195 - depends on EXPERIMENTAL 196 help 197 This adds the CPUFreq driver for FSB changing on nVidia nForce2 198 platforms. ··· 212 213 config X86_LONGRUN 214 tristate "Transmeta LongRun" 215 help 216 This adds the CPUFreq driver for Transmeta Crusoe and Efficeon processors 217 which support LongRun. ··· 224 config X86_LONGHAUL 225 tristate "VIA Cyrix III Longhaul" 226 select CPU_FREQ_TABLE 227 - depends on ACPI_PROCESSOR 228 help 229 This adds the CPUFreq driver for VIA Samuel/CyrixIII, 230 VIA Cyrix Samuel/C3, VIA Cyrix Ezra and VIA Cyrix Ezra-T ··· 237 config X86_E_POWERSAVER 238 tristate "VIA C7 Enhanced PowerSaver (EXPERIMENTAL)" 239 select CPU_FREQ_TABLE 240 - depends on EXPERIMENTAL 241 help 242 This adds the CPUFreq driver for VIA C7 processors. 243 ··· 258 259 config X86_SPEEDSTEP_LIB 260 tristate 261 - default X86_SPEEDSTEP_ICH || X86_SPEEDSTEP_SMI || X86_P4_CLOCKMOD 262 263 config X86_SPEEDSTEP_RELAXED_CAP_CHECK 264 bool "Relaxed speedstep capability checks" 265 - depends on (X86_SPEEDSTEP_SMI || X86_SPEEDSTEP_ICH) 266 help 267 Don't perform all checks for a speedstep capable system which would 268 normally be done. Some ancient or strange systems, though speedstep
··· 19 Processor Performance States. 20 This driver also supports Intel Enhanced Speedstep. 21 22 + To compile this driver as a module, choose M here: the 23 + module will be called acpi-cpufreq. 24 + 25 For details, take a look at <file:Documentation/cpu-freq/>. 26 27 If in doubt, say N. ··· 26 config ELAN_CPUFREQ 27 tristate "AMD Elan SC400 and SC410" 28 select CPU_FREQ_TABLE 29 + depends on X86_32 && X86_ELAN 30 ---help--- 31 This adds the CPUFreq driver for AMD Elan SC400 and SC410 32 processors. ··· 42 config SC520_CPUFREQ 43 tristate "AMD Elan SC520" 44 select CPU_FREQ_TABLE 45 + depends on X86_32 && X86_ELAN 46 ---help--- 47 This adds the CPUFreq driver for AMD Elan SC520 processor. 48 ··· 54 config X86_POWERNOW_K6 55 tristate "AMD Mobile K6-2/K6-3 PowerNow!" 56 select CPU_FREQ_TABLE 57 + depends on X86_32 58 help 59 This adds the CPUFreq driver for mobile AMD K6-2+ and mobile 60 AMD K6-3+ processors. ··· 65 config X86_POWERNOW_K7 66 tristate "AMD Mobile Athlon/Duron PowerNow!" 67 select CPU_FREQ_TABLE 68 + depends on X86_32 69 help 70 This adds the CPUFreq driver for mobile AMD K7 mobile processors. 71 ··· 76 bool 77 depends on X86_POWERNOW_K7 && ACPI_PROCESSOR 78 depends on !(X86_POWERNOW_K7 = y && ACPI_PROCESSOR = m) 79 + depends on X86_32 80 default y 81 82 config X86_POWERNOW_K8 83 tristate "AMD Opteron/Athlon64 PowerNow!" 84 select CPU_FREQ_TABLE 85 help 86 This adds the CPUFreq driver for mobile AMD Opteron/Athlon64 processors. 87 + 88 + To compile this driver as a module, choose M here: the 89 + module will be called powernow-k8. 90 91 For details, take a look at <file:Documentation/cpu-freq/>. 92 93 If in doubt, say N. 94 95 config X86_POWERNOW_K8_ACPI 96 + bool 97 + prompt "ACPI Support" if X86_32 98 + depends on ACPI && X86_POWERNOW_K8 && ACPI_PROCESSOR 99 + depends on !(X86_POWERNOW_K8 = y && ACPI_PROCESSOR = m) 100 default y 101 help 102 This provides access to the K8s Processor Performance States via ACPI. ··· 104 105 config X86_GX_SUSPMOD 106 tristate "Cyrix MediaGX/NatSemi Geode Suspend Modulation" 107 + depends on X86_32 && PCI 108 help 109 This add the CPUFreq driver for NatSemi Geode processors which 110 support suspend modulation. ··· 114 If in doubt, say N. 115 116 config X86_SPEEDSTEP_CENTRINO 117 + tristate "Intel Enhanced SpeedStep (deprecated)" 118 select CPU_FREQ_TABLE 119 + select X86_SPEEDSTEP_CENTRINO_TABLE if X86_32 120 + depends on X86_32 || (X86_64 && ACPI_PROCESSOR) 121 help 122 + This is deprecated and this functionality is now merged into 123 + acpi_cpufreq (X86_ACPI_CPUFREQ). Use that driver instead of 124 + speedstep_centrino. 125 This adds the CPUFreq driver for Enhanced SpeedStep enabled 126 + mobile CPUs. This means Intel Pentium M (Centrino) CPUs 127 + or 64bit enabled Intel Xeons. 128 + 129 + To compile this driver as a module, choose M here: the 130 + module will be called speedstep-centrino. 131 132 For details, take a look at <file:Documentation/cpu-freq/>. 133 ··· 130 131 config X86_SPEEDSTEP_CENTRINO_TABLE 132 bool "Built-in tables for Banias CPUs" 133 + depends on X86_32 && X86_SPEEDSTEP_CENTRINO 134 default y 135 help 136 Use built-in tables for Banias CPUs if ACPI encoding ··· 141 config X86_SPEEDSTEP_ICH 142 tristate "Intel Speedstep on ICH-M chipsets (ioport interface)" 143 select CPU_FREQ_TABLE 144 + depends on X86_32 145 help 146 This adds the CPUFreq driver for certain mobile Intel Pentium III 147 (Coppermine), all mobile Intel Pentium III-M (Tualatin) and all ··· 154 config X86_SPEEDSTEP_SMI 155 tristate "Intel SpeedStep on 440BX/ZX/MX chipsets (SMI interface)" 156 select CPU_FREQ_TABLE 157 + depends on X86_32 && EXPERIMENTAL 158 help 159 This adds the CPUFreq driver for certain mobile Intel Pentium III 160 (Coppermine), all mobile Intel Pentium III-M (Tualatin) ··· 169 select CPU_FREQ_TABLE 170 help 171 This adds the CPUFreq driver for Intel Pentium 4 / XEON 172 + processors. When enabled it will lower CPU temperature by skipping 173 + clocks. 174 + 175 + This driver should be only used in exceptional 176 + circumstances when very low power is needed because it causes severe 177 + slowdowns and noticeable latencies. Normally Speedstep should be used 178 + instead. 179 + 180 + To compile this driver as a module, choose M here: the 181 + module will be called p4-clockmod. 182 183 For details, take a look at <file:Documentation/cpu-freq/>. 184 185 + Unless you are absolutely sure say N. 186 187 config X86_CPUFREQ_NFORCE2 188 tristate "nVidia nForce2 FSB changing" 189 + depends on X86_32 && EXPERIMENTAL 190 help 191 This adds the CPUFreq driver for FSB changing on nVidia nForce2 192 platforms. ··· 188 189 config X86_LONGRUN 190 tristate "Transmeta LongRun" 191 + depends on X86_32 192 help 193 This adds the CPUFreq driver for Transmeta Crusoe and Efficeon processors 194 which support LongRun. ··· 199 config X86_LONGHAUL 200 tristate "VIA Cyrix III Longhaul" 201 select CPU_FREQ_TABLE 202 + depends on X86_32 && ACPI_PROCESSOR 203 help 204 This adds the CPUFreq driver for VIA Samuel/CyrixIII, 205 VIA Cyrix Samuel/C3, VIA Cyrix Ezra and VIA Cyrix Ezra-T ··· 212 config X86_E_POWERSAVER 213 tristate "VIA C7 Enhanced PowerSaver (EXPERIMENTAL)" 214 select CPU_FREQ_TABLE 215 + depends on X86_32 && EXPERIMENTAL 216 help 217 This adds the CPUFreq driver for VIA C7 processors. 218 ··· 233 234 config X86_SPEEDSTEP_LIB 235 tristate 236 + default (X86_SPEEDSTEP_ICH || X86_SPEEDSTEP_SMI || X86_P4_CLOCKMOD) 237 238 config X86_SPEEDSTEP_RELAXED_CAP_CHECK 239 bool "Relaxed speedstep capability checks" 240 + depends on X86_32 && (X86_SPEEDSTEP_SMI || X86_SPEEDSTEP_ICH) 241 help 242 Don't perform all checks for a speedstep capable system which would 243 normally be done. Some ancient or strange systems, though speedstep
-108
arch/x86/kernel/cpu/cpufreq/Kconfig_64
··· 1 - # 2 - # CPU Frequency scaling 3 - # 4 - 5 - menu "CPU Frequency scaling" 6 - 7 - source "drivers/cpufreq/Kconfig" 8 - 9 - if CPU_FREQ 10 - 11 - comment "CPUFreq processor drivers" 12 - 13 - config 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 - 26 - config 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 - 32 - config 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 - 51 - config 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 - 67 - comment "shared options" 68 - 69 - config 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 - 80 - config 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 - 102 - config X86_SPEEDSTEP_LIB 103 - tristate 104 - default X86_P4_CLOCKMOD 105 - 106 - endif 107 - 108 - endmenu
···
+1 -1
arch/x86/vdso/Makefile
··· 20 cmd_syscall = $(CC) -m elf_x86_64 -nostdlib $(SYSCFLAGS_$(@F)) \ 21 -Wl,-T,$(filter-out FORCE,$^) -o $@ 22 23 - export CPPFLAGS_vdso.lds += -P -C -U$(ARCH) 24 25 vdso-flags = -fPIC -shared -Wl,-soname=linux-vdso.so.1 \ 26 $(call ld-option, -Wl$(comma)--hash-style=sysv) \
··· 20 cmd_syscall = $(CC) -m elf_x86_64 -nostdlib $(SYSCFLAGS_$(@F)) \ 21 -Wl,-T,$(filter-out FORCE,$^) -o $@ 22 23 + export CPPFLAGS_vdso.lds += -P -C 24 25 vdso-flags = -fPIC -shared -Wl,-soname=linux-vdso.so.1 \ 26 $(call ld-option, -Wl$(comma)--hash-style=sysv) \
+1 -6
scripts/kconfig/Makefile
··· 4 5 PHONY += oldconfig xconfig gconfig menuconfig config silentoldconfig update-po-config 6 7 - # If a arch/$(SRCARCH)/Kconfig.$(ARCH) file exist use it 8 - ifneq ($(wildcard $(srctree)/arch/$(SRCARCH)/Kconfig.$(ARCH)),) 9 - Kconfig := arch/$(SRCARCH)/Kconfig.$(ARCH) 10 - else 11 - Kconfig := arch/$(SRCARCH)/Kconfig 12 - endif 13 14 xconfig: $(obj)/qconf 15 $< $(Kconfig)
··· 4 5 PHONY += oldconfig xconfig gconfig menuconfig config silentoldconfig update-po-config 6 7 + Kconfig := arch/$(SRCARCH)/Kconfig 8 9 xconfig: $(obj)/qconf 10 $< $(Kconfig)
+1
scripts/kconfig/conf.c
··· 591 conf_read_simple(name, S_DEF_USER); 592 else if (!stat("all.config", &tmpstat)) 593 conf_read_simple("all.config", S_DEF_USER); 594 break; 595 default: 596 break;
··· 591 conf_read_simple(name, S_DEF_USER); 592 else if (!stat("all.config", &tmpstat)) 593 conf_read_simple("all.config", S_DEF_USER); 594 + conf_set_env_sym("K64BIT", "64BIT", S_DEF_USER); 595 break; 596 default: 597 break;
+91 -55
scripts/kconfig/confdata.c
··· 83 return name; 84 } 85 86 int conf_read_simple(const char *name, int def) 87 { 88 FILE *in = NULL; ··· 302 conf_warning("trying to reassign symbol %s", sym->name); 303 break; 304 } 305 - switch (sym->type) { 306 - case S_TRISTATE: 307 - if (p[0] == 'm') { 308 - sym->def[def].tri = mod; 309 - sym->flags |= def_flags; 310 - break; 311 - } 312 - case S_BOOLEAN: 313 - if (p[0] == 'y') { 314 - sym->def[def].tri = yes; 315 - sym->flags |= def_flags; 316 - break; 317 - } 318 - if (p[0] == 'n') { 319 - sym->def[def].tri = no; 320 - sym->flags |= def_flags; 321 - break; 322 - } 323 - conf_warning("symbol value '%s' invalid for %s", p, sym->name); 324 - break; 325 - case S_OTHER: 326 - if (*p != '"') { 327 - for (p2 = p; *p2 && !isspace(*p2); p2++) 328 - ; 329 - sym->type = S_STRING; 330 - goto done; 331 - } 332 - case S_STRING: 333 - if (*p++ != '"') 334 - break; 335 - for (p2 = p; (p2 = strpbrk(p2, "\"\\")); p2++) { 336 - if (*p2 == '"') { 337 - *p2 = 0; 338 - break; 339 - } 340 - memmove(p2, p2 + 1, strlen(p2)); 341 - } 342 - if (!p2) { 343 - conf_warning("invalid string found"); 344 - continue; 345 - } 346 - case S_INT: 347 - case S_HEX: 348 - done: 349 - if (sym_string_valid(sym, p)) { 350 - sym->def[def].val = strdup(p); 351 - sym->flags |= def_flags; 352 - } else { 353 - conf_warning("symbol value '%s' invalid for %s", p, sym->name); 354 - continue; 355 - } 356 - break; 357 - default: 358 - ; 359 - } 360 break; 361 case '\r': 362 case '\n':
··· 83 return name; 84 } 85 86 + static int conf_set_sym_val(struct symbol *sym, int def, int def_flags, char *p) 87 + { 88 + char *p2; 89 + 90 + switch (sym->type) { 91 + case S_TRISTATE: 92 + if (p[0] == 'm') { 93 + sym->def[def].tri = mod; 94 + sym->flags |= def_flags; 95 + break; 96 + } 97 + case S_BOOLEAN: 98 + if (p[0] == 'y') { 99 + sym->def[def].tri = yes; 100 + sym->flags |= def_flags; 101 + break; 102 + } 103 + if (p[0] == 'n') { 104 + sym->def[def].tri = no; 105 + sym->flags |= def_flags; 106 + break; 107 + } 108 + conf_warning("symbol value '%s' invalid for %s", p, sym->name); 109 + break; 110 + case S_OTHER: 111 + if (*p != '"') { 112 + for (p2 = p; *p2 && !isspace(*p2); p2++) 113 + ; 114 + sym->type = S_STRING; 115 + goto done; 116 + } 117 + case S_STRING: 118 + if (*p++ != '"') 119 + break; 120 + for (p2 = p; (p2 = strpbrk(p2, "\"\\")); p2++) { 121 + if (*p2 == '"') { 122 + *p2 = 0; 123 + break; 124 + } 125 + memmove(p2, p2 + 1, strlen(p2)); 126 + } 127 + if (!p2) { 128 + conf_warning("invalid string found"); 129 + return 1; 130 + } 131 + case S_INT: 132 + case S_HEX: 133 + done: 134 + if (sym_string_valid(sym, p)) { 135 + sym->def[def].val = strdup(p); 136 + sym->flags |= def_flags; 137 + } else { 138 + conf_warning("symbol value '%s' invalid for %s", p, sym->name); 139 + return 1; 140 + } 141 + break; 142 + default: 143 + ; 144 + } 145 + return 0; 146 + } 147 + 148 + /* Read an environment variable and assign the value to the symbol */ 149 + int conf_set_env_sym(const char *env, const char *symname, int def) 150 + { 151 + struct symbol *sym; 152 + char *p; 153 + int def_flags; 154 + 155 + p = getenv(env); 156 + if (p) { 157 + char warning[200]; 158 + sprintf(warning, "Environment variable (%s = \"%s\")", env, p); 159 + conf_filename = warning; 160 + def_flags = SYMBOL_DEF << def; 161 + if (def == S_DEF_USER) { 162 + sym = sym_find(symname); 163 + if (!sym) 164 + return 1; 165 + } else { 166 + sym = sym_lookup(symname, 0); 167 + if (sym->type == S_UNKNOWN) 168 + sym->type = S_OTHER; 169 + } 170 + conf_set_sym_val(sym, def, def_flags, p); 171 + } 172 + return 0; 173 + } 174 + 175 int conf_read_simple(const char *name, int def) 176 { 177 FILE *in = NULL; ··· 213 conf_warning("trying to reassign symbol %s", sym->name); 214 break; 215 } 216 + if (conf_set_sym_val(sym, def, def_flags, p)) 217 + continue; 218 break; 219 case '\r': 220 case '\n':
+1
scripts/kconfig/lkc_proto.h
··· 1 2 /* confdata.c */ 3 P(conf_parse,void,(const char *name)); 4 P(conf_read,int,(const char *name)); 5 P(conf_read_simple,int,(const char *name, int)); 6 P(conf_write,int,(const char *name));
··· 1 2 /* confdata.c */ 3 P(conf_parse,void,(const char *name)); 4 + P(conf_set_env_sym,int,(const char *envname, const char *symname, int def)); 5 P(conf_read,int,(const char *name)); 6 P(conf_read_simple,int,(const char *name, int)); 7 P(conf_write,int,(const char *name));