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 197 UTS_MACHINE := $(ARCH) 198 198 SRCARCH := $(ARCH) 199 199 200 - # for i386 and x86_64 we use SRCARCH equal to x86 201 - SRCARCH := $(if $(filter x86_64 i386,$(SRCARCH)),x86,$(SRCARCH)) 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 202 209 203 210 KCONFIG_CONFIG ?= .config 204 211 ··· 341 334 KERNELVERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) 342 335 343 336 export VERSION PATCHLEVEL SUBLEVEL KERNELRELEASE KERNELVERSION 344 - export ARCH SRCARCH CONFIG_SHELL HOSTCC HOSTCFLAGS CROSS_COMPILE AS LD CC 337 + export ARCH SRCARCH K64BIT CONFIG_SHELL HOSTCC HOSTCFLAGS CROSS_COMPILE AS LD CC 345 338 export CPP AR NM STRIP OBJCOPY OBJDUMP MAKE AWK GENKSYMS PERL UTS_MACHINE 346 339 export HOSTCXX HOSTCXXFLAGS LDFLAGS_MODULE CHECK CHECKFLAGS 347 340
+2
README
··· 194 194 "make *config" checks for a file named "all{yes/mod/no/random}.config" 195 195 for symbol values that are to be forced. If this file is not found, 196 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. 197 199 198 200 NOTES on "make config": 199 201 - having unnecessary drivers will make the kernel bigger, and can
+75 -46
arch/x86/Kconfig.cpu
··· 3 3 4 4 choice 5 5 prompt "Processor family" 6 - default M686 6 + default M686 if X86_32 7 + default GENERIC_CPU if X86_64 7 8 8 9 config M386 9 10 bool "386" 10 - depends on !UML 11 + depends on X86_32 && !UML 11 12 ---help--- 12 13 This is the processor type of your CPU. This information is used for 13 14 optimizing purposes. In order to compile a kernel that can run on ··· 50 49 51 50 config M486 52 51 bool "486" 52 + depends on X86_32 53 53 help 54 54 Select this for a 486 series processor, either Intel or one of the 55 55 compatible processors from AMD, Cyrix, IBM, or Intel. Includes DX, ··· 59 57 60 58 config M586 61 59 bool "586/K5/5x86/6x86/6x86MX" 60 + depends on X86_32 62 61 help 63 62 Select this for an 586 or 686 series processor such as the AMD K5, 64 63 the Cyrix 5x86, 6x86 and 6x86MX. This choice does not ··· 67 64 68 65 config M586TSC 69 66 bool "Pentium-Classic" 67 + depends on X86_32 70 68 help 71 69 Select this for a Pentium Classic processor with the RDTSC (Read 72 70 Time Stamp Counter) instruction for benchmarking. 73 71 74 72 config M586MMX 75 73 bool "Pentium-MMX" 74 + depends on X86_32 76 75 help 77 76 Select this for a Pentium with the MMX graphics/multimedia 78 77 extended instructions. 79 78 80 79 config M686 81 80 bool "Pentium-Pro" 81 + depends on X86_32 82 82 help 83 83 Select this for Intel Pentium Pro chips. This enables the use of 84 84 Pentium Pro extended instructions, and disables the init-time guard ··· 89 83 90 84 config MPENTIUMII 91 85 bool "Pentium-II/Celeron(pre-Coppermine)" 86 + depends on X86_32 92 87 help 93 88 Select this for Intel chips based on the Pentium-II and 94 89 pre-Coppermine Celeron core. This option enables an unaligned ··· 99 92 100 93 config MPENTIUMIII 101 94 bool "Pentium-III/Celeron(Coppermine)/Pentium-III Xeon" 95 + depends on X86_32 102 96 help 103 97 Select this for Intel chips based on the Pentium-III and 104 98 Celeron-Coppermine core. This option enables use of some ··· 108 100 109 101 config MPENTIUMM 110 102 bool "Pentium M" 103 + depends on X86_32 111 104 help 112 105 Select this for Intel Pentium M (not Pentium-4 M) 113 106 notebook chips. 114 107 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 108 config MPENTIUM4 123 109 bool "Pentium-4/Celeron(P4-based)/Pentium-4 M/older Xeon" 110 + depends on X86_32 124 111 help 125 112 Select this for Intel Pentium 4 chips. This includes the 126 113 Pentium 4, Pentium D, P4-based Celeron and Xeon, and ··· 151 148 152 149 config MK6 153 150 bool "K6/K6-II/K6-III" 151 + depends on X86_32 154 152 help 155 153 Select this for an AMD K6-family processor. Enables use of 156 154 some extended instructions, and passes appropriate optimization ··· 159 155 160 156 config MK7 161 157 bool "Athlon/Duron/K7" 158 + depends on X86_32 162 159 help 163 160 Select this for an AMD Athlon K7-family processor. Enables use of 164 161 some extended instructions, and passes appropriate optimization ··· 174 169 175 170 config MCRUSOE 176 171 bool "Crusoe" 172 + depends on X86_32 177 173 help 178 174 Select this for a Transmeta Crusoe processor. Treats the processor 179 175 like a 586 with TSC, and sets some GCC optimization flags (like a ··· 182 176 183 177 config MEFFICEON 184 178 bool "Efficeon" 179 + depends on X86_32 185 180 help 186 181 Select this for a Transmeta Efficeon processor. 187 182 188 183 config MWINCHIPC6 189 184 bool "Winchip-C6" 185 + depends on X86_32 190 186 help 191 187 Select this for an IDT Winchip C6 chip. Linux and GCC 192 188 treat this chip as a 586TSC with some extended instructions ··· 196 188 197 189 config MWINCHIP2 198 190 bool "Winchip-2" 191 + depends on X86_32 199 192 help 200 193 Select this for an IDT Winchip-2. Linux and GCC 201 194 treat this chip as a 586TSC with some extended instructions ··· 204 195 205 196 config MWINCHIP3D 206 197 bool "Winchip-2A/Winchip-3" 198 + depends on X86_32 207 199 help 208 200 Select this for an IDT Winchip-2A or 3. Linux and GCC 209 201 treat this chip as a 586TSC with some extended instructions ··· 214 204 215 205 config MGEODEGX1 216 206 bool "GeodeGX1" 207 + depends on X86_32 217 208 help 218 209 Select this for a Geode GX1 (Cyrix MediaGX) chip. 219 210 220 211 config MGEODE_LX 221 212 bool "Geode GX/LX" 213 + depends on X86_32 222 214 help 223 215 Select this for AMD Geode GX and LX processors. 224 216 225 217 config MCYRIXIII 226 218 bool "CyrixIII/VIA-C3" 219 + depends on X86_32 227 220 help 228 221 Select this for a Cyrix III or C3 chip. Presently Linux and GCC 229 222 treat this chip as a generic 586. Whilst the CPU is 686 class, ··· 238 225 239 226 config MVIAC3_2 240 227 bool "VIA C3-2 (Nehemiah)" 228 + depends on X86_32 241 229 help 242 230 Select this for a VIA C3 "Nehemiah". Selecting this enables usage 243 231 of SSE and tells gcc to treat the CPU as a 686. ··· 246 232 247 233 config MVIAC7 248 234 bool "VIA C7" 235 + depends on X86_32 249 236 help 250 237 Select this for a VIA C7. Selecting this uses the correct cache 251 238 shift and tells gcc to treat the CPU as a 686. 252 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 + 253 265 endchoice 254 266 255 267 config X86_GENERIC 256 - bool "Generic x86 support" 257 - help 268 + bool "Generic x86 support" 269 + depends on X86_32 270 + help 258 271 Instead of just including optimizations for the selected 259 272 x86 variant (e.g. PII, Crusoe or Athlon), include some more 260 273 generic optimizations as well. This will make the kernel ··· 294 253 295 254 # 296 255 # Define implied options from the CPU selection here 297 - # 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 + 298 268 config X86_CMPXCHG 299 - bool 300 - depends on !M386 301 - default y 269 + def_bool X86_64 || (X86_32 && !M386) 302 270 303 271 config X86_L1_CACHE_SHIFT 304 272 int 305 - default "7" if MPENTIUM4 || X86_GENERIC 273 + default "7" if MPENTIUM4 || X86_GENERIC || GENERIC_CPU || MPSC 306 274 default "4" if X86_ELAN || M486 || M386 || MGEODEGX1 307 275 default "5" if MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCRUSOE || MEFFICEON || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || M586 || MVIAC3_2 || MGEODE_LX 308 276 default "6" if MK7 || MK8 || MPENTIUMM || MCORE2 || MVIAC7 309 277 310 278 config X86_XADD 311 279 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 280 + depends on X86_32 && !M386 335 281 default y 336 282 337 283 config X86_PPRO_FENCE ··· 333 305 334 306 config X86_WP_WORKS_OK 335 307 bool 336 - depends on !M386 308 + depends on X86_32 && !M386 337 309 default y 338 310 339 311 config X86_INVLPG 340 312 bool 341 - depends on !M386 313 + depends on X86_32 && !M386 342 314 default y 343 315 344 316 config X86_BSWAP 345 317 bool 346 - depends on !M386 318 + depends on X86_32 && !M386 347 319 default y 348 320 349 321 config X86_POPAD_OK 350 322 bool 351 - depends on !M386 323 + depends on X86_32 && !M386 352 324 default y 353 325 354 326 config X86_ALIGNMENT_16 ··· 358 330 359 331 config X86_GOOD_APIC 360 332 bool 361 - depends on MK7 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || MK8 || MEFFICEON || MCORE2 || MVIAC7 333 + depends on MK7 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || MK8 || MEFFICEON || MCORE2 || MVIAC7 || X86_64 362 334 default y 363 335 364 336 config X86_INTEL_USERCOPY ··· 383 355 384 356 config X86_TSC 385 357 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 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 387 359 default y 388 360 389 361 # this should be set for all -march=.. options where the compiler ··· 395 367 396 368 config X86_MINIMUM_CPU_FAMILY 397 369 int 398 - default "4" if X86_XADD || X86_CMPXCHG || X86_BSWAP || X86_WP_WORKS_OK 370 + default "64" if X86_64 371 + default "4" if X86_32 && (X86_XADD || X86_CMPXCHG || X86_BSWAP || X86_WP_WORKS_OK) 399 372 default "3" 400 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 - # 1 + # x86 configuration 2 + mainmenu "Linux Kernel Configuration for x86" 5 3 6 - mainmenu "Linux Kernel Configuration" 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 7 11 8 12 config X86_32 13 + def_bool !64BIT 14 + 15 + config X86_64 16 + def_bool 64BIT 17 + 18 + ### Arch settings 19 + config X86 9 20 bool 10 21 default y 11 - help 12 - This is Linux's home port. Linux was originally native to the Intel 13 - 386, and runs on all the later x86 processors including the Intel 14 - 486, 586, Pentiums, and various instruction-set-compatible chips by 15 - AMD, Cyrix, and others. 16 22 17 23 config GENERIC_TIME 18 24 bool ··· 39 33 config GENERIC_CLOCKEVENTS_BROADCAST 40 34 bool 41 35 default y 42 - depends on X86_LOCAL_APIC 36 + depends on X86_64 || (X86_32 && X86_LOCAL_APIC) 43 37 44 38 config LOCKDEP_SUPPORT 45 39 bool ··· 53 47 bool 54 48 default y 55 49 56 - config X86 57 - bool 58 - default y 59 - 60 50 config MMU 61 51 bool 62 52 default y ··· 63 61 64 62 config QUICKLIST 65 63 bool 66 - default y 64 + default X86_32 67 65 68 66 config SBUS 69 67 bool ··· 93 91 bool 94 92 default y 95 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 96 164 source "init/Kconfig" 97 165 98 166 menu "Processor type and features" ··· 209 137 210 138 config X86_ELAN 211 139 bool "AMD Elan" 140 + depends on X86_32 212 141 help 213 142 Select this for an AMD Elan processor. 214 143 ··· 219 146 220 147 config X86_VOYAGER 221 148 bool "Voyager (NCR)" 149 + depends on X86_32 222 150 select SMP if !BROKEN 223 151 help 224 152 Voyager is an MCA-based 32-way capable SMP architecture proprietary ··· 234 160 bool "NUMAQ (IBM/Sequent)" 235 161 select SMP 236 162 select NUMA 163 + depends on X86_32 237 164 help 238 165 This option is used for getting Linux to run on a (IBM/Sequent) NUMA 239 166 multiquad box. This changes the way that processors are bootstrapped, ··· 244 169 245 170 config X86_SUMMIT 246 171 bool "Summit/EXA (IBM x440)" 247 - depends on SMP 172 + depends on X86_32 && SMP 248 173 help 249 174 This option is needed for IBM systems that use the Summit/EXA chipset. 250 175 In particular, it is needed for the x440. ··· 254 179 255 180 config X86_BIGSMP 256 181 bool "Support for other sub-arch SMP systems with more than 8 CPUs" 257 - depends on SMP 182 + depends on X86_32 && SMP 258 183 help 259 184 This option is needed for the systems that have more than 8 CPUs 260 185 and if the system is not of any sub-arch type above. ··· 263 188 264 189 config X86_VISWS 265 190 bool "SGI 320/540 (Visual Workstation)" 191 + depends on X86_32 266 192 help 267 193 The SGI Visual Workstation series is an IA32-based workstation 268 194 based on SGI systems chips with some legacy PC hardware attached. ··· 275 199 276 200 config X86_GENERICARCH 277 201 bool "Generic architecture (Summit, bigsmp, ES7000, default)" 202 + depends on X86_32 278 203 help 279 204 This option compiles in the Summit, bigsmp, ES7000, default subarchitectures. 280 205 It is intended for a generic binary kernel. ··· 283 206 284 207 config X86_ES7000 285 208 bool "Support for Unisys ES7000 IA32 series" 286 - depends on SMP 209 + depends on X86_32 && SMP 287 210 help 288 211 Support for Unisys ES7000 systems. Say 'Y' here if this kernel is 289 212 supposed to run on an IA32-based Unisys ES7000 system. 290 213 Only choose this option if you have such a system, otherwise you 291 214 should say N here. 292 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 + 293 224 endchoice 294 225 295 226 config SCHED_NO_NO_OMIT_FRAME_POINTER 296 227 bool "Single-depth WCHAN output" 297 228 default y 229 + depends on X86_32 298 230 help 299 231 Calculate simpler /proc/<PID>/wchan values. If this option 300 232 is disabled then wchan values will recurse back to the ··· 314 228 315 229 config PARAVIRT 316 230 bool 317 - depends on !(X86_VISWS || X86_VOYAGER) 231 + depends on X86_32 && !(X86_VISWS || X86_VOYAGER) 318 232 help 319 233 This changes the kernel so it can modify itself when it is run 320 234 under a hypervisor, potentially improving performance significantly ··· 323 237 324 238 menuconfig PARAVIRT_GUEST 325 239 bool "Paravirtualized guest support" 240 + depends on X86_32 326 241 help 327 242 Say Y here to get to see options related to running Linux under 328 243 various hypervisors. This option alone does not add any kernel code. ··· 351 264 config ACPI_SRAT 352 265 bool 353 266 default y 354 - depends on ACPI && NUMA && (X86_SUMMIT || X86_GENERICARCH) 267 + depends on X86_32 && ACPI && NUMA && (X86_SUMMIT || X86_GENERICARCH) 355 268 select ACPI_NUMA 356 269 357 270 config HAVE_ARCH_PARSE_SRAT ··· 362 275 config X86_SUMMIT_NUMA 363 276 bool 364 277 default y 365 - depends on NUMA && (X86_SUMMIT || X86_GENERICARCH) 278 + depends on X86_32 && NUMA && (X86_SUMMIT || X86_GENERICARCH) 366 279 367 280 config X86_CYCLONE_TIMER 368 281 bool 369 282 default y 370 - depends on X86_SUMMIT || X86_GENERICARCH 283 + depends on X86_32 && X86_SUMMIT || X86_GENERICARCH 371 284 372 285 config ES7000_CLUSTERED_APIC 373 286 bool ··· 377 290 source "arch/x86/Kconfig.cpu" 378 291 379 292 config HPET_TIMER 380 - bool "HPET Timer Support" 293 + bool 294 + prompt "HPET Timer Support" if X86_32 295 + default X86_64 381 296 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. 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>. 387 305 388 - Choose N to continue using the legacy 8254 timer. 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. 389 311 390 312 config HPET_EMULATE_RTC 391 313 bool 392 314 depends on HPET_TIMER && RTC=y 393 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 + 394 375 395 376 config NR_CPUS 396 377 int "Maximum number of CPUs (2-255)" ··· 476 321 477 322 config SCHED_SMT 478 323 bool "SMT (Hyperthreading) scheduler support" 479 - depends on X86_HT 324 + depends on (X86_64 && SMP) || (X86_32 && X86_HT) 480 325 help 481 326 SMT scheduler support improves the CPU scheduler's decision making 482 327 when dealing with Intel Pentium 4 chips with HyperThreading at a ··· 485 330 486 331 config SCHED_MC 487 332 bool "Multi-core scheduler support" 488 - depends on X86_HT 333 + depends on (X86_64 && SMP) || (X86_32 && X86_HT) 489 334 default y 490 335 help 491 336 Multi-core scheduler support improves the CPU scheduler's decision ··· 496 341 497 342 config X86_UP_APIC 498 343 bool "Local APIC support on uniprocessors" 499 - depends on !SMP && !(X86_VISWS || X86_VOYAGER || X86_GENERICARCH) 344 + depends on X86_32 && !SMP && !(X86_VISWS || X86_VOYAGER || X86_GENERICARCH) 500 345 help 501 346 A local APIC (Advanced Programmable Interrupt Controller) is an 502 347 integrated interrupt controller in the CPU. If you have a single-CPU ··· 521 366 522 367 config X86_LOCAL_APIC 523 368 bool 524 - depends on X86_UP_APIC || ((X86_VISWS || SMP) && !X86_VOYAGER) || X86_GENERICARCH 369 + depends on X86_64 || (X86_32 && (X86_UP_APIC || ((X86_VISWS || SMP) && !X86_VOYAGER) || X86_GENERICARCH)) 525 370 default y 526 371 527 372 config X86_IO_APIC 528 373 bool 529 - depends on X86_UP_IOAPIC || (SMP && !(X86_VISWS || X86_VOYAGER)) || X86_GENERICARCH 374 + depends on X86_64 || (X86_32 && (X86_UP_IOAPIC || (SMP && !(X86_VISWS || X86_VOYAGER)) || X86_GENERICARCH)) 530 375 default y 531 376 532 377 config X86_VISWS_APIC 533 378 bool 534 - depends on X86_VISWS 379 + depends on X86_32 && X86_VISWS 535 380 default y 536 381 537 382 config X86_MCE ··· 551 396 to disable it. MCE support simply ignores non-MCE processors like 552 397 the 386 and 486, so nearly everyone can say Y here. 553 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 + 554 415 config X86_MCE_NONFATAL 555 416 tristate "Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium 4" 556 - depends on X86_MCE 417 + depends on X86_32 && X86_MCE 557 418 help 558 419 Enabling this feature starts a timer that triggers every 5 seconds which 559 420 will look at the machine check registers to see if anything happened. ··· 582 411 583 412 config X86_MCE_P4THERMAL 584 413 bool "check for P4 thermal throttling interrupt." 585 - depends on X86_MCE && (X86_UP_APIC || SMP) && !X86_VISWS 414 + depends on X86_32 && X86_MCE && (X86_UP_APIC || SMP) && !X86_VISWS 586 415 help 587 416 Enabling this feature will cause a message to be printed when the P4 588 417 enters thermal throttling. 589 418 590 419 config VM86 591 - default y 592 420 bool "Enable VM86 support" if EMBEDDED 421 + default y 422 + depends on X86_32 593 423 help 594 424 This option is required by programs like DOSEMU to run 16-bit legacy 595 425 code on X86 processors. It also may be needed by software like ··· 599 427 600 428 config TOSHIBA 601 429 tristate "Toshiba Laptop support" 430 + depends on X86_32 602 431 ---help--- 603 432 This adds a driver to safely access the System Management Mode of 604 433 the CPU on Toshiba portables with a genuine Toshiba BIOS. It does ··· 615 442 616 443 config I8K 617 444 tristate "Dell laptop support" 445 + depends on X86_32 618 446 ---help--- 619 447 This adds a driver to safely access the System Management Mode 620 448 of the CPU on the Dell Inspiron 8000. The System Management Mode ··· 636 462 637 463 config X86_REBOOTFIXUPS 638 464 bool "Enable X86 board specific fixups for reboot" 639 - depends on X86 465 + depends on X86_32 && X86 640 466 default n 641 467 ---help--- 642 468 This enables chipset and/or board specific fixups to be done ··· 691 517 with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to 692 518 /dev/cpu/31/cpuid. 693 519 694 - source "drivers/firmware/Kconfig" 695 - 696 520 choice 697 521 prompt "High Memory Support" 698 522 default HIGHMEM4G if !X86_NUMAQ 699 523 default HIGHMEM64G if X86_NUMAQ 524 + depends on X86_32 700 525 701 526 config NOHIGHMEM 702 527 bool "off" ··· 755 582 depends on EXPERIMENTAL 756 583 prompt "Memory split" if EMBEDDED 757 584 default VMSPLIT_3G 585 + depends on X86_32 758 586 help 759 587 Select the desired split between kernel and user memory. 760 588 ··· 793 619 default 0x78000000 if VMSPLIT_2G_OPT 794 620 default 0x40000000 if VMSPLIT_1G 795 621 default 0xC0000000 622 + depends on X86_32 796 623 797 624 config HIGHMEM 798 625 bool 799 - depends on HIGHMEM64G || HIGHMEM4G 626 + depends on X86_32 && (HIGHMEM64G || HIGHMEM4G) 800 627 default y 801 628 802 629 config X86_PAE 803 630 bool "PAE (Physical Address Extension) Support" 804 631 default n 805 - depends on !HIGHMEM4G 632 + depends on X86_32 && !HIGHMEM4G 806 633 select RESOURCES_64BIT 807 634 help 808 635 PAE is required for NX support, and furthermore enables ··· 814 639 # Common NUMA Features 815 640 config NUMA 816 641 bool "Numa Memory Allocation and Scheduler Support (EXPERIMENTAL)" 817 - depends on SMP && HIGHMEM64G && (X86_NUMAQ || (X86_SUMMIT || X86_GENERICARCH) && ACPI) && EXPERIMENTAL 642 + depends on SMP 643 + depends on X86_64 || (X86_32 && HIGHMEM64G && (X86_NUMAQ || (X86_SUMMIT || X86_GENERICARCH) && ACPI) && EXPERIMENTAL) 818 644 default n if X86_PC 819 645 default y if (X86_NUMAQ || X86_SUMMIT) 820 646 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. 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. 824 657 825 658 comment "NUMA (Summit) requires SMP, 64GB highmem support, ACPI" 826 - depends on X86_SUMMIT && (!HIGHMEM64G || !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. 827 687 828 688 config NODES_SHIFT 829 689 int 690 + default "6" if X86_64 830 691 default "4" if X86_NUMAQ 831 692 default "3" 832 693 depends on NEED_MULTIPLE_NODES 833 694 834 695 config HAVE_ARCH_BOOTMEM_NODE 835 696 bool 836 - depends on NUMA 697 + depends on X86_32 && NUMA 837 698 default y 838 699 839 700 config ARCH_HAVE_MEMORY_PRESENT 840 701 bool 841 - depends on DISCONTIGMEM 702 + depends on X86_32 && DISCONTIGMEM 842 703 default y 843 704 844 705 config NEED_NODE_MEMMAP_SIZE 845 706 bool 846 - depends on DISCONTIGMEM || SPARSEMEM 707 + depends on X86_32 && (DISCONTIGMEM || SPARSEMEM) 847 708 default y 848 709 849 710 config HAVE_ARCH_ALLOC_REMAP 850 711 bool 851 - depends on NUMA 712 + depends on X86_32 && NUMA 852 713 default y 853 714 854 715 config ARCH_FLATMEM_ENABLE 855 716 def_bool y 856 - depends on (ARCH_SELECT_MEMORY_MODEL && X86_PC) 717 + depends on (X86_32 && ARCH_SELECT_MEMORY_MODEL && X86_PC) || (X86_64 && !NUMA) 857 718 858 719 config ARCH_DISCONTIGMEM_ENABLE 859 720 def_bool y ··· 901 690 902 691 config ARCH_SPARSEMEM_ENABLE 903 692 def_bool y 904 - depends on (NUMA || (X86_PC && EXPERIMENTAL)) 905 - select SPARSEMEM_STATIC 693 + depends on NUMA || (EXPERIMENTAL && (X86_PC || X86_64)) 694 + select SPARSEMEM_STATIC if X86_32 695 + select SPARSEMEM_VMEMMAP_ENABLE if X86_64 906 696 907 697 config ARCH_SELECT_MEMORY_MODEL 908 698 def_bool y 909 - depends on ARCH_SPARSEMEM_ENABLE 699 + depends on X86_32 && ARCH_SPARSEMEM_ENABLE 910 700 911 - config ARCH_POPULATES_NODE_MAP 912 - def_bool y 701 + config ARCH_MEMORY_PROBE 702 + def_bool X86_64 703 + depends on MEMORY_HOTPLUG 913 704 914 705 source "mm/Kconfig" 915 706 916 707 config HIGHPTE 917 708 bool "Allocate 3rd-level pagetables from highmem" 918 - depends on HIGHMEM4G || HIGHMEM64G 709 + depends on X86_32 && (HIGHMEM4G || HIGHMEM64G) 919 710 help 920 711 The VM uses one page table entry for each page of physical memory. 921 712 For systems with a lot of RAM, this can be wasteful of precious ··· 925 712 entries in high memory. 926 713 927 714 config MATH_EMULATION 928 - bool "Math emulation" 715 + bool 716 + prompt "Math emulation" if X86_32 929 717 ---help--- 930 718 Linux can emulate a math coprocessor (used for floating point 931 719 operations) if you don't have one. 486DX and Pentium processors have ··· 986 772 987 773 config EFI 988 774 bool "Boot from EFI support" 989 - depends on ACPI 775 + depends on X86_32 && ACPI 990 776 default n 991 777 ---help--- 992 778 This enables the kernel to boot on EFI platforms using ··· 1003 789 kernel should continue to boot on existing non-EFI platforms. 1004 790 1005 791 config IRQBALANCE 1006 - bool "Enable kernel irq balancing" 1007 - depends on SMP && X86_IO_APIC 792 + bool "Enable kernel irq balancing" 793 + depends on X86_32 && SMP && X86_IO_APIC 1008 794 default y 1009 795 help 1010 - The default yes will allow the kernel to do irq load balancing. 796 + The default yes will allow the kernel to do irq load balancing. 1011 797 Saying no will keep the kernel from doing irq load balancing. 1012 798 1013 799 # turning this on wastes a bunch of space. 1014 800 # Summit needs it only when NUMA is on 1015 801 config BOOT_IOREMAP 1016 802 bool 1017 - depends on (((X86_SUMMIT || X86_GENERICARCH) && NUMA) || (X86 && EFI)) 803 + depends on X86_32 && (((X86_SUMMIT || X86_GENERICARCH) && NUMA) || (X86 && EFI)) 1018 804 default y 1019 805 1020 806 config SECCOMP ··· 1033 819 defined by each seccomp mode. 1034 820 1035 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. 1036 846 1037 847 source kernel/Kconfig.hz 1038 848 ··· 1079 841 config CRASH_DUMP 1080 842 bool "kernel crash dumps (EXPERIMENTAL)" 1081 843 depends on EXPERIMENTAL 1082 - depends on HIGHMEM 844 + depends on X86_64 || (X86_32 && HIGHMEM) 1083 845 help 1084 846 Generate crash dump after being started by kexec. 1085 847 This should be normally only set in special crash dump kernels ··· 1094 856 config PHYSICAL_START 1095 857 hex "Physical address where the kernel is loaded" if (EMBEDDED || CRASH_DUMP) 1096 858 default "0x1000000" if X86_NUMAQ 859 + default "0x200000" if X86_64 1097 860 default "0x100000" 1098 861 help 1099 862 This gives the physical address where the kernel is loaded. ··· 1147 908 must live at a different physical address than the primary 1148 909 kernel. 1149 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 + 1150 915 config PHYSICAL_ALIGN 1151 - hex "Alignment value to which kernel should be aligned" 1152 - default "0x100000" 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 1153 920 range 0x2000 0x400000 1154 921 help 1155 922 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. 923 + where kernel is loaded and run from. Kernel is compiled for an 924 + address which meets above alignment restriction. 1158 925 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. 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. 1162 929 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 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 1169 936 above alignment restrictions. 1170 937 1171 938 Don't change this unless you know what you are doing. ··· 1183 938 Say Y here to experiment with turning CPUs off and on, and to 1184 939 enable suspend on SMP systems. CPUs can be controlled through 1185 940 /sys/devices/system/cpu. 941 + Say N if you want to disable CPU hotplug and don't need to 942 + suspend. 1186 943 1187 944 config COMPAT_VDSO 1188 945 bool "Compat VDSO support" 1189 946 default y 947 + depends on X86_32 1190 948 help 1191 949 Map the VDSO to the predictable old-style address too. 1192 950 ---help--- ··· 1203 955 1204 956 config ARCH_ENABLE_MEMORY_HOTPLUG 1205 957 def_bool y 1206 - depends on HIGHMEM 958 + depends on X86_64 || (X86_32 && HIGHMEM) 1207 959 1208 - menu "Power management options (ACPI, APM)" 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" 1209 973 depends on !X86_VOYAGER 1210 974 1211 - source kernel/power/Kconfig 975 + config ARCH_HIBERNATION_HEADER 976 + bool 977 + depends on X86_64 && HIBERNATION 978 + default y 979 + 980 + source "kernel/power/Kconfig" 1212 981 1213 982 source "drivers/acpi/Kconfig" 1214 983 1215 984 menuconfig APM 1216 985 tristate "APM (Advanced Power Management) BIOS support" 1217 - depends on PM_SLEEP && !X86_VISWS 986 + depends on X86_32 && PM_SLEEP && !X86_VISWS 1218 987 ---help--- 1219 988 APM is a BIOS specification for saving power using several different 1220 989 techniques. This is mostly useful for battery powered laptops with ··· 1357 1092 1358 1093 endif # APM 1359 1094 1360 - source "arch/x86/kernel/cpu/cpufreq/Kconfig_32" 1095 + source "arch/x86/kernel/cpu/cpufreq/Kconfig" 1361 1096 1362 1097 source "drivers/cpuidle/Kconfig" 1363 1098 1364 1099 endmenu 1365 1100 1366 - menu "Bus options (PCI, PCMCIA, EISA, MCA, ISA)" 1101 + 1102 + menu "Bus options (PCI etc.)" 1367 1103 1368 1104 config PCI 1369 1105 bool "PCI support" if !X86_VISWS ··· 1384 1118 1385 1119 choice 1386 1120 prompt "PCI access mode" 1387 - depends on PCI && !X86_VISWS 1121 + depends on X86_32 && PCI && !X86_VISWS 1388 1122 default PCI_GOANY 1389 1123 ---help--- 1390 1124 On PCI systems, the BIOS can be used to detect the PCI devices and ··· 1417 1151 1418 1152 config PCI_BIOS 1419 1153 bool 1420 - depends on !X86_VISWS && PCI && (PCI_GOBIOS || PCI_GOANY) 1154 + depends on X86_32 && !X86_VISWS && PCI && (PCI_GOBIOS || PCI_GOANY) 1421 1155 default y 1422 1156 1157 + # x86-64 doesn't support PCI BIOS access from long mode so always go direct. 1423 1158 config PCI_DIRECT 1424 1159 bool 1425 - depends on PCI && ((PCI_GODIRECT || PCI_GOANY) || X86_VISWS) 1160 + depends on PCI && (X86_64 || (PCI_GODIRECT || PCI_GOANY) || X86_VISWS) 1426 1161 default y 1427 1162 1428 1163 config PCI_MMCONFIG 1429 1164 bool 1430 - depends on PCI && ACPI && (PCI_GOMMCONFIG || PCI_GOANY) 1165 + depends on X86_32 && PCI && ACPI && (PCI_GOMMCONFIG || PCI_GOANY) 1431 1166 default y 1432 1167 1433 1168 config PCI_DOMAINS ··· 1436 1169 depends on PCI 1437 1170 default y 1438 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 + 1439 1207 source "drivers/pci/pcie/Kconfig" 1440 1208 1441 1209 source "drivers/pci/Kconfig" 1442 1210 1211 + # x86_64 have no ISA slots, but do have ISA-style DMA. 1443 1212 config ISA_DMA_API 1444 1213 bool 1445 1214 default y 1215 + 1216 + if X86_32 1446 1217 1447 1218 config ISA 1448 1219 bool "ISA support" ··· 1553 1248 MFGPTs have a better resolution and max interval than the 1554 1249 generic PIT, and are suitable for use as high-res timers. 1555 1250 1251 + endif # X86_32 1252 + 1556 1253 config K8_NB 1557 1254 def_bool y 1558 - depends on AGP_AMD64 1255 + depends on AGP_AMD64 || (X86_64 && (GART_IOMMU || (PCI && NUMA))) 1559 1256 1560 1257 source "drivers/pcmcia/Kconfig" 1561 1258 ··· 1565 1258 1566 1259 endmenu 1567 1260 1568 - menu "Executable file formats" 1261 + 1262 + menu "Executable file formats / Emulations" 1569 1263 1570 1264 source "fs/Kconfig.binfmt" 1571 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 + 1572 1294 endmenu 1295 + 1573 1296 1574 1297 source "net/Kconfig" 1575 1298 1576 1299 source "drivers/Kconfig" 1300 + 1301 + source "drivers/firmware/Kconfig" 1577 1302 1578 1303 source "fs/Kconfig" 1579 1304 ··· 1618 1279 source "crypto/Kconfig" 1619 1280 1620 1281 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
-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 1 # Unified Makefile for i386 and x86_64 2 2 3 3 # select defconfig based on actual architecture 4 - KBUILD_DEFCONFIG := $(ARCH)_defconfig 4 + ifeq ($(ARCH),x86) 5 + KBUILD_DEFCONFIG := i386_defconfig 6 + else 7 + KBUILD_DEFCONFIG := $(ARCH)_defconfig 8 + endif 5 9 6 - # # No need to remake these files 10 + # No need to remake these files 7 11 $(srctree)/arch/x86/Makefile%: ; 8 12 9 - ifeq ($(ARCH),i386) 13 + ifeq ($(CONFIG_X86_32),y) 10 14 include $(srctree)/arch/x86/Makefile_32 11 15 else 12 16 include $(srctree)/arch/x86/Makefile_64
+4 -4
arch/x86/Makefile_32
··· 160 160 $(Q)$(MAKE) $(clean)=arch/x86/boot 161 161 162 162 define archhelp 163 - echo '* bzImage - Compressed kernel image (arch/$(ARCH)/boot/bzImage)' 163 + echo '* bzImage - Compressed kernel image (arch/x86/boot/bzImage)' 164 164 echo ' install - Install kernel using' 165 165 echo ' (your) ~/bin/installkernel or' 166 166 echo ' (distribution) /sbin/installkernel or' ··· 170 170 echo ' isoimage - Create a boot CD-ROM image' 171 171 endef 172 172 173 - CLEAN_FILES += arch/$(ARCH)/boot/fdimage \ 174 - arch/$(ARCH)/boot/image.iso \ 175 - arch/$(ARCH)/boot/mtools.conf 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 127 $(Q)$(MAKE) $(clean)=$(boot) 128 128 129 129 define archhelp 130 - echo '* bzImage - Compressed kernel image (arch/$(ARCH)/boot/bzImage)' 130 + echo '* bzImage - Compressed kernel image (arch/x86/boot/bzImage)' 131 131 echo ' install - Install kernel using' 132 132 echo ' (your) ~/bin/installkernel or' 133 133 echo ' (distribution) /sbin/installkernel or' ··· 137 137 echo ' isoimage - Create a boot CD-ROM image' 138 138 endef 139 139 140 - CLEAN_FILES += arch/$(ARCH)/boot/fdimage \ 141 - arch/$(ARCH)/boot/image.iso \ 142 - arch/$(ARCH)/boot/mtools.conf 140 + CLEAN_FILES += arch/x86/boot/fdimage \ 141 + arch/x86/boot/image.iso \ 142 + arch/x86/boot/mtools.conf 143 143 144 144
+3 -3
arch/x86/boot/Makefile
··· 49 49 50 50 # How to compile the 16-bit code. Note we always compile for -march=i386, 51 51 # that way we can complain to the user if the CPU is insufficient. 52 - cflags-i386 := 53 - cflags-x86_64 := -m32 52 + cflags-$(CONFIG_X86_32) := 53 + cflags-$(CONFIG_X86_64) := -m32 54 54 KBUILD_CFLAGS := $(LINUXINCLUDE) -g -Os -D_SETUP -D__KERNEL__ \ 55 - $(cflags-$(ARCH)) \ 55 + $(cflags-y) \ 56 56 -Wall -Wstrict-prototypes \ 57 57 -march=i386 -mregparm=3 \ 58 58 -include $(srctree)/$(src)/code16gcc.h \
-6
arch/x86/boot/cpucheck.c
··· 42 42 static u32 cpu_vendor[3]; 43 43 static u32 err_flags[NCAPINTS]; 44 44 45 - #ifdef CONFIG_X86_64 46 - static const int req_level = 64; 47 - #elif defined(CONFIG_X86_MINIMUM_CPU_FAMILY) 48 45 static const int req_level = CONFIG_X86_MINIMUM_CPU_FAMILY; 49 - #else 50 - static const int req_level = 3; 51 - #endif 52 46 53 47 static const u32 req_flags[NCAPINTS] = 54 48 {
+2 -1
arch/x86/kernel/Makefile_32
··· 3 3 # 4 4 5 5 extra-y := head_32.o init_task.o vmlinux.lds 6 + CPPFLAGS_vmlinux.lds += -Ui386 6 7 7 8 obj-y := process_32.o signal_32.o entry_32.o traps_32.o irq_32.o \ 8 9 ptrace_32.o time_32.o ioport_32.o ldt_32.o setup_32.o i8259_32.o sys_i386_32.o \ ··· 61 60 cmd_syscall = $(CC) -m elf_i386 -nostdlib $(SYSCFLAGS_$(@F)) \ 62 61 -Wl,-T,$(filter-out FORCE,$^) -o $@ 63 62 64 - export CPPFLAGS_vsyscall_32.lds += -P -C -U$(ARCH) 63 + export CPPFLAGS_vsyscall_32.lds += -P -C -Ui386 65 64 66 65 vsyscall-flags = -shared -s -Wl,-soname=linux-gate.so.1 \ 67 66 $(call ld-option, -Wl$(comma)--hash-style=sysv)
+2
arch/x86/kernel/Makefile_64
··· 3 3 # 4 4 5 5 extra-y := head_64.o head64.o init_task.o vmlinux.lds 6 + CPPFLAGS_vmlinux.lds += -Ux86_64 6 7 EXTRA_AFLAGS := -traditional 8 + 7 9 obj-y := process_64.o signal_64.o entry_64.o traps_64.o irq_64.o \ 8 10 ptrace_64.o time_64.o ioport_64.o ldt_64.o setup_64.o i8259_64.o sys_x86_64.o \ 9 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 19 Processor Performance States. 20 20 This driver also supports Intel Enhanced Speedstep. 21 21 22 + To compile this driver as a module, choose M here: the 23 + module will be called acpi-cpufreq. 24 + 22 25 For details, take a look at <file:Documentation/cpu-freq/>. 23 26 24 27 If in doubt, say N. ··· 29 26 config ELAN_CPUFREQ 30 27 tristate "AMD Elan SC400 and SC410" 31 28 select CPU_FREQ_TABLE 32 - depends on X86_ELAN 29 + depends on X86_32 && X86_ELAN 33 30 ---help--- 34 31 This adds the CPUFreq driver for AMD Elan SC400 and SC410 35 32 processors. ··· 45 42 config SC520_CPUFREQ 46 43 tristate "AMD Elan SC520" 47 44 select CPU_FREQ_TABLE 48 - depends on X86_ELAN 45 + depends on X86_32 && X86_ELAN 49 46 ---help--- 50 47 This adds the CPUFreq driver for AMD Elan SC520 processor. 51 48 ··· 57 54 config X86_POWERNOW_K6 58 55 tristate "AMD Mobile K6-2/K6-3 PowerNow!" 59 56 select CPU_FREQ_TABLE 57 + depends on X86_32 60 58 help 61 59 This adds the CPUFreq driver for mobile AMD K6-2+ and mobile 62 60 AMD K6-3+ processors. ··· 69 65 config X86_POWERNOW_K7 70 66 tristate "AMD Mobile Athlon/Duron PowerNow!" 71 67 select CPU_FREQ_TABLE 68 + depends on X86_32 72 69 help 73 70 This adds the CPUFreq driver for mobile AMD K7 mobile processors. 74 71 ··· 81 76 bool 82 77 depends on X86_POWERNOW_K7 && ACPI_PROCESSOR 83 78 depends on !(X86_POWERNOW_K7 = y && ACPI_PROCESSOR = m) 79 + depends on X86_32 84 80 default y 85 81 86 82 config X86_POWERNOW_K8 87 83 tristate "AMD Opteron/Athlon64 PowerNow!" 88 84 select CPU_FREQ_TABLE 89 - depends on EXPERIMENTAL 90 85 help 91 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. 92 90 93 91 For details, take a look at <file:Documentation/cpu-freq/>. 94 92 95 93 If in doubt, say N. 96 94 97 95 config X86_POWERNOW_K8_ACPI 98 - bool "ACPI Support" 99 - select ACPI_PROCESSOR 100 - depends on ACPI && X86_POWERNOW_K8 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) 101 100 default y 102 101 help 103 102 This provides access to the K8s Processor Performance States via ACPI. ··· 113 104 114 105 config X86_GX_SUSPMOD 115 106 tristate "Cyrix MediaGX/NatSemi Geode Suspend Modulation" 116 - depends on PCI 107 + depends on X86_32 && PCI 117 108 help 118 109 This add the CPUFreq driver for NatSemi Geode processors which 119 110 support suspend modulation. ··· 123 114 If in doubt, say N. 124 115 125 116 config X86_SPEEDSTEP_CENTRINO 126 - tristate "Intel Enhanced SpeedStep" 117 + tristate "Intel Enhanced SpeedStep (deprecated)" 127 118 select CPU_FREQ_TABLE 128 - select X86_SPEEDSTEP_CENTRINO_TABLE 119 + select X86_SPEEDSTEP_CENTRINO_TABLE if X86_32 120 + depends on X86_32 || (X86_64 && ACPI_PROCESSOR) 129 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. 130 125 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. 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. 135 131 136 132 For details, take a look at <file:Documentation/cpu-freq/>. 137 133 ··· 144 130 145 131 config X86_SPEEDSTEP_CENTRINO_TABLE 146 132 bool "Built-in tables for Banias CPUs" 147 - depends on X86_SPEEDSTEP_CENTRINO 133 + depends on X86_32 && X86_SPEEDSTEP_CENTRINO 148 134 default y 149 135 help 150 136 Use built-in tables for Banias CPUs if ACPI encoding ··· 155 141 config X86_SPEEDSTEP_ICH 156 142 tristate "Intel Speedstep on ICH-M chipsets (ioport interface)" 157 143 select CPU_FREQ_TABLE 144 + depends on X86_32 158 145 help 159 146 This adds the CPUFreq driver for certain mobile Intel Pentium III 160 147 (Coppermine), all mobile Intel Pentium III-M (Tualatin) and all ··· 169 154 config X86_SPEEDSTEP_SMI 170 155 tristate "Intel SpeedStep on 440BX/ZX/MX chipsets (SMI interface)" 171 156 select CPU_FREQ_TABLE 172 - depends on EXPERIMENTAL 157 + depends on X86_32 && EXPERIMENTAL 173 158 help 174 159 This adds the CPUFreq driver for certain mobile Intel Pentium III 175 160 (Coppermine), all mobile Intel Pentium III-M (Tualatin) ··· 184 169 select CPU_FREQ_TABLE 185 170 help 186 171 This adds the CPUFreq driver for Intel Pentium 4 / XEON 187 - processors. 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. 188 182 189 183 For details, take a look at <file:Documentation/cpu-freq/>. 190 184 191 - If in doubt, say N. 185 + Unless you are absolutely sure say N. 192 186 193 187 config X86_CPUFREQ_NFORCE2 194 188 tristate "nVidia nForce2 FSB changing" 195 - depends on EXPERIMENTAL 189 + depends on X86_32 && EXPERIMENTAL 196 190 help 197 191 This adds the CPUFreq driver for FSB changing on nVidia nForce2 198 192 platforms. ··· 212 188 213 189 config X86_LONGRUN 214 190 tristate "Transmeta LongRun" 191 + depends on X86_32 215 192 help 216 193 This adds the CPUFreq driver for Transmeta Crusoe and Efficeon processors 217 194 which support LongRun. ··· 224 199 config X86_LONGHAUL 225 200 tristate "VIA Cyrix III Longhaul" 226 201 select CPU_FREQ_TABLE 227 - depends on ACPI_PROCESSOR 202 + depends on X86_32 && ACPI_PROCESSOR 228 203 help 229 204 This adds the CPUFreq driver for VIA Samuel/CyrixIII, 230 205 VIA Cyrix Samuel/C3, VIA Cyrix Ezra and VIA Cyrix Ezra-T ··· 237 212 config X86_E_POWERSAVER 238 213 tristate "VIA C7 Enhanced PowerSaver (EXPERIMENTAL)" 239 214 select CPU_FREQ_TABLE 240 - depends on EXPERIMENTAL 215 + depends on X86_32 && EXPERIMENTAL 241 216 help 242 217 This adds the CPUFreq driver for VIA C7 processors. 243 218 ··· 258 233 259 234 config X86_SPEEDSTEP_LIB 260 235 tristate 261 - default X86_SPEEDSTEP_ICH || X86_SPEEDSTEP_SMI || X86_P4_CLOCKMOD 236 + default (X86_SPEEDSTEP_ICH || X86_SPEEDSTEP_SMI || X86_P4_CLOCKMOD) 262 237 263 238 config X86_SPEEDSTEP_RELAXED_CAP_CHECK 264 239 bool "Relaxed speedstep capability checks" 265 - depends on (X86_SPEEDSTEP_SMI || X86_SPEEDSTEP_ICH) 240 + depends on X86_32 && (X86_SPEEDSTEP_SMI || X86_SPEEDSTEP_ICH) 266 241 help 267 242 Don't perform all checks for a speedstep capable system which would 268 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 20 cmd_syscall = $(CC) -m elf_x86_64 -nostdlib $(SYSCFLAGS_$(@F)) \ 21 21 -Wl,-T,$(filter-out FORCE,$^) -o $@ 22 22 23 - export CPPFLAGS_vdso.lds += -P -C -U$(ARCH) 23 + export CPPFLAGS_vdso.lds += -P -C 24 24 25 25 vdso-flags = -fPIC -shared -Wl,-soname=linux-vdso.so.1 \ 26 26 $(call ld-option, -Wl$(comma)--hash-style=sysv) \
+1 -6
scripts/kconfig/Makefile
··· 4 4 5 5 PHONY += oldconfig xconfig gconfig menuconfig config silentoldconfig update-po-config 6 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 7 + Kconfig := arch/$(SRCARCH)/Kconfig 13 8 14 9 xconfig: $(obj)/qconf 15 10 $< $(Kconfig)
+1
scripts/kconfig/conf.c
··· 591 591 conf_read_simple(name, S_DEF_USER); 592 592 else if (!stat("all.config", &tmpstat)) 593 593 conf_read_simple("all.config", S_DEF_USER); 594 + conf_set_env_sym("K64BIT", "64BIT", S_DEF_USER); 594 595 break; 595 596 default: 596 597 break;
+91 -55
scripts/kconfig/confdata.c
··· 83 83 return name; 84 84 } 85 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 + 86 175 int conf_read_simple(const char *name, int def) 87 176 { 88 177 FILE *in = NULL; ··· 302 213 conf_warning("trying to reassign symbol %s", sym->name); 303 214 break; 304 215 } 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 - } 216 + if (conf_set_sym_val(sym, def, def_flags, p)) 217 + continue; 360 218 break; 361 219 case '\r': 362 220 case '\n':
+1
scripts/kconfig/lkc_proto.h
··· 1 1 2 2 /* confdata.c */ 3 3 P(conf_parse,void,(const char *name)); 4 + P(conf_set_env_sym,int,(const char *envname, const char *symname, int def)); 4 5 P(conf_read,int,(const char *name)); 5 6 P(conf_read_simple,int,(const char *name, int)); 6 7 P(conf_write,int,(const char *name));