Blame view

arch/x86/Kconfig 70 KB
daa93fab8   Sam Ravnborg   x86: enable "make...
1
2
  # Select 32 or 64 bit
  config 64BIT
6840999b1   Sam Ravnborg   x86: simplify "ma...
3
4
  	bool "64-bit kernel" if ARCH = "x86"
  	default ARCH = "x86_64"
8f9ca475c   Ingo Molnar   x86: clean up arc...
5
  	---help---
daa93fab8   Sam Ravnborg   x86: enable "make...
6
7
8
9
10
  	  Say yes to build a 64-bit kernel - formerly known as x86_64
  	  Say no to build a 32-bit kernel - formerly known as i386
  
  config X86_32
  	def_bool !64BIT
82491451d   Russell King   clocksource: conv...
11
  	select CLKSRC_I8253
daa93fab8   Sam Ravnborg   x86: enable "make...
12
13
14
  
  config X86_64
  	def_bool 64BIT
1032c0ba9   Sam Ravnborg   x86: arch/x86/Kco...
15
16
  
  ### Arch settings
8d5fffb92   Sam Ravnborg   x86: move all sim...
17
  config X86
3c2362e62   Harvey Harrison   x86: use def_bool...
18
  	def_bool y
e17c6d561   David Woodhouse   Introduce HAVE_AO...
19
  	select HAVE_AOUT if X86_32
a5574cf65   Ingo Molnar   sched, x86: add H...
20
  	select HAVE_UNSTABLE_SCHED_CLOCK
ec7748b59   Sam Ravnborg   ide: introduce HA...
21
  	select HAVE_IDE
42d4b839c   Mathieu Desnoyers   Add HAVE_OPROFILE
22
  	select HAVE_OPROFILE
8761f1ab7   Ralf Baechle   pcspkr: Cleanup K...
23
  	select HAVE_PCSPKR_PLATFORM
cc2067a51   Peter Zijlstra   perf, x86: Fixup ...
24
  	select HAVE_PERF_EVENTS
e360adbe2   Peter Zijlstra   irq_work: Add gen...
25
  	select HAVE_IRQ_WORK
28b2ee20c   Rik van Riel   access_process_vm...
26
  	select HAVE_IOREMAP_PROT
3f550096d   Mathieu Desnoyers   Add HAVE_KPROBES
27
  	select HAVE_KPROBES
72d7c3b33   Yinghai Lu   x86: Use memblock...
28
  	select HAVE_MEMBLOCK
0608f70c7   Tejun Heo   x86: Use HAVE_MEM...
29
  	select HAVE_MEMBLOCK_NODE_MAP
c378ddd53   Tejun Heo   memblock, x86: Ma...
30
  	select ARCH_DISCARD_MEMBLOCK
1f972768a   Ingo Molnar   x86, RDC321x: add...
31
  	select ARCH_WANT_OPTIONAL_GPIOLIB
da4276b82   Ingo Molnar   x86: offer frame ...
32
  	select ARCH_WANT_FRAME_POINTERS
7c095e460   FUJITA Tomonori   dma-mapping: x86:...
33
  	select HAVE_DMA_ATTRS
9edddaa20   Ananth N Mavinakayanahalli   Kprobes: indicate...
34
  	select HAVE_KRETPROBES
c0f7ac3a9   Masami Hiramatsu   kprobes/x86: Supp...
35
  	select HAVE_OPTPROBES
e4b2b8866   Steven Rostedt   ftrace: enable us...
36
  	select HAVE_FTRACE_MCOUNT_RECORD
cf4db2597   Steven Rostedt   ftrace: Rename co...
37
  	select HAVE_C_RECORDMCOUNT
677aa9f77   Steven Rostedt   ftrace: add have ...
38
  	select HAVE_DYNAMIC_FTRACE
606576ce8   Steven Rostedt   ftrace: rename FT...
39
  	select HAVE_FUNCTION_TRACER
48d68b20d   Frederic Weisbecker   tracing/function-...
40
  	select HAVE_FUNCTION_GRAPH_TRACER
71e308a23   Steven Rostedt   function-graph: a...
41
  	select HAVE_FUNCTION_GRAPH_FP_TEST
60a7ecf42   Steven Rostedt   ftrace: add quick...
42
  	select HAVE_FUNCTION_TRACE_MCOUNT_TEST
9a5fd9022   Steven Rostedt   ftrace: change fu...
43
  	select HAVE_FTRACE_NMI_ENTER if DYNAMIC_FTRACE
667000011   Josh Stone   tracing: Rename F...
44
  	select HAVE_SYSCALL_TRACEPOINTS
e0ec9483d   Ingo Molnar   x86/Voyager: remo...
45
  	select HAVE_KVM
49793b034   Ingo Molnar   x86/Voyager: remo...
46
  	select HAVE_ARCH_KGDB
99bbc4b1e   Roland McGrath   x86: tracehook: C...
47
  	select HAVE_ARCH_TRACEHOOK
323ec001c   Dmitry Eremin-Solenikov   x86: use generic ...
48
  	select HAVE_GENERIC_DMA_COHERENT if X86_32
58340a07c   Johannes Berg   introduce HAVE_EF...
49
  	select HAVE_EFFICIENT_UNALIGNED_ACCESS
8d26487fd   Török Edwin   tracing/stack-tra...
50
  	select USER_STACKTRACE_SUPPORT
f850c30c8   Heiko Carstens   tracing/kprobes: ...
51
  	select HAVE_REGS_AND_STACK_ACCESS_API
2118d0c54   Joerg Roedel   dma-debug: x86 ar...
52
  	select HAVE_DMA_API_DEBUG
2e9f3bddc   H. Peter Anvin   bzip2/lzma: make ...
53
54
55
  	select HAVE_KERNEL_GZIP
  	select HAVE_KERNEL_BZIP2
  	select HAVE_KERNEL_LZMA
303148045   Lasse Collin   x86: support XZ-c...
56
  	select HAVE_KERNEL_XZ
13510997d   Albin Tonnerre   x86: add support ...
57
  	select HAVE_KERNEL_LZO
0067f1297   K.Prasad   hw-breakpoints: x...
58
  	select HAVE_HW_BREAKPOINT
0102752e4   Frederic Weisbecker   hw-breakpoints: S...
59
  	select HAVE_MIXED_BREAKPOINTS_REGS
99e8c5a3b   Frederic Weisbecker   hw-breakpoints: F...
60
  	select PERF_EVENTS
c01d43233   Frederic Weisbecker   lockup_detector: ...
61
  	select HAVE_PERF_EVENTS_NMI
99e8c5a3b   Frederic Weisbecker   hw-breakpoints: F...
62
  	select ANON_INODES
43570fd2f   Heiko Carstens   mm,slub,x86: deco...
63
  	select HAVE_ALIGNED_STRUCT_PAGE if SLUB && !M386
4156153c4   Heiko Carstens   mm,x86,um: move C...
64
  	select HAVE_CMPXCHG_LOCAL if !M386
2565409fc   Heiko Carstens   mm,x86,um: move C...
65
  	select HAVE_CMPXCHG_DOUBLE
0a4af3b09   Pekka Enberg   kmemcheck: make k...
66
  	select HAVE_ARCH_KMEMCHECK
7c68af6e3   Avi Kivity   core, x86: Add us...
67
  	select HAVE_USER_RETURN_NOTIFIER
e39f56023   David Daney   fs: binfmt_elf: c...
68
  	select ARCH_BINFMT_ELF_RANDOMIZE_PIE
46eb3b64d   Steven Rostedt   jump label/x86/sp...
69
  	select HAVE_ARCH_JUMP_LABEL
3cba11d32   Masami Hiramatsu   kconfig/x86: Add ...
70
  	select HAVE_TEXT_POKE_SMP
3bb9808e9   Thomas Gleixner   x86: Use genirq K...
71
72
  	select HAVE_GENERIC_HARDIRQS
  	select HAVE_SPARSE_IRQ
141d55e6c   Yinghai Lu   x86/irq: Standard...
73
  	select SPARSE_IRQ
c49aa5bd1   Jan Beulich   x86: Remove dead ...
74
  	select GENERIC_FIND_FIRST_BIT
3bb9808e9   Thomas Gleixner   x86: Use genirq K...
75
76
  	select GENERIC_IRQ_PROBE
  	select GENERIC_PENDING_IRQ if SMP
517e49815   Thomas Gleixner   x86: Use generic ...
77
  	select GENERIC_IRQ_SHOW
d1748302f   Martin Schwidefsky   clockevents: Make...
78
  	select GENERIC_CLOCKEVENTS_MIN_ADJUST
c0185808e   Thomas Gleixner   x86: Enable force...
79
  	select IRQ_FORCED_THREADING
351f8f8e6   Amerigo Wang   kernel: clean up ...
80
  	select USE_GENERIC_SMP_HELPERS if SMP
9cddf15f1   Randy Dunlap   x86/net: only sel...
81
  	select HAVE_BPF_JIT if (X86_64 && NET)
0a779c571   Thomas Gleixner   x86: Use common i...
82
  	select CLKEVT_I8253
df013ffb8   Huang Ying   Add Kconfig optio...
83
  	select ARCH_HAVE_NMI_SAFE_CMPXCHG
4673ca8eb   Michael S. Tsirkin   lib: move GENERIC...
84
  	select GENERIC_IOMAP
7d8330a56   Balbir Singh   KVM is not seen u...
85

ba7e4d13f   Ingo Molnar   perf, x86: Add IN...
86
87
  config INSTRUCTION_DECODER
  	def_bool (KPROBES || PERF_EVENTS)
51b26ada7   Linus Torvalds   x86: unify arch/x...
88
89
90
91
  config OUTPUT_FORMAT
  	string
  	default "elf32-i386" if X86_32
  	default "elf64-x86-64" if X86_64
73531905e   Sam Ravnborg   Kconfig: introduc...
92
  config ARCH_DEFCONFIG
b9b39bfba   Sam Ravnborg   x86: use defconfi...
93
  	string
73531905e   Sam Ravnborg   Kconfig: introduc...
94
95
  	default "arch/x86/configs/i386_defconfig" if X86_32
  	default "arch/x86/configs/x86_64_defconfig" if X86_64
b9b39bfba   Sam Ravnborg   x86: use defconfi...
96

8d5fffb92   Sam Ravnborg   x86: move all sim...
97
  config GENERIC_CMOS_UPDATE
3c2362e62   Harvey Harrison   x86: use def_bool...
98
  	def_bool y
8d5fffb92   Sam Ravnborg   x86: move all sim...
99
100
  
  config CLOCKSOURCE_WATCHDOG
3c2362e62   Harvey Harrison   x86: use def_bool...
101
  	def_bool y
8d5fffb92   Sam Ravnborg   x86: move all sim...
102
103
  
  config GENERIC_CLOCKEVENTS
3c2362e62   Harvey Harrison   x86: use def_bool...
104
  	def_bool y
8d5fffb92   Sam Ravnborg   x86: move all sim...
105

ae7bd11b4   H. Peter Anvin   clocksource: Chan...
106
107
108
  config ARCH_CLOCKSOURCE_DATA
  	def_bool y
  	depends on X86_64
8d5fffb92   Sam Ravnborg   x86: move all sim...
109
  config GENERIC_CLOCKEVENTS_BROADCAST
3c2362e62   Harvey Harrison   x86: use def_bool...
110
  	def_bool y
8d5fffb92   Sam Ravnborg   x86: move all sim...
111
112
113
  	depends on X86_64 || (X86_32 && X86_LOCAL_APIC)
  
  config LOCKDEP_SUPPORT
3c2362e62   Harvey Harrison   x86: use def_bool...
114
  	def_bool y
8d5fffb92   Sam Ravnborg   x86: move all sim...
115
116
  
  config STACKTRACE_SUPPORT
3c2362e62   Harvey Harrison   x86: use def_bool...
117
  	def_bool y
8d5fffb92   Sam Ravnborg   x86: move all sim...
118

aa7d93506   Heiko Carstens   latencytop: Chang...
119
120
  config HAVE_LATENCYTOP_SUPPORT
  	def_bool y
8d5fffb92   Sam Ravnborg   x86: move all sim...
121
  config MMU
3c2362e62   Harvey Harrison   x86: use def_bool...
122
  	def_bool y
8d5fffb92   Sam Ravnborg   x86: move all sim...
123
124
  
  config ZONE_DMA
dc382fd5b   David Rientjes   x86, mm: Allow ZO...
125
126
127
128
129
130
131
132
  	bool "DMA memory allocation support" if EXPERT
  	default y
  	help
  	  DMA memory allocation support allows devices with less than 32-bit
  	  addressing to allocate within the first 16MB of address space.
  	  Disable if no such devices will be used.
  
  	  If unsure, say Y.
8d5fffb92   Sam Ravnborg   x86: move all sim...
133

8d5fffb92   Sam Ravnborg   x86: move all sim...
134
135
  config SBUS
  	bool
3bc4e4590   FUJITA Tomonori   pci-dma: x86: use...
136
  config NEED_DMA_MAP_STATE
d3f138106   Suresh Siddha   iommu: Rename the...
137
         def_bool (X86_64 || INTEL_IOMMU || DMA_API_DEBUG)
3bc4e4590   FUJITA Tomonori   pci-dma: x86: use...
138

18e98307d   FUJITA Tomonori   asm-generic: add ...
139
  config NEED_SG_DMA_LENGTH
4a14d84ea   Andrew Morton   x86_32: use asm-g...
140
  	def_bool y
18e98307d   FUJITA Tomonori   asm-generic: add ...
141

8d5fffb92   Sam Ravnborg   x86: move all sim...
142
  config GENERIC_ISA_DMA
1c00f0161   David Rientjes   x86: allow CONFIG...
143
  	def_bool ISA_DMA_API
8d5fffb92   Sam Ravnborg   x86: move all sim...
144

8d5fffb92   Sam Ravnborg   x86: move all sim...
145
  config GENERIC_BUG
3c2362e62   Harvey Harrison   x86: use def_bool...
146
  	def_bool y
8d5fffb92   Sam Ravnborg   x86: move all sim...
147
  	depends on BUG
b93a531e3   Jan Beulich   allow bug table e...
148
149
150
151
  	select GENERIC_BUG_RELATIVE_POINTERS if X86_64
  
  config GENERIC_BUG_RELATIVE_POINTERS
  	bool
8d5fffb92   Sam Ravnborg   x86: move all sim...
152
153
  
  config GENERIC_HWEIGHT
3c2362e62   Harvey Harrison   x86: use def_bool...
154
  	def_bool y
8d5fffb92   Sam Ravnborg   x86: move all sim...
155

a60829593   Florian Fainelli   x86: add generic ...
156
  config GENERIC_GPIO
9ba16087d   Jan Beulich   Kconfig: eliminat...
157
  	bool
a60829593   Florian Fainelli   x86: add generic ...
158

8d5fffb92   Sam Ravnborg   x86: move all sim...
159
  config ARCH_MAY_HAVE_PC_FDC
8df3bd9e1   David Rientjes   x86: only compile...
160
  	def_bool ISA_DMA_API
8d5fffb92   Sam Ravnborg   x86: move all sim...
161

1032c0ba9   Sam Ravnborg   x86: arch/x86/Kco...
162
163
164
165
166
  config RWSEM_GENERIC_SPINLOCK
  	def_bool !X86_XADD
  
  config RWSEM_XCHGADD_ALGORITHM
  	def_bool X86_XADD
a6869cc4c   Venki Pallipadi   cpuidle: build fi...
167
168
  config ARCH_HAS_CPU_IDLE_WAIT
  	def_bool y
1032c0ba9   Sam Ravnborg   x86: arch/x86/Kco...
169
170
  config GENERIC_CALIBRATE_DELAY
  	def_bool y
8d5fffb92   Sam Ravnborg   x86: move all sim...
171
172
173
  config GENERIC_TIME_VSYSCALL
  	bool
  	default X86_64
9a0b84158   venkatesh.pallipadi@intel.com   cpuidle: Add a po...
174
175
  config ARCH_HAS_CPU_RELAX
  	def_bool y
89cedfefc   Venkatesh Pallipadi   cpuidle: upon BIO...
176
177
  config ARCH_HAS_DEFAULT_IDLE
  	def_bool y
1b27d05b6   Pekka Enberg   mm: move cache_li...
178
179
  config ARCH_HAS_CACHE_LINE_SIZE
  	def_bool y
dd5af90a7   Mike Travis   x86/non-x86: perc...
180
  config HAVE_SETUP_PER_CPU_AREA
89c9c4c58   Brian Gerst   x86: make Voyager...
181
  	def_bool y
b32ef636a   travis@sgi.com   percpu: use a kco...
182

08fc45806   Tejun Heo   percpu: build fir...
183
184
185
186
  config NEED_PER_CPU_EMBED_FIRST_CHUNK
  	def_bool y
  
  config NEED_PER_CPU_PAGE_FIRST_CHUNK
11124411a   Tejun Heo   x86: convert to t...
187
  	def_bool y
801e4062f   Johannes Berg   Hibernation: Clea...
188
189
  config ARCH_HIBERNATION_POSSIBLE
  	def_bool y
801e4062f   Johannes Berg   Hibernation: Clea...
190

f4cb57007   Johannes Berg   Suspend: Clean up...
191
192
  config ARCH_SUSPEND_POSSIBLE
  	def_bool y
f4cb57007   Johannes Berg   Suspend: Clean up...
193

8d5fffb92   Sam Ravnborg   x86: move all sim...
194
195
196
  config ZONE_DMA32
  	bool
  	default X86_64
8d5fffb92   Sam Ravnborg   x86: move all sim...
197
198
199
  config AUDIT_ARCH
  	bool
  	default X86_64
765c68bd5   Ingo Molnar   generic: make opt...
200
201
  config ARCH_SUPPORTS_OPTIMIZED_INLINING
  	def_bool y
6a11f75b6   Akinobu Mita   generic debug pag...
202
203
  config ARCH_SUPPORTS_DEBUG_PAGEALLOC
  	def_bool y
69575d388   Shane Wang   x86, intel_txt: c...
204
205
  config HAVE_INTEL_TXT
  	def_bool y
d3f138106   Suresh Siddha   iommu: Rename the...
206
  	depends on EXPERIMENTAL && INTEL_IOMMU && ACPI
69575d388   Shane Wang   x86, intel_txt: c...
207

6b0c3d44d   Sam Ravnborg   x86: unify arch/x...
208
209
210
211
212
213
214
  config X86_32_SMP
  	def_bool y
  	depends on X86_32 && SMP
  
  config X86_64_SMP
  	def_bool y
  	depends on X86_64 && SMP
8d5fffb92   Sam Ravnborg   x86: move all sim...
215
  config X86_HT
6fc108a08   Jan Beulich   x86: Clean up arc...
216
  	def_bool y
ee0011a79   Adrian Bunk   x86: revert CONFI...
217
  	depends on SMP
8d5fffb92   Sam Ravnborg   x86: move all sim...
218

ccbeed3a0   Tejun Heo   x86: make lazy %g...
219
220
  config X86_32_LAZY_GS
  	def_bool y
60a5317ff   Tejun Heo   x86: implement x8...
221
  	depends on X86_32 && !CC_STACKPROTECTOR
ccbeed3a0   Tejun Heo   x86: make lazy %g...
222

d61931d89   Borislav Petkov   x86: Add optimize...
223
224
225
226
  config ARCH_HWEIGHT_CFLAGS
  	string
  	default "-fcall-saved-ecx -fcall-saved-edx" if X86_32
  	default "-fcall-saved-rdi -fcall-saved-rsi -fcall-saved-rdx -fcall-saved-rcx -fcall-saved-r8 -fcall-saved-r9 -fcall-saved-r10 -fcall-saved-r11" if X86_64
8d5fffb92   Sam Ravnborg   x86: move all sim...
227
228
  config KTIME_SCALAR
  	def_bool X86_32
d7c53c9e8   Borislav Petkov   x86, hotplug: Ser...
229
230
231
232
  
  config ARCH_CPU_PROBE_RELEASE
  	def_bool y
  	depends on HOTPLUG_CPU
506f1d07b   Sam Ravnborg   x86: move the res...
233
  source "init/Kconfig"
dc52ddc0e   Matt Helsley   container freezer...
234
  source "kernel/Kconfig.freezer"
8d5fffb92   Sam Ravnborg   x86: move all sim...
235

506f1d07b   Sam Ravnborg   x86: move the res...
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
  menu "Processor type and features"
  
  source "kernel/time/Kconfig"
  
  config SMP
  	bool "Symmetric multi-processing support"
  	---help---
  	  This enables support for systems with more than one CPU. If you have
  	  a system with only one CPU, like most personal computers, say N. If
  	  you have a system with more than one CPU, say Y.
  
  	  If you say N here, the kernel will run on single and multiprocessor
  	  machines, but will use only one CPU of a multiprocessor machine. If
  	  you say Y here, the kernel will run on many, but not all,
  	  singleprocessor machines. On a singleprocessor machine, the kernel
  	  will run faster if you say N here.
  
  	  Note that if you say Y here and choose architecture "586" or
  	  "Pentium" under "Processor family", the kernel will not work on 486
  	  architectures. Similarly, multiprocessor kernels for the "PPro"
  	  architecture may not work on all Pentium based boards.
  
  	  People using multiprocessor machines who say Y here should also say
  	  Y to "Enhanced Real Time Clock Support", below. The "Advanced Power
  	  Management" code will be disabled if you say Y here.
395cf9691   Paul Bolle   doc: fix broken r...
261
  	  See also <file:Documentation/x86/i386/IO-APIC.txt>,
506f1d07b   Sam Ravnborg   x86: move the res...
262
263
264
265
  	  <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO available at
  	  <http://www.tldp.org/docs.html#howto>.
  
  	  If you don't know what to do here, say N.
06cd9a7dc   Yinghai Lu   x86: add x2apic c...
266
267
  config X86_X2APIC
  	bool "Support x2apic"
d3f138106   Suresh Siddha   iommu: Rename the...
268
  	depends on X86_LOCAL_APIC && X86_64 && IRQ_REMAP
06cd9a7dc   Yinghai Lu   x86: add x2apic c...
269
270
271
272
273
  	---help---
  	  This enables x2apic support on CPUs that have this feature.
  
  	  This allows 32-bit apic IDs (so it can support very large systems),
  	  and accesses the local apic via MSRs not via mmio.
06cd9a7dc   Yinghai Lu   x86: add x2apic c...
274
  	  If you don't know what to do here, say N.
6695c85b2   Yinghai Lu   x86: let MPS supp...
275
  config X86_MPPARSE
7a5276889   Jan Beulich   x86: simplify X86...
276
277
  	bool "Enable MPS table" if ACPI
  	default y
5ab74722a   Ingo Molnar   x86, VisWS: turn ...
278
  	depends on X86_LOCAL_APIC
8f9ca475c   Ingo Molnar   x86: clean up arc...
279
  	---help---
6695c85b2   Yinghai Lu   x86: let MPS supp...
280
281
  	  For old smp systems that do not have proper acpi support. Newer systems
  	  (esp with 64bit cpus) with acpi support, MADT and DSDT will override it
6695c85b2   Yinghai Lu   x86: let MPS supp...
282

26f7ef14a   Yinghai Lu   x86: don't treat ...
283
284
285
  config X86_BIGSMP
  	bool "Support for big SMP systems with more than 8 CPUs"
  	depends on X86_32 && SMP
8f9ca475c   Ingo Molnar   x86: clean up arc...
286
  	---help---
26f7ef14a   Yinghai Lu   x86: don't treat ...
287
  	  This option is needed for the systems that have more than 8 CPUs
506f1d07b   Sam Ravnborg   x86: move the res...
288

8425091ff   Ravikiran G Thirumalai   x86: improve the ...
289
  if X86_32
c5c606d9d   Ravikiran G Thirumalai   x86: cleanup, ren...
290
291
292
  config X86_EXTENDED_PLATFORM
  	bool "Support for extended (non-PC) x86 platforms"
  	default y
8f9ca475c   Ingo Molnar   x86: clean up arc...
293
  	---help---
06ac8346a   Ingo Molnar   x86: cleanup, int...
294
295
296
  	  If you disable this option then the kernel will only support
  	  standard PC platforms. (which covers the vast majority of
  	  systems out there.)
8425091ff   Ravikiran G Thirumalai   x86: improve the ...
297
298
299
300
301
302
303
304
  	  If you enable this option then you'll be able to select support
  	  for the following (non-PC) 32 bit x86 platforms:
  		AMD Elan
  		NUMAQ (IBM/Sequent)
  		RDC R-321x SoC
  		SGI 320/540 (Visual Workstation)
  		Summit/EXA (IBM x440)
  		Unisys ES7000 IA32 series
3f4110a48   Thomas Gleixner   x86: Add Mooresto...
305
  		Moorestown MID devices
06ac8346a   Ingo Molnar   x86: cleanup, int...
306
307
308
  
  	  If you have one of these systems, or if you want to build a
  	  generic distribution kernel, say Y here - otherwise say N.
8425091ff   Ravikiran G Thirumalai   x86: improve the ...
309
  endif
06ac8346a   Ingo Molnar   x86: cleanup, int...
310

8425091ff   Ravikiran G Thirumalai   x86: improve the ...
311
312
313
314
315
316
317
318
319
320
321
  if X86_64
  config X86_EXTENDED_PLATFORM
  	bool "Support for extended (non-PC) x86 platforms"
  	default y
  	---help---
  	  If you disable this option then the kernel will only support
  	  standard PC platforms. (which covers the vast majority of
  	  systems out there.)
  
  	  If you enable this option then you'll be able to select support
  	  for the following (non-PC) 64 bit x86 platforms:
44b111b51   Steffen Persvold   x86: Add NumaChip...
322
  		Numascale NumaChip
8425091ff   Ravikiran G Thirumalai   x86: improve the ...
323
324
325
326
327
328
  		ScaleMP vSMP
  		SGI Ultraviolet
  
  	  If you have one of these systems, or if you want to build a
  	  generic distribution kernel, say Y here - otherwise say N.
  endif
c5c606d9d   Ravikiran G Thirumalai   x86: cleanup, ren...
329
330
  # This is an alphabetically sorted list of 64 bit extended platforms
  # Please maintain the alphabetic order if and when there are additions
44b111b51   Steffen Persvold   x86: Add NumaChip...
331
332
333
334
335
336
337
338
339
340
341
342
  config X86_NUMACHIP
  	bool "Numascale NumaChip"
  	depends on X86_64
  	depends on X86_EXTENDED_PLATFORM
  	depends on NUMA
  	depends on SMP
  	depends on X86_X2APIC
  	depends on !EDAC_AMD64
  	---help---
  	  Adds support for Numascale NumaChip large-SMP systems. Needed to
  	  enable more than ~168 cores.
  	  If you don't have one of these, you should say N here.
506f1d07b   Sam Ravnborg   x86: move the res...
343

c5c606d9d   Ravikiran G Thirumalai   x86: cleanup, ren...
344
345
  config X86_VSMP
  	bool "ScaleMP vSMP"
03f1a17cd   Randy Dunlap   x86/vsmp: Elimina...
346
  	select PARAVIRT_GUEST
c5c606d9d   Ravikiran G Thirumalai   x86: cleanup, ren...
347
348
349
  	select PARAVIRT
  	depends on X86_64 && PCI
  	depends on X86_EXTENDED_PLATFORM
8f9ca475c   Ingo Molnar   x86: clean up arc...
350
  	---help---
c5c606d9d   Ravikiran G Thirumalai   x86: cleanup, ren...
351
352
353
  	  Support for ScaleMP vSMP systems.  Say 'Y' here if this kernel is
  	  supposed to run on these EM64T-based machines.  Only choose this option
  	  if you have one of these machines.
5e3a77e9a   Florian Fainelli   x86: add support ...
354

03b486322   Nick Piggin   x86: make UV supp...
355
356
357
  config X86_UV
  	bool "SGI Ultraviolet"
  	depends on X86_64
c5c606d9d   Ravikiran G Thirumalai   x86: cleanup, ren...
358
  	depends on X86_EXTENDED_PLATFORM
54c28d294   Jack Steiner   x86, uv: add Kcon...
359
  	depends on NUMA
9d6c26e73   Suresh Siddha   x86: x2apic, IR: ...
360
  	depends on X86_X2APIC
8f9ca475c   Ingo Molnar   x86: clean up arc...
361
  	---help---
03b486322   Nick Piggin   x86: make UV supp...
362
363
  	  This option is needed in order to support SGI Ultraviolet systems.
  	  If you don't have one of these, you should say N here.
c5c606d9d   Ravikiran G Thirumalai   x86: cleanup, ren...
364
365
  # Following is an alphabetically sorted list of 32 bit extended platforms
  # Please maintain the alphabetic order if and when there are additions
506f1d07b   Sam Ravnborg   x86: move the res...
366

c751e17b5   Thomas Gleixner   x86: Add CE4100 p...
367
368
369
370
371
372
  config X86_INTEL_CE
  	bool "CE4100 TV platform"
  	depends on PCI
  	depends on PCI_GODIRECT
  	depends on X86_32
  	depends on X86_EXTENDED_PLATFORM
37bc9f507   Dirk Brandewie   x86: Ce4100: Add ...
373
  	select X86_REBOOTFIXUPS
da6b737b9   Sebastian Andrzej Siewior   x86: Add device t...
374
375
  	select OF
  	select OF_EARLY_FLATTREE
c751e17b5   Thomas Gleixner   x86: Add CE4100 p...
376
377
378
379
  	---help---
  	  Select for the Intel CE media processor (CE4100) SOC.
  	  This option compiles in support for the CE4100 SOC for settop
  	  boxes and media devices.
dd1375253   Alan Cox   x86/intel_mid: Fi...
380
  config X86_WANT_INTEL_MID
43605ef18   Alan Cox   x86, config: Intr...
381
382
383
384
385
386
387
  	bool "Intel MID platform support"
  	depends on X86_32
  	depends on X86_EXTENDED_PLATFORM
  	---help---
  	  Select to build a kernel capable of supporting Intel MID platform
  	  systems which do not have the PCI legacy interfaces (Moorestown,
  	  Medfield). If you are building for a PC class system say N here.
dd1375253   Alan Cox   x86/intel_mid: Fi...
388
  if X86_WANT_INTEL_MID
43605ef18   Alan Cox   x86, config: Intr...
389

4e2b1c4f5   Alan Cox   x86/intel_mid: Kc...
390
391
  config X86_INTEL_MID
  	bool
3f4110a48   Thomas Gleixner   x86: Add Mooresto...
392
393
  config X86_MRST
         bool "Moorestown MID platform"
4b2f3f7d0   Jacob Pan   x86, mrst: Add Kc...
394
395
  	depends on PCI
  	depends on PCI_GOANY
4b2f3f7d0   Jacob Pan   x86, mrst: Add Kc...
396
  	depends on X86_IO_APIC
7c9c3a1e5   Alan Cox   x86/intel config:...
397
398
399
  	select X86_INTEL_MID
  	select SFI
  	select DW_APB_TIMER
bb24c4716   Jacob Pan   x86, apbt: Moores...
400
  	select APB_TIMER
1da4b1c6a   Feng Tang   x86/mrst: Add SFI...
401
402
  	select I2C
  	select SPI
b9fc71f47   Alan Cox   x86, mrst: The sh...
403
  	select INTEL_SCU_IPC
ad02519a0   Randy Dunlap   x86, mrst: Fix de...
404
  	select X86_PLATFORM_DEVICES
3f4110a48   Thomas Gleixner   x86: Add Mooresto...
405
406
407
408
409
410
411
  	---help---
  	  Moorestown is Intel's Low Power Intel Architecture (LPIA) based Moblin
  	  Internet Device(MID) platform. Moorestown consists of two chips:
  	  Lincroft (CPU core, graphics, and memory controller) and Langwell IOH.
  	  Unlike standard x86 PCs, Moorestown does not have many legacy devices
  	  nor standard legacy replacement devices/features. e.g. Moorestown does
  	  not contain i8259, i8254, HPET, legacy BIOS, most of the io ports.
1ea7c6737   Alan Cox   x86/config: Revam...
412
413
414
415
416
  config X86_MDFLD
         bool "Medfield MID platform"
  	depends on PCI
  	depends on PCI_GOANY
  	depends on X86_IO_APIC
7c9c3a1e5   Alan Cox   x86/intel config:...
417
418
419
  	select X86_INTEL_MID
  	select SFI
  	select DW_APB_TIMER
1ea7c6737   Alan Cox   x86/config: Revam...
420
421
422
423
424
425
426
427
428
429
430
  	select APB_TIMER
  	select I2C
  	select SPI
  	select INTEL_SCU_IPC
  	select X86_PLATFORM_DEVICES
  	---help---
  	  Medfield is Intel's Low Power Intel Architecture (LPIA) based Moblin
  	  Internet Device(MID) platform. 
  	  Unlike standard x86 PCs, Medfield does not have many legacy devices
  	  nor standard legacy replacement devices/features. e.g. Medfield does
  	  not contain i8259, i8254, HPET, legacy BIOS, most of the io ports.
43605ef18   Alan Cox   x86, config: Intr...
431
  endif
c5c606d9d   Ravikiran G Thirumalai   x86: cleanup, ren...
432
433
  config X86_RDC321X
  	bool "RDC R-321x SoC"
506f1d07b   Sam Ravnborg   x86: move the res...
434
  	depends on X86_32
c5c606d9d   Ravikiran G Thirumalai   x86: cleanup, ren...
435
436
437
438
439
440
441
  	depends on X86_EXTENDED_PLATFORM
  	select M486
  	select X86_REBOOTFIXUPS
  	---help---
  	  This option is needed for RDC R-321x system-on-chip, also known
  	  as R-8610-(G).
  	  If you don't have one of these chips, you should say N here.
e0c7ae376   Ingo Molnar   x86: rename X86_G...
442
  config X86_32_NON_STANDARD
9c3980176   Ingo Molnar   x86: move non-sta...
443
444
  	bool "Support non-standard 32-bit SMP architectures"
  	depends on X86_32 && SMP
c5c606d9d   Ravikiran G Thirumalai   x86: cleanup, ren...
445
  	depends on X86_EXTENDED_PLATFORM
8f9ca475c   Ingo Molnar   x86: clean up arc...
446
447
  	---help---
  	  This option compiles in the NUMAQ, Summit, bigsmp, ES7000, default
d49c42884   Yinghai Lu   x86: make generic...
448
449
450
  	  subarchitectures.  It is intended for a generic binary kernel.
  	  if you select them all, kernel will probe it one by one. and will
  	  fallback to default.
c5c606d9d   Ravikiran G Thirumalai   x86: cleanup, ren...
451
  # Alphabetically sorted list of Non standard 32 bit platforms
d49c42884   Yinghai Lu   x86: make generic...
452

506f1d07b   Sam Ravnborg   x86: move the res...
453
454
  config X86_NUMAQ
  	bool "NUMAQ (IBM/Sequent)"
e0c7ae376   Ingo Molnar   x86: rename X86_G...
455
  	depends on X86_32_NON_STANDARD
a92d152ef   Pan, Jacob jun   x86, numaq: Make ...
456
  	depends on PCI
506f1d07b   Sam Ravnborg   x86: move the res...
457
  	select NUMA
9c3980176   Ingo Molnar   x86: move non-sta...
458
  	select X86_MPPARSE
8f9ca475c   Ingo Molnar   x86: clean up arc...
459
  	---help---
d49c42884   Yinghai Lu   x86: make generic...
460
461
462
463
464
  	  This option is used for getting Linux to run on a NUMAQ (IBM/Sequent)
  	  NUMA multiquad box. This changes the way that processors are
  	  bootstrapped, and uses Clustered Logical APIC addressing mode instead
  	  of Flat Logical.  You will need a new lynxer.elf file to flash your
  	  firmware with - send email to <Martin.Bligh@us.ibm.com>.
506f1d07b   Sam Ravnborg   x86: move the res...
465

d949f36f1   Linus Torvalds   x86: Fix hwpoison...
466
  config X86_SUPPORTS_MEMORY_FAILURE
6fc108a08   Jan Beulich   x86: Clean up arc...
467
  	def_bool y
d949f36f1   Linus Torvalds   x86: Fix hwpoison...
468
469
470
471
472
473
474
  	# MCE code calls memory_failure():
  	depends on X86_MCE
  	# On 32-bit this adds too big of NODES_SHIFT and we run out of page flags:
  	depends on !X86_NUMAQ
  	# On 32-bit SPARSEMEM adds too big of SECTIONS_WIDTH:
  	depends on X86_64 || !SPARSEMEM
  	select ARCH_SUPPORTS_MEMORY_FAILURE
d949f36f1   Linus Torvalds   x86: Fix hwpoison...
475

1b84e1c81   Ingo Molnar   x86, VisWS: turn ...
476
477
  config X86_VISWS
  	bool "SGI 320/540 (Visual Workstation)"
c5c606d9d   Ravikiran G Thirumalai   x86: cleanup, ren...
478
479
480
  	depends on X86_32 && PCI && X86_MPPARSE && PCI_GODIRECT
  	depends on X86_32_NON_STANDARD
  	---help---
1b84e1c81   Ingo Molnar   x86, VisWS: turn ...
481
482
483
484
485
486
487
  	  The SGI Visual Workstation series is an IA32-based workstation
  	  based on SGI systems chips with some legacy PC hardware attached.
  
  	  Say Y here to create a kernel to run on the SGI 320 or 540.
  
  	  A kernel compiled for the Visual Workstation will run on general
  	  PCs as well. See <file:Documentation/sgi-visws.txt> for details.
9c3980176   Ingo Molnar   x86: move non-sta...
488
489
  config X86_SUMMIT
  	bool "Summit/EXA (IBM x440)"
e0c7ae376   Ingo Molnar   x86: rename X86_G...
490
  	depends on X86_32_NON_STANDARD
8f9ca475c   Ingo Molnar   x86: clean up arc...
491
  	---help---
9c3980176   Ingo Molnar   x86: move non-sta...
492
493
  	  This option is needed for IBM systems that use the Summit/EXA chipset.
  	  In particular, it is needed for the x440.
1f972768a   Ingo Molnar   x86, RDC321x: add...
494

9c3980176   Ingo Molnar   x86: move non-sta...
495
  config X86_ES7000
c5c606d9d   Ravikiran G Thirumalai   x86: cleanup, ren...
496
  	bool "Unisys ES7000 IA32 series"
26f7ef14a   Yinghai Lu   x86: don't treat ...
497
  	depends on X86_32_NON_STANDARD && X86_BIGSMP
8f9ca475c   Ingo Molnar   x86: clean up arc...
498
  	---help---
9c3980176   Ingo Molnar   x86: move non-sta...
499
500
  	  Support for Unisys ES7000 systems.  Say 'Y' here if this kernel is
  	  supposed to run on an IA32-based Unisys ES7000 system.
82148d1d0   Shérab   x86/platform: Add...
501
502
503
504
505
506
507
508
509
510
511
512
  config X86_32_IRIS
  	tristate "Eurobraille/Iris poweroff module"
  	depends on X86_32
  	---help---
  	  The Iris machines from EuroBraille do not have APM or ACPI support
  	  to shut themselves down properly.  A special I/O sequence is
  	  needed to do so, which is what this module does at
  	  kernel shutdown.
  
  	  This is only for Iris machines from EuroBraille.
  
  	  If unused, say N.
ae1e9130b   Ingo Molnar   sched: rename SCH...
513
  config SCHED_OMIT_FRAME_POINTER
3c2362e62   Harvey Harrison   x86: use def_bool...
514
515
  	def_bool y
  	prompt "Single-depth WCHAN output"
a87d09143   Ken Chen   x86, sched: enabl...
516
  	depends on X86
8f9ca475c   Ingo Molnar   x86: clean up arc...
517
  	---help---
506f1d07b   Sam Ravnborg   x86: move the res...
518
519
520
521
522
523
  	  Calculate simpler /proc/<PID>/wchan values. If this option
  	  is disabled then wchan values will recurse back to the
  	  caller function. This provides more accurate wchan values,
  	  at the expense of slightly more scheduling overhead.
  
  	  If in doubt, say "Y".
506f1d07b   Sam Ravnborg   x86: move the res...
524
525
  menuconfig PARAVIRT_GUEST
  	bool "Paravirtualized guest support"
8f9ca475c   Ingo Molnar   x86: clean up arc...
526
  	---help---
506f1d07b   Sam Ravnborg   x86: move the res...
527
528
529
530
531
532
  	  Say Y here to get to see options related to running Linux under
  	  various hypervisors.  This option alone does not add any kernel code.
  
  	  If you say N, all options in this submenu will be skipped and disabled.
  
  if PARAVIRT_GUEST
095c0aa83   Glauber Costa   sched: adjust sch...
533
534
535
536
537
538
539
540
541
542
543
  config PARAVIRT_TIME_ACCOUNTING
  	bool "Paravirtual steal time accounting"
  	select PARAVIRT
  	default n
  	---help---
  	  Select this option to enable fine granularity task steal time
  	  accounting. Time spent executing other tasks in parallel with
  	  the current vCPU is discounted from the vCPU power. To account for
  	  that, there can be a small performance impact.
  
  	  If in doubt, say N here.
506f1d07b   Sam Ravnborg   x86: move the res...
544
  source "arch/x86/xen/Kconfig"
790c73f62   Glauber de Oliveira Costa   x86: KVM guest: p...
545
546
547
  config KVM_CLOCK
  	bool "KVM paravirtualized clock"
  	select PARAVIRT
f6e16d5ad   Gerd Hoffmann   x86: KVM guest: U...
548
  	select PARAVIRT_CLOCK
8f9ca475c   Ingo Molnar   x86: clean up arc...
549
  	---help---
790c73f62   Glauber de Oliveira Costa   x86: KVM guest: p...
550
551
552
553
554
  	  Turning on this option will allow you to run a paravirtualized clock
  	  when running over the KVM hypervisor. Instead of relying on a PIT
  	  (or probably other) emulation by the underlying device model, the host
  	  provides the guest with timing infrastructure such as time of day, and
  	  system time
0cf1bfd27   Marcelo Tosatti   x86: KVM guest: a...
555
556
557
  config KVM_GUEST
  	bool "KVM Guest support"
  	select PARAVIRT
8f9ca475c   Ingo Molnar   x86: clean up arc...
558
559
560
  	---help---
  	  This option enables various optimizations for running under the KVM
  	  hypervisor.
0cf1bfd27   Marcelo Tosatti   x86: KVM guest: a...
561

506f1d07b   Sam Ravnborg   x86: move the res...
562
  source "arch/x86/lguest/Kconfig"
e61bd94a3   Eduardo Pereira Habkost   x86: allow enabli...
563
564
  config PARAVIRT
  	bool "Enable paravirtualization code"
8f9ca475c   Ingo Molnar   x86: clean up arc...
565
  	---help---
e61bd94a3   Eduardo Pereira Habkost   x86: allow enabli...
566
567
568
569
  	  This changes the kernel so it can modify itself when it is run
  	  under a hypervisor, potentially improving performance significantly
  	  over full virtualization.  However, when run without a hypervisor
  	  the kernel is theoretically slower and slightly larger.
b4ecc1269   Jeremy Fitzhardinge   x86: Fix performa...
570
571
572
573
574
575
576
577
578
579
580
581
  config PARAVIRT_SPINLOCKS
  	bool "Paravirtualization layer for spinlocks"
  	depends on PARAVIRT && SMP && EXPERIMENTAL
  	---help---
  	  Paravirtualized spinlocks allow a pvops backend to replace the
  	  spinlock implementation with something virtualization-friendly
  	  (for example, block the virtual CPU rather than spinning).
  
  	  Unfortunately the downside is an up to 5% performance hit on
  	  native kernels, with various workloads.
  
  	  If you are unsure how to answer this question, answer N.
7af192c95   Gerd Hoffmann   x86: Add structs ...
582
583
  config PARAVIRT_CLOCK
  	bool
7af192c95   Gerd Hoffmann   x86: Add structs ...
584

506f1d07b   Sam Ravnborg   x86: move the res...
585
  endif
97349135f   Jeremy Fitzhardinge   x86/paravirt: add...
586
  config PARAVIRT_DEBUG
8f9ca475c   Ingo Molnar   x86: clean up arc...
587
588
589
590
591
  	bool "paravirt-ops debugging"
  	depends on PARAVIRT && DEBUG_KERNEL
  	---help---
  	  Enable to debug paravirt_ops internals.  Specifically, BUG if
  	  a paravirt_op is missing when it is called.
97349135f   Jeremy Fitzhardinge   x86/paravirt: add...
592

08677214e   Yinghai Lu   x86: Make 64 bit ...
593
  config NO_BOOTMEM
774ea0bcb   Yinghai Lu   x86: Remove old b...
594
  	def_bool y
08677214e   Yinghai Lu   x86: Make 64 bit ...
595

032731844   Yinghai Lu   x86_64: simplify ...
596
597
  config MEMTEST
  	bool "Memtest"
8f9ca475c   Ingo Molnar   x86: clean up arc...
598
  	---help---
c64df7079   Yinghai Lu   x86: memtest boot...
599
  	  This option adds a kernel parameter 'memtest', which allows memtest
032731844   Yinghai Lu   x86_64: simplify ...
600
  	  to be set.
8f9ca475c   Ingo Molnar   x86: clean up arc...
601
602
603
604
  	        memtest=0, mean disabled; -- default
  	        memtest=1, mean do 1 test pattern;
  	        ...
  	        memtest=4, mean do 4 test patterns.
aba3728ce   Thomas Gleixner   x86: sanitize Kco...
605
  	  If you are unsure how to answer this question, answer N.
506f1d07b   Sam Ravnborg   x86: move the res...
606
607
  
  config X86_SUMMIT_NUMA
3c2362e62   Harvey Harrison   x86: use def_bool...
608
  	def_bool y
e0c7ae376   Ingo Molnar   x86: rename X86_G...
609
  	depends on X86_32 && NUMA && X86_32_NON_STANDARD
506f1d07b   Sam Ravnborg   x86: move the res...
610
611
  
  config X86_CYCLONE_TIMER
3c2362e62   Harvey Harrison   x86: use def_bool...
612
  	def_bool y
f9b15df46   Alessandro Rubini   x86/Kconfig: Cycl...
613
  	depends on X86_SUMMIT
506f1d07b   Sam Ravnborg   x86: move the res...
614

506f1d07b   Sam Ravnborg   x86: move the res...
615
616
617
  source "arch/x86/Kconfig.cpu"
  
  config HPET_TIMER
3c2362e62   Harvey Harrison   x86: use def_bool...
618
  	def_bool X86_64
506f1d07b   Sam Ravnborg   x86: move the res...
619
  	prompt "HPET Timer Support" if X86_32
8f9ca475c   Ingo Molnar   x86: clean up arc...
620
621
622
623
624
625
626
627
628
  	---help---
  	  Use the IA-PC HPET (High Precision Event Timer) to manage
  	  time in preference to the PIT and RTC, if a HPET is
  	  present.
  	  HPET is the next generation timer replacing legacy 8254s.
  	  The HPET provides a stable time base on SMP
  	  systems, unlike the TSC, but it is more expensive to access,
  	  as it is off-chip.  You can find the HPET spec at
  	  <http://www.intel.com/hardwaredesign/hpetspec_1.pdf>.
506f1d07b   Sam Ravnborg   x86: move the res...
629

8f9ca475c   Ingo Molnar   x86: clean up arc...
630
631
632
  	  You can safely choose Y here.  However, HPET will only be
  	  activated if the platform and the BIOS support this feature.
  	  Otherwise the 8254 will be used for timing services.
506f1d07b   Sam Ravnborg   x86: move the res...
633

8f9ca475c   Ingo Molnar   x86: clean up arc...
634
  	  Choose N to continue using the legacy 8254 timer.
506f1d07b   Sam Ravnborg   x86: move the res...
635
636
  
  config HPET_EMULATE_RTC
3c2362e62   Harvey Harrison   x86: use def_bool...
637
  	def_bool y
9d8af78b0   Bernhard Walle   rtc: add HPET RTC...
638
  	depends on HPET_TIMER && (RTC=y || RTC=m || RTC_DRV_CMOS=m || RTC_DRV_CMOS=y)
506f1d07b   Sam Ravnborg   x86: move the res...
639

bb24c4716   Jacob Pan   x86, apbt: Moores...
640
  config APB_TIMER
933b9463a   Alan Cox   x86/intel config:...
641
642
         def_bool y if X86_INTEL_MID
         prompt "Intel MID APB Timer Support" if X86_INTEL_MID
06c3df495   Jamie Iles   clocksource: apb:...
643
         select DW_APB_TIMER
a0c3832a5   Alan Cox   x86/apb: Fix conf...
644
         depends on X86_INTEL_MID && SFI
bb24c4716   Jacob Pan   x86, apbt: Moores...
645
646
647
648
649
650
         help
           APB timer is the replacement for 8254, HPET on X86 MID platforms.
           The APBT provides a stable time base on SMP
           systems, unlike the TSC, but it is more expensive to access,
           as it is off-chip. APB timers are always running regardless of CPU
           C states, they are used as per CPU clockevent device when possible.
6a108a14f   David Rientjes   kconfig: rename C...
651
  # Mark as expert because too many people got it wrong.
506f1d07b   Sam Ravnborg   x86: move the res...
652
  # The code disables itself when not needed.
7ae9392c0   Thomas Petazzoni   x86: configurable...
653
654
  config DMI
  	default y
6a108a14f   David Rientjes   kconfig: rename C...
655
  	bool "Enable DMI scanning" if EXPERT
8f9ca475c   Ingo Molnar   x86: clean up arc...
656
  	---help---
7ae9392c0   Thomas Petazzoni   x86: configurable...
657
658
659
660
  	  Enabled scanning of DMI to identify machine quirks. Say Y
  	  here unless you have verified that your setup is not
  	  affected by entries in the DMI blacklist. Required by PNP
  	  BIOS code.
506f1d07b   Sam Ravnborg   x86: move the res...
661
  config GART_IOMMU
6a108a14f   David Rientjes   kconfig: rename C...
662
  	bool "GART IOMMU support" if EXPERT
506f1d07b   Sam Ravnborg   x86: move the res...
663
664
  	default y
  	select SWIOTLB
23ac4ae82   Andreas Herrmann   x86, k8: Rename k...
665
  	depends on X86_64 && PCI && AMD_NB
8f9ca475c   Ingo Molnar   x86: clean up arc...
666
  	---help---
506f1d07b   Sam Ravnborg   x86: move the res...
667
668
669
670
671
672
673
674
675
676
677
678
679
680
  	  Support for full DMA access of devices with 32bit memory access only
  	  on systems with more than 3GB. This is usually needed for USB,
  	  sound, many IDE/SATA chipsets and some other devices.
  	  Provides a driver for the AMD Athlon64/Opteron/Turion/Sempron GART
  	  based hardware IOMMU and a software bounce buffer based IOMMU used
  	  on Intel systems and as fallback.
  	  The code is only active when needed (enough memory and limited
  	  device) unless CONFIG_IOMMU_DEBUG or iommu=force is specified
  	  too.
  
  config CALGARY_IOMMU
  	bool "IBM Calgary IOMMU support"
  	select SWIOTLB
  	depends on X86_64 && PCI && EXPERIMENTAL
8f9ca475c   Ingo Molnar   x86: clean up arc...
681
  	---help---
506f1d07b   Sam Ravnborg   x86: move the res...
682
683
684
685
686
687
688
689
690
691
692
693
694
695
  	  Support for hardware IOMMUs in IBM's xSeries x366 and x460
  	  systems. Needed to run systems with more than 3GB of memory
  	  properly with 32-bit PCI devices that do not support DAC
  	  (Double Address Cycle). Calgary also supports bus level
  	  isolation, where all DMAs pass through the IOMMU.  This
  	  prevents them from going anywhere except their intended
  	  destination. This catches hard-to-find kernel bugs and
  	  mis-behaving drivers and devices that do not use the DMA-API
  	  properly to set up their DMA buffers.  The IOMMU can be
  	  turned off at boot time with the iommu=off parameter.
  	  Normally the kernel will make the right choice by itself.
  	  If unsure, say Y.
  
  config CALGARY_IOMMU_ENABLED_BY_DEFAULT
3c2362e62   Harvey Harrison   x86: use def_bool...
696
697
  	def_bool y
  	prompt "Should Calgary be enabled by default?"
506f1d07b   Sam Ravnborg   x86: move the res...
698
  	depends on CALGARY_IOMMU
8f9ca475c   Ingo Molnar   x86: clean up arc...
699
  	---help---
506f1d07b   Sam Ravnborg   x86: move the res...
700
701
702
703
704
705
706
707
  	  Should Calgary be enabled by default? if you choose 'y', Calgary
  	  will be used (if it exists). If you choose 'n', Calgary will not be
  	  used even if it exists. If you choose 'n' and would like to use
  	  Calgary anyway, pass 'iommu=calgary' on the kernel command line.
  	  If unsure, say Y.
  
  # need this always selected by IOMMU for the VIA workaround
  config SWIOTLB
a1afd01c1   Joerg Roedel   x86: default to S...
708
  	def_bool y if X86_64
8f9ca475c   Ingo Molnar   x86: clean up arc...
709
  	---help---
506f1d07b   Sam Ravnborg   x86: move the res...
710
711
712
713
714
  	  Support for software bounce buffers used on x86-64 systems
  	  which don't have a hardware IOMMU (e.g. the current generation
  	  of Intel's x86-64 CPUs). Using this PCI devices which can only
  	  access 32-bits of memory can be used on systems with more than
  	  3 GB of memory. If unsure, say Y.
a85225092   FUJITA Tomonori   swiotlb: use iomm...
715
  config IOMMU_HELPER
18b743dc9   FUJITA Tomonori   x86, AMD IOMMU: c...
716
  	def_bool (CALGARY_IOMMU || GART_IOMMU || SWIOTLB || AMD_IOMMU)
d25e26b61   Linus Torvalds   [x86] Clean up MA...
717

1184dc2ff   Mike Travis   x86: modify Kconf...
718
  config MAXSMP
ddb0c5a68   Samuel Thibault   Replace Configure...
719
  	bool "Enable Maximum number of SMP Processors and NUMA Nodes"
36f5101a6   Mike Travis   x86: enable MAXSMP
720
721
  	depends on X86_64 && SMP && DEBUG_KERNEL && EXPERIMENTAL
  	select CPUMASK_OFFSTACK
8f9ca475c   Ingo Molnar   x86: clean up arc...
722
  	---help---
ddb0c5a68   Samuel Thibault   Replace Configure...
723
  	  Enable maximum number of CPUS and NUMA Nodes for this architecture.
1184dc2ff   Mike Travis   x86: modify Kconf...
724
  	  If unsure, say N.
506f1d07b   Sam Ravnborg   x86: move the res...
725
726
  
  config NR_CPUS
36f5101a6   Mike Travis   x86: enable MAXSMP
727
  	int "Maximum number of CPUs" if SMP && !MAXSMP
2a3313f49   Michael K. Johnson   x86: more than 8 ...
728
  	range 2 8 if SMP && X86_32 && !X86_BIGSMP
36f5101a6   Mike Travis   x86: enable MAXSMP
729
  	range 2 512 if SMP && !MAXSMP
78637a97b   Mike Travis   x86: Set CONFIG_N...
730
  	default "1" if !SMP
d25e26b61   Linus Torvalds   [x86] Clean up MA...
731
  	default "4096" if MAXSMP
78637a97b   Mike Travis   x86: Set CONFIG_N...
732
733
  	default "32" if SMP && (X86_NUMAQ || X86_SUMMIT || X86_BIGSMP || X86_ES7000)
  	default "8" if SMP
8f9ca475c   Ingo Molnar   x86: clean up arc...
734
  	---help---
506f1d07b   Sam Ravnborg   x86: move the res...
735
  	  This allows you to specify the maximum number of CPUs which this
d25e26b61   Linus Torvalds   [x86] Clean up MA...
736
  	  kernel will support.  The maximum supported value is 512 and the
506f1d07b   Sam Ravnborg   x86: move the res...
737
738
739
740
741
742
743
  	  minimum value which makes sense is 2.
  
  	  This is purely to save memory - each supported CPU adds
  	  approximately eight kilobytes to the kernel image.
  
  config SCHED_SMT
  	bool "SMT (Hyperthreading) scheduler support"
b089c12b2   Hiroshi Shimamoto   x86: X86_HT alway...
744
  	depends on X86_HT
8f9ca475c   Ingo Molnar   x86: clean up arc...
745
  	---help---
506f1d07b   Sam Ravnborg   x86: move the res...
746
747
748
749
750
751
  	  SMT scheduler support improves the CPU scheduler's decision making
  	  when dealing with Intel Pentium 4 chips with HyperThreading at a
  	  cost of slightly increased overhead in some places. If unsure say
  	  N here.
  
  config SCHED_MC
3c2362e62   Harvey Harrison   x86: use def_bool...
752
753
  	def_bool y
  	prompt "Multi-core scheduler support"
b089c12b2   Hiroshi Shimamoto   x86: X86_HT alway...
754
  	depends on X86_HT
8f9ca475c   Ingo Molnar   x86: clean up arc...
755
  	---help---
506f1d07b   Sam Ravnborg   x86: move the res...
756
757
758
  	  Multi-core scheduler support improves the CPU scheduler's decision
  	  making when dealing with multi-core CPU chips at a cost of slightly
  	  increased overhead in some places. If unsure say N here.
e82b8e4ea   Venkatesh Pallipadi   x86: Add IRQ_TIME...
759
760
761
762
763
764
765
766
767
768
  config IRQ_TIME_ACCOUNTING
  	bool "Fine granularity task level IRQ time accounting"
  	default n
  	---help---
  	  Select this option to enable fine granularity task irq time
  	  accounting. This is done by reading a timestamp on each
  	  transitions between softirq and hardirq state, so there can be a
  	  small performance impact.
  
  	  If in doubt, say N here.
506f1d07b   Sam Ravnborg   x86: move the res...
769
770
771
772
  source "kernel/Kconfig.preempt"
  
  config X86_UP_APIC
  	bool "Local APIC support on uniprocessors"
e0c7ae376   Ingo Molnar   x86: rename X86_G...
773
  	depends on X86_32 && !SMP && !X86_32_NON_STANDARD
8f9ca475c   Ingo Molnar   x86: clean up arc...
774
  	---help---
506f1d07b   Sam Ravnborg   x86: move the res...
775
776
777
778
779
780
781
782
783
784
785
786
  	  A local APIC (Advanced Programmable Interrupt Controller) is an
  	  integrated interrupt controller in the CPU. If you have a single-CPU
  	  system which has a processor with a local APIC, you can say Y here to
  	  enable and use it. If you say Y here even though your machine doesn't
  	  have a local APIC, then the kernel will still run with no slowdown at
  	  all. The local APIC supports CPU-generated self-interrupts (timer,
  	  performance counters), and the NMI watchdog which detects hard
  	  lockups.
  
  config X86_UP_IOAPIC
  	bool "IO-APIC support on uniprocessors"
  	depends on X86_UP_APIC
8f9ca475c   Ingo Molnar   x86: clean up arc...
787
  	---help---
506f1d07b   Sam Ravnborg   x86: move the res...
788
789
790
791
792
793
794
795
796
  	  An IO-APIC (I/O Advanced Programmable Interrupt Controller) is an
  	  SMP-capable replacement for PC-style interrupt controllers. Most
  	  SMP systems and many recent uniprocessor systems have one.
  
  	  If you have a single-CPU system with an IO-APIC, you can say Y here
  	  to use it. If you say Y here even though your machine doesn't have
  	  an IO-APIC, then the kernel will still run with no slowdown at all.
  
  config X86_LOCAL_APIC
3c2362e62   Harvey Harrison   x86: use def_bool...
797
  	def_bool y
e0c7ae376   Ingo Molnar   x86: rename X86_G...
798
  	depends on X86_64 || SMP || X86_32_NON_STANDARD || X86_UP_APIC
506f1d07b   Sam Ravnborg   x86: move the res...
799
800
  
  config X86_IO_APIC
3c2362e62   Harvey Harrison   x86: use def_bool...
801
  	def_bool y
1444e0c9d   Henrik Kretzschmar   x86: Fix deps of ...
802
  	depends on X86_64 || SMP || X86_32_NON_STANDARD || X86_UP_IOAPIC
506f1d07b   Sam Ravnborg   x86: move the res...
803
804
  
  config X86_VISWS_APIC
3c2362e62   Harvey Harrison   x86: use def_bool...
805
  	def_bool y
506f1d07b   Sam Ravnborg   x86: move the res...
806
  	depends on X86_32 && X86_VISWS
506f1d07b   Sam Ravnborg   x86: move the res...
807

41b9eb264   Stefan Assmann   x86, pci: introdu...
808
809
  config X86_REROUTE_FOR_BROKEN_BOOT_IRQS
  	bool "Reroute for broken boot IRQs"
41b9eb264   Stefan Assmann   x86, pci: introdu...
810
  	depends on X86_IO_APIC
8f9ca475c   Ingo Molnar   x86: clean up arc...
811
  	---help---
41b9eb264   Stefan Assmann   x86, pci: introdu...
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
  	  This option enables a workaround that fixes a source of
  	  spurious interrupts. This is recommended when threaded
  	  interrupt handling is used on systems where the generation of
  	  superfluous "boot interrupts" cannot be disabled.
  
  	  Some chipsets generate a legacy INTx "boot IRQ" when the IRQ
  	  entry in the chipset's IO-APIC is masked (as, e.g. the RT
  	  kernel does during interrupt handling). On chipsets where this
  	  boot IRQ generation cannot be disabled, this workaround keeps
  	  the original IRQ line masked so that only the equivalent "boot
  	  IRQ" is delivered to the CPUs. The workaround also tells the
  	  kernel to set up the IRQ handler on the boot IRQ line. In this
  	  way only one interrupt is delivered to the kernel. Otherwise
  	  the spurious second interrupt may cause the kernel to bring
  	  down (vital) interrupt lines.
  
  	  Only affects "broken" chipsets. Interrupt sharing may be
  	  increased on these systems.
506f1d07b   Sam Ravnborg   x86: move the res...
830
  config X86_MCE
bab9bc658   Andi Kleen   x86: mce: Update ...
831
  	bool "Machine Check / overheating reporting"
506f1d07b   Sam Ravnborg   x86: move the res...
832
  	---help---
bab9bc658   Andi Kleen   x86: mce: Update ...
833
834
  	  Machine Check support allows the processor to notify the
  	  kernel if it detects a problem (e.g. overheating, data corruption).
506f1d07b   Sam Ravnborg   x86: move the res...
835
  	  The action the kernel takes depends on the severity of the problem,
bab9bc658   Andi Kleen   x86: mce: Update ...
836
  	  ranging from warning messages to halting the machine.
4efc0670b   Andi Kleen   x86, mce: use 64b...
837

506f1d07b   Sam Ravnborg   x86: move the res...
838
  config X86_MCE_INTEL
3c2362e62   Harvey Harrison   x86: use def_bool...
839
840
  	def_bool y
  	prompt "Intel MCE features"
c1ebf8356   Andi Kleen   x86: mce: Rename ...
841
  	depends on X86_MCE && X86_LOCAL_APIC
8f9ca475c   Ingo Molnar   x86: clean up arc...
842
  	---help---
506f1d07b   Sam Ravnborg   x86: move the res...
843
844
845
846
  	   Additional support for intel specific MCE features such as
  	   the thermal monitor.
  
  config X86_MCE_AMD
3c2362e62   Harvey Harrison   x86: use def_bool...
847
848
  	def_bool y
  	prompt "AMD MCE features"
c1ebf8356   Andi Kleen   x86: mce: Rename ...
849
  	depends on X86_MCE && X86_LOCAL_APIC
8f9ca475c   Ingo Molnar   x86: clean up arc...
850
  	---help---
506f1d07b   Sam Ravnborg   x86: move the res...
851
852
  	   Additional support for AMD specific MCE features such as
  	   the DRAM Error Threshold.
4efc0670b   Andi Kleen   x86, mce: use 64b...
853
  config X86_ANCIENT_MCE
6fc108a08   Jan Beulich   x86: Clean up arc...
854
  	bool "Support for old Pentium 5 / WinChip machine checks"
c31d96338   Andi Kleen   x86: mce: Make CO...
855
  	depends on X86_32 && X86_MCE
cd13adcc8   Hidetoshi Seto   x86: trivial clea...
856
857
858
859
  	---help---
  	  Include support for machine check handling on old Pentium 5 or WinChip
  	  systems. These typically need to be enabled explicitely on the command
  	  line.
4efc0670b   Andi Kleen   x86, mce: use 64b...
860

b27626863   Andi Kleen   x86, mce, cmci: f...
861
862
  config X86_MCE_THRESHOLD
  	depends on X86_MCE_AMD || X86_MCE_INTEL
6fc108a08   Jan Beulich   x86: Clean up arc...
863
  	def_bool y
b27626863   Andi Kleen   x86, mce, cmci: f...
864

ea149b36c   Andi Kleen   x86, mce: add bas...
865
  config X86_MCE_INJECT
c1ebf8356   Andi Kleen   x86: mce: Rename ...
866
  	depends on X86_MCE
ea149b36c   Andi Kleen   x86, mce: add bas...
867
868
869
870
871
  	tristate "Machine check injector support"
  	---help---
  	  Provide support for injecting machine checks for testing purposes.
  	  If you don't know what a machine check is and you don't do kernel
  	  QA it is safe to say n.
4efc0670b   Andi Kleen   x86, mce: use 64b...
872
873
  config X86_THERMAL_VECTOR
  	def_bool y
5bb38adcb   Andi Kleen   x86: mce: Remove ...
874
  	depends on X86_MCE_INTEL
4efc0670b   Andi Kleen   x86, mce: use 64b...
875

506f1d07b   Sam Ravnborg   x86: move the res...
876
  config VM86
6a108a14f   David Rientjes   kconfig: rename C...
877
  	bool "Enable VM86 support" if EXPERT
506f1d07b   Sam Ravnborg   x86: move the res...
878
879
  	default y
  	depends on X86_32
8f9ca475c   Ingo Molnar   x86: clean up arc...
880
881
  	---help---
  	  This option is required by programs like DOSEMU to run 16-bit legacy
506f1d07b   Sam Ravnborg   x86: move the res...
882
  	  code on X86 processors. It also may be needed by software like
8f9ca475c   Ingo Molnar   x86: clean up arc...
883
884
  	  XFree86 to initialize some video cards via BIOS. Disabling this
  	  option saves about 6k.
506f1d07b   Sam Ravnborg   x86: move the res...
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
  
  config TOSHIBA
  	tristate "Toshiba Laptop support"
  	depends on X86_32
  	---help---
  	  This adds a driver to safely access the System Management Mode of
  	  the CPU on Toshiba portables with a genuine Toshiba BIOS. It does
  	  not work on models with a Phoenix BIOS. The System Management Mode
  	  is used to set the BIOS and power saving options on Toshiba portables.
  
  	  For information on utilities to make use of this driver see the
  	  Toshiba Linux utilities web site at:
  	  <http://www.buzzard.org.uk/toshiba/>.
  
  	  Say Y if you intend to run this kernel on a Toshiba portable.
  	  Say N otherwise.
  
  config I8K
  	tristate "Dell laptop support"
949a9d700   Jean Delvare   i8k: Integrate wi...
904
  	select HWMON
506f1d07b   Sam Ravnborg   x86: move the res...
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
  	---help---
  	  This adds a driver to safely access the System Management Mode
  	  of the CPU on the Dell Inspiron 8000. The System Management Mode
  	  is used to read cpu temperature and cooling fan status and to
  	  control the fans on the I8K portables.
  
  	  This driver has been tested only on the Inspiron 8000 but it may
  	  also work with other Dell laptops. You can force loading on other
  	  models by passing the parameter `force=1' to the module. Use at
  	  your own risk.
  
  	  For information on utilities to make use of this driver see the
  	  I8K Linux utilities web site at:
  	  <http://people.debian.org/~dz/i8k/>
  
  	  Say Y if you intend to run this kernel on a Dell Inspiron 8000.
  	  Say N otherwise.
  
  config X86_REBOOTFIXUPS
9ba16087d   Jan Beulich   Kconfig: eliminat...
924
925
  	bool "Enable X86 board specific fixups for reboot"
  	depends on X86_32
506f1d07b   Sam Ravnborg   x86: move the res...
926
927
928
929
930
931
932
933
  	---help---
  	  This enables chipset and/or board specific fixups to be done
  	  in order to get reboot to work correctly. This is only needed on
  	  some combinations of hardware and BIOS. The symptom, for which
  	  this config is intended, is when reboot ends with a stalled/hung
  	  system.
  
  	  Currently, the only fixup is for the Geode machines using
5e3a77e9a   Florian Fainelli   x86: add support ...
934
  	  CS5530A and CS5536 chipsets and the RDC R-321x SoC.
506f1d07b   Sam Ravnborg   x86: move the res...
935
936
937
938
939
940
  
  	  Say Y if you want to enable the fixup. Currently, it's safe to
  	  enable this option even if you don't need it.
  	  Say N otherwise.
  
  config MICROCODE
8d86f390d   Peter Oruba   x86: major refact...
941
  	tristate "/dev/cpu/microcode - microcode support"
506f1d07b   Sam Ravnborg   x86: move the res...
942
943
944
  	select FW_LOADER
  	---help---
  	  If you say Y here, you will be able to update the microcode on
80cc9f102   Peter Oruba   x86: AMD microcod...
945
946
947
948
949
950
  	  certain Intel and AMD processors. The Intel support is for the
  	  IA32 family, e.g. Pentium Pro, Pentium II, Pentium III,
  	  Pentium 4, Xeon etc. The AMD support is for family 0x10 and
  	  0x11 processors, e.g. Opteron, Phenom and Turion 64 Ultra.
  	  You will obviously need the actual microcode binary data itself
  	  which is not shipped with the Linux kernel.
506f1d07b   Sam Ravnborg   x86: move the res...
951

8d86f390d   Peter Oruba   x86: major refact...
952
953
  	  This option selects the general module only, you need to select
  	  at least one vendor specific module as well.
506f1d07b   Sam Ravnborg   x86: move the res...
954
955
956
  
  	  To compile this driver as a module, choose M here: the
  	  module will be called microcode.
8d86f390d   Peter Oruba   x86: major refact...
957
  config MICROCODE_INTEL
8f9ca475c   Ingo Molnar   x86: clean up arc...
958
959
960
961
962
963
964
965
966
967
968
  	bool "Intel microcode patch loading support"
  	depends on MICROCODE
  	default MICROCODE
  	select FW_LOADER
  	---help---
  	  This options enables microcode patch loading support for Intel
  	  processors.
  
  	  For latest news and information on obtaining all the required
  	  Intel ingredients for this driver, check:
  	  <http://www.urbanmyth.org/microcode/>.
8d86f390d   Peter Oruba   x86: major refact...
969

80cc9f102   Peter Oruba   x86: AMD microcod...
970
  config MICROCODE_AMD
8f9ca475c   Ingo Molnar   x86: clean up arc...
971
972
973
974
975
976
  	bool "AMD microcode patch loading support"
  	depends on MICROCODE
  	select FW_LOADER
  	---help---
  	  If you select this option, microcode patch loading support for AMD
  	  processors will be enabled.
80cc9f102   Peter Oruba   x86: AMD microcod...
977

8f9ca475c   Ingo Molnar   x86: clean up arc...
978
  config MICROCODE_OLD_INTERFACE
3c2362e62   Harvey Harrison   x86: use def_bool...
979
  	def_bool y
506f1d07b   Sam Ravnborg   x86: move the res...
980
  	depends on MICROCODE
506f1d07b   Sam Ravnborg   x86: move the res...
981
982
983
  
  config X86_MSR
  	tristate "/dev/cpu/*/msr - Model-specific register support"
8f9ca475c   Ingo Molnar   x86: clean up arc...
984
  	---help---
506f1d07b   Sam Ravnborg   x86: move the res...
985
986
987
988
989
990
991
992
  	  This device gives privileged processes access to the x86
  	  Model-Specific Registers (MSRs).  It is a character device with
  	  major 202 and minors 0 to 31 for /dev/cpu/0/msr to /dev/cpu/31/msr.
  	  MSR accesses are directed to a specific CPU on multi-processor
  	  systems.
  
  config X86_CPUID
  	tristate "/dev/cpu/*/cpuid - CPU information support"
8f9ca475c   Ingo Molnar   x86: clean up arc...
993
  	---help---
506f1d07b   Sam Ravnborg   x86: move the res...
994
995
996
997
998
999
1000
  	  This device gives processes access to the x86 CPUID instruction to
  	  be executed on a specific processor.  It is a character device
  	  with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to
  	  /dev/cpu/31/cpuid.
  
  choice
  	prompt "High Memory Support"
506f1d07b   Sam Ravnborg   x86: move the res...
1001
  	default HIGHMEM64G if X86_NUMAQ
6fc108a08   Jan Beulich   x86: Clean up arc...
1002
  	default HIGHMEM4G
506f1d07b   Sam Ravnborg   x86: move the res...
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
  	depends on X86_32
  
  config NOHIGHMEM
  	bool "off"
  	depends on !X86_NUMAQ
  	---help---
  	  Linux can use up to 64 Gigabytes of physical memory on x86 systems.
  	  However, the address space of 32-bit x86 processors is only 4
  	  Gigabytes large. That means that, if you have a large amount of
  	  physical memory, not all of it can be "permanently mapped" by the
  	  kernel. The physical memory that's not permanently mapped is called
  	  "high memory".
  
  	  If you are compiling a kernel which will never run on a machine with
  	  more than 1 Gigabyte total physical RAM, answer "off" here (default
  	  choice and suitable for most users). This will result in a "3GB/1GB"
  	  split: 3GB are mapped so that each process sees a 3GB virtual memory
  	  space and the remaining part of the 4GB virtual memory space is used
  	  by the kernel to permanently map as much physical memory as
  	  possible.
  
  	  If the machine has between 1 and 4 Gigabytes physical RAM, then
  	  answer "4GB" here.
  
  	  If more than 4 Gigabytes is used then answer "64GB" here. This
  	  selection turns Intel PAE (Physical Address Extension) mode on.
  	  PAE implements 3-level paging on IA32 processors. PAE is fully
  	  supported by Linux, PAE mode is implemented on all recent Intel
  	  processors (Pentium Pro and better). NOTE: If you say "64GB" here,
  	  then the kernel will not boot on CPUs that don't support PAE!
  
  	  The actual amount of total physical memory will either be
  	  auto detected or can be forced by using a kernel command line option
  	  such as "mem=256M". (Try "man bootparam" or see the documentation of
  	  your boot loader (lilo or loadlin) about how to pass options to the
  	  kernel at boot time.)
  
  	  If unsure, say "off".
  
  config HIGHMEM4G
  	bool "4GB"
  	depends on !X86_NUMAQ
8f9ca475c   Ingo Molnar   x86: clean up arc...
1045
  	---help---
506f1d07b   Sam Ravnborg   x86: move the res...
1046
1047
1048
1049
1050
1051
1052
  	  Select this if you have a 32-bit processor and between 1 and 4
  	  gigabytes of physical RAM.
  
  config HIGHMEM64G
  	bool "64GB"
  	depends on !M386 && !M486
  	select X86_PAE
8f9ca475c   Ingo Molnar   x86: clean up arc...
1053
  	---help---
506f1d07b   Sam Ravnborg   x86: move the res...
1054
1055
1056
1057
1058
1059
1060
  	  Select this if you have a 32-bit processor and more than 4
  	  gigabytes of physical RAM.
  
  endchoice
  
  choice
  	depends on EXPERIMENTAL
6a108a14f   David Rientjes   kconfig: rename C...
1061
  	prompt "Memory split" if EXPERT
506f1d07b   Sam Ravnborg   x86: move the res...
1062
1063
  	default VMSPLIT_3G
  	depends on X86_32
8f9ca475c   Ingo Molnar   x86: clean up arc...
1064
  	---help---
506f1d07b   Sam Ravnborg   x86: move the res...
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
  	  Select the desired split between kernel and user memory.
  
  	  If the address range available to the kernel is less than the
  	  physical memory installed, the remaining memory will be available
  	  as "high memory". Accessing high memory is a little more costly
  	  than low memory, as it needs to be mapped into the kernel first.
  	  Note that increasing the kernel address space limits the range
  	  available to user programs, making the address space there
  	  tighter.  Selecting anything other than the default 3G/1G split
  	  will also likely make your kernel incompatible with binary-only
  	  kernel modules.
  
  	  If you are not absolutely sure what you are doing, leave this
  	  option alone!
  
  	config VMSPLIT_3G
  		bool "3G/1G user/kernel split"
  	config VMSPLIT_3G_OPT
  		depends on !X86_PAE
  		bool "3G/1G user/kernel split (for full 1G low memory)"
  	config VMSPLIT_2G
  		bool "2G/2G user/kernel split"
  	config VMSPLIT_2G_OPT
  		depends on !X86_PAE
  		bool "2G/2G user/kernel split (for full 2G low memory)"
  	config VMSPLIT_1G
  		bool "1G/3G user/kernel split"
  endchoice
  
  config PAGE_OFFSET
  	hex
  	default 0xB0000000 if VMSPLIT_3G_OPT
  	default 0x80000000 if VMSPLIT_2G
  	default 0x78000000 if VMSPLIT_2G_OPT
  	default 0x40000000 if VMSPLIT_1G
  	default 0xC0000000
  	depends on X86_32
  
  config HIGHMEM
3c2362e62   Harvey Harrison   x86: use def_bool...
1104
  	def_bool y
506f1d07b   Sam Ravnborg   x86: move the res...
1105
  	depends on X86_32 && (HIGHMEM64G || HIGHMEM4G)
506f1d07b   Sam Ravnborg   x86: move the res...
1106
1107
  
  config X86_PAE
9ba16087d   Jan Beulich   Kconfig: eliminat...
1108
  	bool "PAE (Physical Address Extension) Support"
506f1d07b   Sam Ravnborg   x86: move the res...
1109
  	depends on X86_32 && !HIGHMEM4G
8f9ca475c   Ingo Molnar   x86: clean up arc...
1110
  	---help---
506f1d07b   Sam Ravnborg   x86: move the res...
1111
1112
1113
1114
  	  PAE is required for NX support, and furthermore enables
  	  larger swapspace support for non-overcommit purposes. It
  	  has the cost of more pagetable lookup overhead, and also
  	  consumes more pagetable space per process.
600715dcd   Jeremy Fitzhardinge   generic: add phys...
1115
  config ARCH_PHYS_ADDR_T_64BIT
8f9ca475c   Ingo Molnar   x86: clean up arc...
1116
  	def_bool X86_64 || X86_PAE
600715dcd   Jeremy Fitzhardinge   generic: add phys...
1117

66f2b0615   FUJITA Tomonori   x86, mm: Enable A...
1118
1119
  config ARCH_DMA_ADDR_T_64BIT
  	def_bool X86_64 || HIGHMEM64G
9e899816d   Nick Piggin   x86, mm: enable G...
1120
  config DIRECT_GBPAGES
6a108a14f   David Rientjes   kconfig: rename C...
1121
  	bool "Enable 1GB pages for kernel pagetables" if EXPERT
9e899816d   Nick Piggin   x86, mm: enable G...
1122
1123
  	default y
  	depends on X86_64
8f9ca475c   Ingo Molnar   x86: clean up arc...
1124
  	---help---
9e899816d   Nick Piggin   x86, mm: enable G...
1125
1126
1127
  	  Allow the kernel linear mapping to use 1GB pages on CPUs that
  	  support it. This can improve the kernel's performance a tiny bit by
  	  reducing TLB pressure. If in doubt, say "Y".
506f1d07b   Sam Ravnborg   x86: move the res...
1128
1129
  # Common NUMA Features
  config NUMA
fd51b2d7d   KOSAKI Motohiro   x86: update CONFI...
1130
  	bool "Numa Memory Allocation and Scheduler Support"
506f1d07b   Sam Ravnborg   x86: move the res...
1131
  	depends on SMP
604d20554   Rafael J. Wysocki   x86: make NUMA on...
1132
  	depends on X86_64 || (X86_32 && HIGHMEM64G && (X86_NUMAQ || X86_BIGSMP || X86_SUMMIT && ACPI) && EXPERIMENTAL)
0699eae14   Yinghai Lu   x86: Kconfig clea...
1133
  	default y if (X86_NUMAQ || X86_SUMMIT || X86_BIGSMP)
8f9ca475c   Ingo Molnar   x86: clean up arc...
1134
  	---help---
506f1d07b   Sam Ravnborg   x86: move the res...
1135
  	  Enable NUMA (Non Uniform Memory Access) support.
fd51b2d7d   KOSAKI Motohiro   x86: update CONFI...
1136

506f1d07b   Sam Ravnborg   x86: move the res...
1137
1138
1139
  	  The kernel will try to allocate memory used by a CPU on the
  	  local memory controller of the CPU and add some more
  	  NUMA awareness to the kernel.
c280ea5e4   Ingo Molnar   x86: fix document...
1140
  	  For 64-bit this is recommended if the system is Intel Core i7
fd51b2d7d   KOSAKI Motohiro   x86: update CONFI...
1141
1142
1143
1144
1145
1146
1147
  	  (or later), AMD Opteron, or EM64T NUMA.
  
  	  For 32-bit this is only needed on (rare) 32-bit-only platforms
  	  that support NUMA topologies, such as NUMAQ / Summit, or if you
  	  boot a 32-bit kernel on a 64-bit NUMA platform.
  
  	  Otherwise, you should say N.
506f1d07b   Sam Ravnborg   x86: move the res...
1148
1149
1150
  
  comment "NUMA (Summit) requires SMP, 64GB highmem support, ACPI"
  	depends on X86_32 && X86_SUMMIT && (!HIGHMEM64G || !ACPI)
eec1d4fa0   Hans Rosenfeld   x86, amd-nb: Comp...
1151
  config AMD_NUMA
3c2362e62   Harvey Harrison   x86: use def_bool...
1152
1153
  	def_bool y
  	prompt "Old style AMD Opteron NUMA detection"
5da0ef9a8   Tejun Heo   x86: Disable AMD_...
1154
  	depends on X86_64 && NUMA && PCI
8f9ca475c   Ingo Molnar   x86: clean up arc...
1155
  	---help---
eec1d4fa0   Hans Rosenfeld   x86, amd-nb: Comp...
1156
1157
1158
1159
1160
  	  Enable AMD NUMA node topology detection.  You should say Y here if
  	  you have a multi processor AMD system. This uses an old method to
  	  read the NUMA configuration directly from the builtin Northbridge
  	  of Opteron. It is recommended to use X86_64_ACPI_NUMA instead,
  	  which also takes priority if both are compiled in.
506f1d07b   Sam Ravnborg   x86: move the res...
1161
1162
  
  config X86_64_ACPI_NUMA
3c2362e62   Harvey Harrison   x86: use def_bool...
1163
1164
  	def_bool y
  	prompt "ACPI NUMA detection"
506f1d07b   Sam Ravnborg   x86: move the res...
1165
1166
  	depends on X86_64 && NUMA && ACPI && PCI
  	select ACPI_NUMA
8f9ca475c   Ingo Molnar   x86: clean up arc...
1167
  	---help---
506f1d07b   Sam Ravnborg   x86: move the res...
1168
  	  Enable ACPI SRAT based node topology detection.
6ec6e0d9f   Suresh Siddha   srat, x86: add su...
1169
1170
1171
1172
1173
1174
1175
1176
  # Some NUMA nodes have memory ranges that span
  # other nodes.  Even though a pfn is valid and
  # between a node's start and end pfns, it may not
  # reside on that node.  See memmap_init_zone()
  # for details.
  config NODES_SPAN_OTHER_NODES
  	def_bool y
  	depends on X86_64_ACPI_NUMA
506f1d07b   Sam Ravnborg   x86: move the res...
1177
1178
  config NUMA_EMU
  	bool "NUMA emulation"
1b7e03ef7   Tejun Heo   x86, NUMA: Enable...
1179
  	depends on NUMA
8f9ca475c   Ingo Molnar   x86: clean up arc...
1180
  	---help---
506f1d07b   Sam Ravnborg   x86: move the res...
1181
1182
1183
1184
1185
  	  Enable NUMA emulation. A flat machine will be split
  	  into virtual nodes when booted with "numa=fake=N", where N is the
  	  number of nodes. This is only useful for debugging.
  
  config NODES_SHIFT
d25e26b61   Linus Torvalds   [x86] Clean up MA...
1186
  	int "Maximum NUMA Nodes (as a power of 2)" if !MAXSMP
51591e31d   David Rientjes   x86: Increase CON...
1187
1188
  	range 1 10
  	default "10" if MAXSMP
506f1d07b   Sam Ravnborg   x86: move the res...
1189
1190
1191
1192
  	default "6" if X86_64
  	default "4" if X86_NUMAQ
  	default "3"
  	depends on NEED_MULTIPLE_NODES
8f9ca475c   Ingo Molnar   x86: clean up arc...
1193
  	---help---
1184dc2ff   Mike Travis   x86: modify Kconf...
1194
  	  Specify the maximum number of NUMA Nodes available on the target
692105b8a   Matt LaPlante   trivial: fix typo...
1195
  	  system.  Increases memory reserved to accommodate various tables.
506f1d07b   Sam Ravnborg   x86: move the res...
1196

c13293755   Tejun Heo   bootmem: clean up...
1197
  config HAVE_ARCH_BOOTMEM
3c2362e62   Harvey Harrison   x86: use def_bool...
1198
  	def_bool y
506f1d07b   Sam Ravnborg   x86: move the res...
1199
  	depends on X86_32 && NUMA
506f1d07b   Sam Ravnborg   x86: move the res...
1200

3b16651f8   Tejun Heo   x86: Clean up mem...
1201
1202
1203
  config HAVE_ARCH_ALLOC_REMAP
  	def_bool y
  	depends on X86_32 && NUMA
506f1d07b   Sam Ravnborg   x86: move the res...
1204
  config ARCH_HAVE_MEMORY_PRESENT
3c2362e62   Harvey Harrison   x86: use def_bool...
1205
  	def_bool y
506f1d07b   Sam Ravnborg   x86: move the res...
1206
  	depends on X86_32 && DISCONTIGMEM
506f1d07b   Sam Ravnborg   x86: move the res...
1207
1208
  
  config NEED_NODE_MEMMAP_SIZE
3c2362e62   Harvey Harrison   x86: use def_bool...
1209
  	def_bool y
506f1d07b   Sam Ravnborg   x86: move the res...
1210
  	depends on X86_32 && (DISCONTIGMEM || SPARSEMEM)
506f1d07b   Sam Ravnborg   x86: move the res...
1211

506f1d07b   Sam Ravnborg   x86: move the res...
1212
1213
  config ARCH_FLATMEM_ENABLE
  	def_bool y
3b16651f8   Tejun Heo   x86: Clean up mem...
1214
  	depends on X86_32 && !NUMA
506f1d07b   Sam Ravnborg   x86: move the res...
1215
1216
1217
  
  config ARCH_DISCONTIGMEM_ENABLE
  	def_bool y
b263295db   Christoph Lameter   x86: 64-bit, make...
1218
  	depends on NUMA && X86_32
506f1d07b   Sam Ravnborg   x86: move the res...
1219
1220
1221
  
  config ARCH_DISCONTIGMEM_DEFAULT
  	def_bool y
b263295db   Christoph Lameter   x86: 64-bit, make...
1222
  	depends on NUMA && X86_32
506f1d07b   Sam Ravnborg   x86: move the res...
1223
1224
  config ARCH_SPARSEMEM_ENABLE
  	def_bool y
4272ebfbe   Yinghai Lu   x86: allow more t...
1225
  	depends on X86_64 || NUMA || (EXPERIMENTAL && X86_32) || X86_32_NON_STANDARD
506f1d07b   Sam Ravnborg   x86: move the res...
1226
1227
  	select SPARSEMEM_STATIC if X86_32
  	select SPARSEMEM_VMEMMAP_ENABLE if X86_64
3b16651f8   Tejun Heo   x86: Clean up mem...
1228
1229
1230
  config ARCH_SPARSEMEM_DEFAULT
  	def_bool y
  	depends on X86_64
506f1d07b   Sam Ravnborg   x86: move the res...
1231
1232
  config ARCH_SELECT_MEMORY_MODEL
  	def_bool y
b263295db   Christoph Lameter   x86: 64-bit, make...
1233
  	depends on ARCH_SPARSEMEM_ENABLE
506f1d07b   Sam Ravnborg   x86: move the res...
1234
1235
1236
1237
  
  config ARCH_MEMORY_PROBE
  	def_bool X86_64
  	depends on MEMORY_HOTPLUG
3b16651f8   Tejun Heo   x86: Clean up mem...
1238
1239
1240
  config ARCH_PROC_KCORE_TEXT
  	def_bool y
  	depends on X86_64 && PROC_KCORE
a29815a33   Avi Kivity   core, x86: make L...
1241
1242
1243
1244
  config ILLEGAL_POINTER_VALUE
         hex
         default 0 if X86_32
         default 0xdead000000000000 if X86_64
506f1d07b   Sam Ravnborg   x86: move the res...
1245
1246
1247
1248
  source "mm/Kconfig"
  
  config HIGHPTE
  	bool "Allocate 3rd-level pagetables from highmem"
6fc108a08   Jan Beulich   x86: Clean up arc...
1249
  	depends on HIGHMEM
8f9ca475c   Ingo Molnar   x86: clean up arc...
1250
  	---help---
506f1d07b   Sam Ravnborg   x86: move the res...
1251
1252
1253
1254
  	  The VM uses one page table entry for each page of physical memory.
  	  For systems with a lot of RAM, this can be wasteful of precious
  	  low memory.  Setting this option will put user-space page table
  	  entries in high memory.
9f077871c   Jeremy Fitzhardinge   x86: clean up mem...
1255
  config X86_CHECK_BIOS_CORRUPTION
8f9ca475c   Ingo Molnar   x86: clean up arc...
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
  	bool "Check for low memory corruption"
  	---help---
  	  Periodically check for memory corruption in low memory, which
  	  is suspected to be caused by BIOS.  Even when enabled in the
  	  configuration, it is disabled at runtime.  Enable it by
  	  setting "memory_corruption_check=1" on the kernel command
  	  line.  By default it scans the low 64k of memory every 60
  	  seconds; see the memory_corruption_check_size and
  	  memory_corruption_check_period parameters in
  	  Documentation/kernel-parameters.txt to adjust this.
  
  	  When enabled with the default parameters, this option has
  	  almost no overhead, as it reserves a relatively small amount
  	  of memory and scans it infrequently.  It both detects corruption
  	  and prevents it from affecting the running system.
  
  	  It is, however, intended as a diagnostic tool; if repeatable
  	  BIOS-originated corruption always affects the same memory,
  	  you can use memmap= to prevent the kernel from using that
  	  memory.
9f077871c   Jeremy Fitzhardinge   x86: clean up mem...
1276

c885df50f   Jeremy Fitzhardinge   x86: default corr...
1277
  config X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK
8f9ca475c   Ingo Molnar   x86: clean up arc...
1278
  	bool "Set the default setting of memory_corruption_check"
c885df50f   Jeremy Fitzhardinge   x86: default corr...
1279
1280
  	depends on X86_CHECK_BIOS_CORRUPTION
  	default y
8f9ca475c   Ingo Molnar   x86: clean up arc...
1281
1282
1283
  	---help---
  	  Set whether the default state of memory_corruption_check is
  	  on or off.
c885df50f   Jeremy Fitzhardinge   x86: default corr...
1284

9ea77bdb3   H. Peter Anvin   x86, bios: Make t...
1285
  config X86_RESERVE_LOW
d0cd7425f   H. Peter Anvin   x86, bios: By def...
1286
1287
1288
  	int "Amount of low memory, in kilobytes, to reserve for the BIOS"
  	default 64
  	range 4 640
8f9ca475c   Ingo Molnar   x86: clean up arc...
1289
  	---help---
d0cd7425f   H. Peter Anvin   x86, bios: By def...
1290
1291
1292
1293
1294
1295
1296
1297
1298
  	  Specify the amount of low memory to reserve for the BIOS.
  
  	  The first page contains BIOS data structures that the kernel
  	  must not use, so that page must always be reserved.
  
  	  By default we reserve the first 64K of physical RAM, as a
  	  number of BIOSes are known to corrupt that memory range
  	  during events such as suspend/resume or monitor cable
  	  insertion, so it must not be used by the kernel.
fc3815194   Ingo Molnar   x86: add X86_RESE...
1299

d0cd7425f   H. Peter Anvin   x86, bios: By def...
1300
1301
1302
1303
1304
  	  You can set this to 4 if you are absolutely sure that you
  	  trust the BIOS to get all its memory reservations and usages
  	  right.  If you know your BIOS have problems beyond the
  	  default 64K area, you can set this to 640 to avoid using the
  	  entire low memory range.
fc3815194   Ingo Molnar   x86: add X86_RESE...
1305

d0cd7425f   H. Peter Anvin   x86, bios: By def...
1306
1307
1308
1309
1310
  	  If you have doubts about the BIOS (e.g. suspend/resume does
  	  not work or there's kernel crashes after certain hardware
  	  hotplug events) then you might want to enable
  	  X86_CHECK_BIOS_CORRUPTION=y to allow the kernel to check
  	  typical corruption patterns.
fc3815194   Ingo Molnar   x86: add X86_RESE...
1311

d0cd7425f   H. Peter Anvin   x86, bios: By def...
1312
  	  Leave this to the default value of 64 if you are unsure.
fc3815194   Ingo Molnar   x86: add X86_RESE...
1313

506f1d07b   Sam Ravnborg   x86: move the res...
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
  config MATH_EMULATION
  	bool
  	prompt "Math emulation" if X86_32
  	---help---
  	  Linux can emulate a math coprocessor (used for floating point
  	  operations) if you don't have one. 486DX and Pentium processors have
  	  a math coprocessor built in, 486SX and 386 do not, unless you added
  	  a 487DX or 387, respectively. (The messages during boot time can
  	  give you some hints here ["man dmesg"].) Everyone needs either a
  	  coprocessor or this emulation.
  
  	  If you don't have a math coprocessor, you need to say Y here; if you
  	  say Y here even though you have a coprocessor, the coprocessor will
  	  be used nevertheless. (This behavior can be changed with the kernel
  	  command line option "no387", which comes handy if your coprocessor
  	  is broken. Try "man bootparam" or see the documentation of your boot
  	  loader (lilo or loadlin) about how to pass options to the kernel at
  	  boot time.) This means that it is a good idea to say Y here if you
  	  intend to use this kernel on different machines.
  
  	  More information about the internals of the Linux math coprocessor
  	  emulation can be found in <file:arch/x86/math-emu/README>.
  
  	  If you are not sure, say Y; apart from resulting in a 66 KB bigger
  	  kernel, it won't hurt.
  
  config MTRR
6fc108a08   Jan Beulich   x86: Clean up arc...
1341
  	def_bool y
6a108a14f   David Rientjes   kconfig: rename C...
1342
  	prompt "MTRR (Memory Type Range Register) support" if EXPERT
506f1d07b   Sam Ravnborg   x86: move the res...
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
  	---help---
  	  On Intel P6 family processors (Pentium Pro, Pentium II and later)
  	  the Memory Type Range Registers (MTRRs) may be used to control
  	  processor access to memory ranges. This is most useful if you have
  	  a video (VGA) card on a PCI or AGP bus. Enabling write-combining
  	  allows bus write transfers to be combined into a larger transfer
  	  before bursting over the PCI/AGP bus. This can increase performance
  	  of image write operations 2.5 times or more. Saying Y here creates a
  	  /proc/mtrr file which may be used to manipulate your processor's
  	  MTRRs. Typically the X server should use this.
  
  	  This code has a reasonably generic interface so that similar
  	  control registers on other processors can be easily supported
  	  as well:
  
  	  The Cyrix 6x86, 6x86MX and M II processors have Address Range
  	  Registers (ARRs) which provide a similar functionality to MTRRs. For
  	  these, the ARRs are used to emulate the MTRRs.
  	  The AMD K6-2 (stepping 8 and above) and K6-3 processors have two
  	  MTRRs. The Centaur C6 (WinChip) has 8 MCRs, allowing
  	  write-combining. All of these processors are supported by this code
  	  and it makes sense to say Y here if you have one of them.
  
  	  Saying Y here also fixes a problem with buggy SMP BIOSes which only
  	  set the MTRRs for the boot CPU and not for the secondary CPUs. This
  	  can lead to all sorts of problems, so it's good to say Y here.
  
  	  You can safely say Y even if your machine doesn't have MTRRs, you'll
  	  just add about 9 KB to your kernel.
7225e7514   Randy Dunlap   documentation: mo...
1372
  	  See <file:Documentation/x86/mtrr.txt> for more information.
506f1d07b   Sam Ravnborg   x86: move the res...
1373

95ffa2438   Yinghai Lu   x86: mtrr cleanup...
1374
  config MTRR_SANITIZER
2ffb3501f   Yinghai Lu   x86: change MTRR_...
1375
  	def_bool y
95ffa2438   Yinghai Lu   x86: mtrr cleanup...
1376
1377
  	prompt "MTRR cleanup support"
  	depends on MTRR
8f9ca475c   Ingo Molnar   x86: clean up arc...
1378
  	---help---
aba3728ce   Thomas Gleixner   x86: sanitize Kco...
1379
1380
  	  Convert MTRR layout from continuous to discrete, so X drivers can
  	  add writeback entries.
95ffa2438   Yinghai Lu   x86: mtrr cleanup...
1381

aba3728ce   Thomas Gleixner   x86: sanitize Kco...
1382
  	  Can be disabled with disable_mtrr_cleanup on the kernel command line.
692105b8a   Matt LaPlante   trivial: fix typo...
1383
  	  The largest mtrr entry size for a continuous block can be set with
aba3728ce   Thomas Gleixner   x86: sanitize Kco...
1384
  	  mtrr_chunk_size.
95ffa2438   Yinghai Lu   x86: mtrr cleanup...
1385

2ffb3501f   Yinghai Lu   x86: change MTRR_...
1386
  	  If unsure, say Y.
95ffa2438   Yinghai Lu   x86: mtrr cleanup...
1387
1388
  
  config MTRR_SANITIZER_ENABLE_DEFAULT
f5098d62c   Yinghai Lu   x86: mtrr cleanup...
1389
1390
1391
  	int "MTRR cleanup enable value (0-1)"
  	range 0 1
  	default "0"
95ffa2438   Yinghai Lu   x86: mtrr cleanup...
1392
  	depends on MTRR_SANITIZER
8f9ca475c   Ingo Molnar   x86: clean up arc...
1393
  	---help---
f5098d62c   Yinghai Lu   x86: mtrr cleanup...
1394
  	  Enable mtrr cleanup default value
95ffa2438   Yinghai Lu   x86: mtrr cleanup...
1395

12031a624   Yinghai Lu   x86: mtrr cleanup...
1396
1397
1398
1399
1400
  config MTRR_SANITIZER_SPARE_REG_NR_DEFAULT
  	int "MTRR cleanup spare reg num (0-7)"
  	range 0 7
  	default "1"
  	depends on MTRR_SANITIZER
8f9ca475c   Ingo Molnar   x86: clean up arc...
1401
  	---help---
12031a624   Yinghai Lu   x86: mtrr cleanup...
1402
  	  mtrr cleanup spare entries default, it can be changed via
aba3728ce   Thomas Gleixner   x86: sanitize Kco...
1403
  	  mtrr_spare_reg_nr=N on the kernel command line.
12031a624   Yinghai Lu   x86: mtrr cleanup...
1404

2e5d9c857   venkatesh.pallipadi@intel.com   x86: PAT infrastr...
1405
  config X86_PAT
6fc108a08   Jan Beulich   x86: Clean up arc...
1406
  	def_bool y
6a108a14f   David Rientjes   kconfig: rename C...
1407
  	prompt "x86 PAT support" if EXPERT
2a8a2719b   Ingo Molnar   x86 PAT: decouple...
1408
  	depends on MTRR
8f9ca475c   Ingo Molnar   x86: clean up arc...
1409
  	---help---
2e5d9c857   venkatesh.pallipadi@intel.com   x86: PAT infrastr...
1410
  	  Use PAT attributes to setup page level cache control.
042b78e4d   Venki Pallipadi   x86: PAT infrastr...
1411

2e5d9c857   venkatesh.pallipadi@intel.com   x86: PAT infrastr...
1412
1413
1414
1415
  	  PATs are the modern equivalents of MTRRs and are much more
  	  flexible than MTRRs.
  
  	  Say N here if you see bootup problems (boot crash, boot hang,
042b78e4d   Venki Pallipadi   x86: PAT infrastr...
1416
  	  spontaneous reboots) or a non-working video driver.
2e5d9c857   venkatesh.pallipadi@intel.com   x86: PAT infrastr...
1417
1418
  
  	  If unsure, say Y.
46cf98cda   Venkatesh Pallipadi   x86, pat: General...
1419
1420
1421
  config ARCH_USES_PG_UNCACHED
  	def_bool y
  	depends on X86_PAT
628c6246d   H. Peter Anvin   x86, random: Arch...
1422
1423
1424
1425
1426
1427
1428
1429
  config ARCH_RANDOM
  	def_bool y
  	prompt "x86 architectural random number generator" if EXPERT
  	---help---
  	  Enable the x86 architectural RDRAND instruction
  	  (Intel Bull Mountain technology) to generate random numbers.
  	  If supported, this is a high bandwidth, cryptographically
  	  secure hardware random number generator.
506f1d07b   Sam Ravnborg   x86: move the res...
1430
  config EFI
9ba16087d   Jan Beulich   Kconfig: eliminat...
1431
  	bool "EFI runtime service support"
5b83683f3   Huang, Ying   x86: EFI runtime ...
1432
  	depends on ACPI
506f1d07b   Sam Ravnborg   x86: move the res...
1433
  	---help---
8f9ca475c   Ingo Molnar   x86: clean up arc...
1434
1435
  	  This enables the kernel to use EFI runtime services that are
  	  available (such as the EFI variable services).
506f1d07b   Sam Ravnborg   x86: move the res...
1436

8f9ca475c   Ingo Molnar   x86: clean up arc...
1437
1438
1439
1440
1441
1442
  	  This option is only useful on systems that have EFI firmware.
  	  In addition, you should use the latest ELILO loader available
  	  at <http://elilo.sourceforge.net> in order to take advantage
  	  of EFI runtime services. However, even with this option, the
  	  resultant kernel should continue to boot on existing non-EFI
  	  platforms.
506f1d07b   Sam Ravnborg   x86: move the res...
1443

291f36325   Matt Fleming   x86, efi: EFI boo...
1444
1445
1446
1447
1448
1449
  config EFI_STUB
         bool "EFI stub support"
         depends on EFI
         ---help---
            This kernel feature allows a bzImage to be loaded directly
  	  by EFI firmware without the use of a bootloader.
506f1d07b   Sam Ravnborg   x86: move the res...
1450
  config SECCOMP
3c2362e62   Harvey Harrison   x86: use def_bool...
1451
1452
  	def_bool y
  	prompt "Enable seccomp to safely compute untrusted bytecode"
8f9ca475c   Ingo Molnar   x86: clean up arc...
1453
  	---help---
506f1d07b   Sam Ravnborg   x86: move the res...
1454
1455
1456
1457
1458
1459
  	  This kernel feature is useful for number crunching applications
  	  that may need to compute untrusted bytecode during their
  	  execution. By using pipes or other transports made available to
  	  the process as file descriptors supporting the read/write
  	  syscalls, it's possible to isolate those applications in
  	  their own address space using seccomp. Once seccomp is
9c0bbee8a   Alexey Dobriyan   seccomp: drop now...
1460
  	  enabled via prctl(PR_SET_SECCOMP), it cannot be disabled
506f1d07b   Sam Ravnborg   x86: move the res...
1461
1462
1463
1464
1465
1466
1467
  	  and the task is only allowed to execute a few safe syscalls
  	  defined by each seccomp mode.
  
  	  If unsure, say Y. Only embedded should say N here.
  
  config CC_STACKPROTECTOR
  	bool "Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)"
8f9ca475c   Ingo Molnar   x86: clean up arc...
1468
1469
  	---help---
  	  This option turns on the -fstack-protector GCC feature. This
113c5413c   Ingo Molnar   x86: unify stackp...
1470
1471
  	  feature puts, at the beginning of functions, a canary value on
  	  the stack just before the return address, and validates
506f1d07b   Sam Ravnborg   x86: move the res...
1472
1473
1474
1475
1476
1477
1478
  	  the value just before actually returning.  Stack based buffer
  	  overflows (that need to overwrite this return address) now also
  	  overwrite the canary, which gets detected and the attack is then
  	  neutralized via a kernel panic.
  
  	  This feature requires gcc version 4.2 or above, or a distribution
  	  gcc with the feature backported. Older versions are automatically
113c5413c   Ingo Molnar   x86: unify stackp...
1479
1480
  	  detected and for those versions, this configuration option is
  	  ignored. (and a warning is printed during bootup)
506f1d07b   Sam Ravnborg   x86: move the res...
1481
1482
1483
1484
1485
  
  source kernel/Kconfig.hz
  
  config KEXEC
  	bool "kexec system call"
8f9ca475c   Ingo Molnar   x86: clean up arc...
1486
  	---help---
506f1d07b   Sam Ravnborg   x86: move the res...
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
  	  kexec is a system call that implements the ability to shutdown your
  	  current kernel, and to start another kernel.  It is like a reboot
  	  but it is independent of the system firmware.   And like a reboot
  	  you can start any kernel with it, not just Linux.
  
  	  The name comes from the similarity to the exec system call.
  
  	  It is an ongoing process to be certain the hardware in a machine
  	  is properly shutdown, so do not be surprised if this code does not
  	  initially work for you.  It may help to enable device hotplugging
  	  support.  As of this writing the exact hardware interface is
  	  strongly in flux, so no good recommendation can be made.
  
  config CRASH_DUMP
04b69447f   Pavel Machek   arch/x86/Kconfig:...
1501
  	bool "kernel crash dumps"
506f1d07b   Sam Ravnborg   x86: move the res...
1502
  	depends on X86_64 || (X86_32 && HIGHMEM)
8f9ca475c   Ingo Molnar   x86: clean up arc...
1503
  	---help---
506f1d07b   Sam Ravnborg   x86: move the res...
1504
1505
1506
1507
1508
1509
1510
1511
1512
  	  Generate crash dump after being started by kexec.
  	  This should be normally only set in special crash dump kernels
  	  which are loaded in the main kernel with kexec-tools into
  	  a specially reserved region and then later executed after
  	  a crash by kdump/kexec. The crash dump kernel must be compiled
  	  to a memory address not used by the main kernel or BIOS using
  	  PHYSICAL_START, or it must be built as a relocatable image
  	  (CONFIG_RELOCATABLE=y).
  	  For more details see Documentation/kdump/kdump.txt
3ab835213   Huang Ying   kexec jump
1513
1514
1515
  config KEXEC_JUMP
  	bool "kexec jump (EXPERIMENTAL)"
  	depends on EXPERIMENTAL
fee7b0d84   Huang Ying   x86, kexec: x86_6...
1516
  	depends on KEXEC && HIBERNATION
8f9ca475c   Ingo Molnar   x86: clean up arc...
1517
  	---help---
89081d17f   Huang Ying   kexec jump: save/...
1518
1519
  	  Jump between original kernel and kexeced kernel and invoke
  	  code in physical address mode via KEXEC
3ab835213   Huang Ying   kexec jump
1520

506f1d07b   Sam Ravnborg   x86: move the res...
1521
  config PHYSICAL_START
6a108a14f   David Rientjes   kconfig: rename C...
1522
  	hex "Physical address where the kernel is loaded" if (EXPERT || CRASH_DUMP)
ceefccc93   H. Peter Anvin   x86: default CONF...
1523
  	default "0x1000000"
8f9ca475c   Ingo Molnar   x86: clean up arc...
1524
  	---help---
506f1d07b   Sam Ravnborg   x86: move the res...
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
  	  This gives the physical address where the kernel is loaded.
  
  	  If kernel is a not relocatable (CONFIG_RELOCATABLE=n) then
  	  bzImage will decompress itself to above physical address and
  	  run from there. Otherwise, bzImage will run from the address where
  	  it has been loaded by the boot loader and will ignore above physical
  	  address.
  
  	  In normal kdump cases one does not have to set/change this option
  	  as now bzImage can be compiled as a completely relocatable image
  	  (CONFIG_RELOCATABLE=y) and be used to load and run from a different
  	  address. This option is mainly useful for the folks who don't want
  	  to use a bzImage for capturing the crash dump and want to use a
  	  vmlinux instead. vmlinux is not relocatable hence a kernel needs
  	  to be specifically compiled to run from a specific memory area
  	  (normally a reserved region) and this option comes handy.
ceefccc93   H. Peter Anvin   x86: default CONF...
1541
1542
1543
1544
1545
1546
1547
1548
1549
  	  So if you are using bzImage for capturing the crash dump,
  	  leave the value here unchanged to 0x1000000 and set
  	  CONFIG_RELOCATABLE=y.  Otherwise if you plan to use vmlinux
  	  for capturing the crash dump change this value to start of
  	  the reserved region.  In other words, it can be set based on
  	  the "X" value as specified in the "crashkernel=YM@XM"
  	  command line boot parameter passed to the panic-ed
  	  kernel. Please take a look at Documentation/kdump/kdump.txt
  	  for more details about crash dumps.
506f1d07b   Sam Ravnborg   x86: move the res...
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
  
  	  Usage of bzImage for capturing the crash dump is recommended as
  	  one does not have to build two kernels. Same kernel can be used
  	  as production kernel and capture kernel. Above option should have
  	  gone away after relocatable bzImage support is introduced. But it
  	  is present because there are users out there who continue to use
  	  vmlinux for dump capture. This option should go away down the
  	  line.
  
  	  Don't change this unless you know what you are doing.
  
  config RELOCATABLE
26717808f   H. Peter Anvin   x86: make CONFIG_...
1562
1563
  	bool "Build a relocatable kernel"
  	default y
8f9ca475c   Ingo Molnar   x86: clean up arc...
1564
  	---help---
506f1d07b   Sam Ravnborg   x86: move the res...
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
  	  This builds a kernel image that retains relocation information
  	  so it can be loaded someplace besides the default 1MB.
  	  The relocations tend to make the kernel binary about 10% larger,
  	  but are discarded at runtime.
  
  	  One use is for the kexec on panic case where the recovery kernel
  	  must live at a different physical address than the primary
  	  kernel.
  
  	  Note: If CONFIG_RELOCATABLE=y, then the kernel runs from the address
  	  it has been loaded at and the compile time physical address
  	  (CONFIG_PHYSICAL_START) is ignored.
845adf726   H. Peter Anvin   x86: add a Kconfi...
1577
1578
1579
1580
  # Relocation on x86-32 needs some additional build support
  config X86_NEED_RELOCS
  	def_bool y
  	depends on X86_32 && RELOCATABLE
506f1d07b   Sam Ravnborg   x86: move the res...
1581
  config PHYSICAL_ALIGN
6fc108a08   Jan Beulich   x86: Clean up arc...
1582
  	hex "Alignment value to which kernel should be aligned" if X86_32
ceefccc93   H. Peter Anvin   x86: default CONF...
1583
1584
  	default "0x1000000"
  	range 0x2000 0x1000000
8f9ca475c   Ingo Molnar   x86: clean up arc...
1585
  	---help---
506f1d07b   Sam Ravnborg   x86: move the res...
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
  	  This value puts the alignment restrictions on physical address
  	  where kernel is loaded and run from. Kernel is compiled for an
  	  address which meets above alignment restriction.
  
  	  If bootloader loads the kernel at a non-aligned address and
  	  CONFIG_RELOCATABLE is set, kernel will move itself to nearest
  	  address aligned to above value and run from there.
  
  	  If bootloader loads the kernel at a non-aligned address and
  	  CONFIG_RELOCATABLE is not set, kernel will ignore the run time
  	  load address and decompress itself to the address it has been
  	  compiled for and run from there. The address for which kernel is
  	  compiled already meets above alignment restrictions. Hence the
  	  end result is that kernel runs from a physical address meeting
  	  above alignment restrictions.
  
  	  Don't change this unless you know what you are doing.
  
  config HOTPLUG_CPU
7c13e6a3d   Dimitri Sivanich   x86: remove EXPER...
1605
  	bool "Support for hot-pluggable CPUs"
4b19ed915   Ingo Molnar   x86/Voyager: remo...
1606
  	depends on SMP && HOTPLUG
506f1d07b   Sam Ravnborg   x86: move the res...
1607
  	---help---
7c13e6a3d   Dimitri Sivanich   x86: remove EXPER...
1608
1609
1610
1611
1612
  	  Say Y here to allow turning CPUs off and on. CPUs can be
  	  controlled through /sys/devices/system/cpu.
  	  ( Note: power management support will enable this option
  	    automatically on SMP systems. )
  	  Say N if you want to disable CPU hotplug.
506f1d07b   Sam Ravnborg   x86: move the res...
1613
1614
  
  config COMPAT_VDSO
3c2362e62   Harvey Harrison   x86: use def_bool...
1615
1616
  	def_bool y
  	prompt "Compat VDSO support"
af65d6484   Roland McGrath   x86 vDSO: consoli...
1617
  	depends on X86_32 || IA32_EMULATION
8f9ca475c   Ingo Molnar   x86: clean up arc...
1618
  	---help---
af65d6484   Roland McGrath   x86 vDSO: consoli...
1619
  	  Map the 32-bit VDSO to the predictable old-style address too.
e84446de5   Randy Dunlap   x86 VSDO: Fix Kco...
1620

506f1d07b   Sam Ravnborg   x86: move the res...
1621
1622
1623
1624
1625
  	  Say N here if you are running a sufficiently recent glibc
  	  version (2.3.3 or later), to remove the high-mapped
  	  VDSO mapping and to exclusively use the randomized VDSO.
  
  	  If unsure, say Y.
516cbf373   Tim Bird   x86, bootup: add ...
1626
1627
  config CMDLINE_BOOL
  	bool "Built-in kernel command line"
8f9ca475c   Ingo Molnar   x86: clean up arc...
1628
  	---help---
516cbf373   Tim Bird   x86, bootup: add ...
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
  	  Allow for specifying boot arguments to the kernel at
  	  build time.  On some systems (e.g. embedded ones), it is
  	  necessary or convenient to provide some or all of the
  	  kernel boot arguments with the kernel itself (that is,
  	  to not rely on the boot loader to provide them.)
  
  	  To compile command line arguments into the kernel,
  	  set this option to 'Y', then fill in the
  	  the boot arguments in CONFIG_CMDLINE.
  
  	  Systems with fully functional boot loaders (i.e. non-embedded)
  	  should leave this option set to 'N'.
  
  config CMDLINE
  	string "Built-in kernel command string"
  	depends on CMDLINE_BOOL
  	default ""
8f9ca475c   Ingo Molnar   x86: clean up arc...
1646
  	---help---
516cbf373   Tim Bird   x86, bootup: add ...
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
  	  Enter arguments here that should be compiled into the kernel
  	  image and used at boot time.  If the boot loader provides a
  	  command line at boot time, it is appended to this string to
  	  form the full kernel command line, when the system boots.
  
  	  However, you can use the CONFIG_CMDLINE_OVERRIDE option to
  	  change this behavior.
  
  	  In most cases, the command line (whether built-in or provided
  	  by the boot loader) should specify the device for the root
  	  file system.
  
  config CMDLINE_OVERRIDE
  	bool "Built-in command line overrides boot loader arguments"
516cbf373   Tim Bird   x86, bootup: add ...
1661
  	depends on CMDLINE_BOOL
8f9ca475c   Ingo Molnar   x86: clean up arc...
1662
  	---help---
516cbf373   Tim Bird   x86, bootup: add ...
1663
1664
1665
1666
1667
  	  Set this option to 'Y' to have the kernel ignore the boot loader
  	  command line, and use ONLY the built-in command line.
  
  	  This is used to work around broken boot loaders.  This should
  	  be set to 'N' under normal conditions.
506f1d07b   Sam Ravnborg   x86: move the res...
1668
1669
1670
1671
1672
  endmenu
  
  config ARCH_ENABLE_MEMORY_HOTPLUG
  	def_bool y
  	depends on X86_64 || (X86_32 && HIGHMEM)
355510533   Gary Hade   x86: add memory h...
1673
1674
1675
  config ARCH_ENABLE_MEMORY_HOTREMOVE
  	def_bool y
  	depends on MEMORY_HOTPLUG
e534c7c5f   Lee Schermerhorn   numa: x86_64: use...
1676
  config USE_PERCPU_NUMA_NODE_ID
645a79195   Tejun Heo   x86: Unify CPU ->...
1677
  	def_bool y
e534c7c5f   Lee Schermerhorn   numa: x86_64: use...
1678
  	depends on NUMA
da85f865b   Bjorn Helgaas   x86: mention ACPI...
1679
  menu "Power management and ACPI options"
e279b6c1d   Sam Ravnborg   x86: start unific...
1680
1681
  
  config ARCH_HIBERNATION_HEADER
3c2362e62   Harvey Harrison   x86: use def_bool...
1682
  	def_bool y
e279b6c1d   Sam Ravnborg   x86: start unific...
1683
  	depends on X86_64 && HIBERNATION
e279b6c1d   Sam Ravnborg   x86: start unific...
1684
1685
1686
1687
  
  source "kernel/power/Kconfig"
  
  source "drivers/acpi/Kconfig"
efafc8b21   Feng Tang   x86: add arch-spe...
1688
  source "drivers/sfi/Kconfig"
a6b68076f   Andi Kleen   x86: compile apm ...
1689
  config X86_APM_BOOT
6fc108a08   Jan Beulich   x86: Clean up arc...
1690
  	def_bool y
282e5aaba   Paul Bolle   x86: Kconfig: dro...
1691
  	depends on APM
a6b68076f   Andi Kleen   x86: compile apm ...
1692

e279b6c1d   Sam Ravnborg   x86: start unific...
1693
1694
  menuconfig APM
  	tristate "APM (Advanced Power Management) BIOS support"
efefa6f63   Ingo Molnar   x86, VisWS: turn ...
1695
  	depends on X86_32 && PM_SLEEP
e279b6c1d   Sam Ravnborg   x86: start unific...
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
  	---help---
  	  APM is a BIOS specification for saving power using several different
  	  techniques. This is mostly useful for battery powered laptops with
  	  APM compliant BIOSes. If you say Y here, the system time will be
  	  reset after a RESUME operation, the /proc/apm device will provide
  	  battery status information, and user-space programs will receive
  	  notification of APM "events" (e.g. battery status change).
  
  	  If you select "Y" here, you can disable actual use of the APM
  	  BIOS by passing the "apm=off" option to the kernel at boot time.
  
  	  Note that the APM support is almost completely disabled for
  	  machines with more than one CPU.
  
  	  In order to use APM, you will need supporting software. For location
2dc98fd32   Michael Witten   doc: Konfig: Docu...
1711
1712
  	  and more information, read <file:Documentation/power/apm-acpi.txt>
  	  and the Battery Powered Linux mini-HOWTO, available from
e279b6c1d   Sam Ravnborg   x86: start unific...
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
  	  <http://www.tldp.org/docs.html#howto>.
  
  	  This driver does not spin down disk drives (see the hdparm(8)
  	  manpage ("man 8 hdparm") for that), and it doesn't turn off
  	  VESA-compliant "green" monitors.
  
  	  This driver does not support the TI 4000M TravelMate and the ACER
  	  486/DX4/75 because they don't have compliant BIOSes. Many "green"
  	  desktop machines also don't have compliant BIOSes, and this driver
  	  may cause those machines to panic during the boot phase.
  
  	  Generally, if you don't have a battery in your machine, there isn't
  	  much point in using this driver and you should say N. If you get
  	  random kernel OOPSes or reboots that don't seem to be related to
  	  anything, try disabling/enabling this option (or disabling/enabling
  	  APM in your BIOS).
  
  	  Some other things you should try when experiencing seemingly random,
  	  "weird" problems:
  
  	  1) make sure that you have enough swap space and that it is
  	  enabled.
  	  2) pass the "no-hlt" option to the kernel
  	  3) switch on floating point emulation in the kernel and pass
  	  the "no387" option to the kernel
  	  4) pass the "floppy=nodma" option to the kernel
  	  5) pass the "mem=4M" option to the kernel (thereby disabling
  	  all but the first 4 MB of RAM)
  	  6) make sure that the CPU is not over clocked.
  	  7) read the sig11 FAQ at <http://www.bitwizard.nl/sig11/>
  	  8) disable the cache from your BIOS settings
  	  9) install a fan for the video card or exchange video RAM
  	  10) install a better fan for the CPU
  	  11) exchange RAM chips
  	  12) exchange the motherboard.
  
  	  To compile this driver as a module, choose M here: the
  	  module will be called apm.
  
  if APM
  
  config APM_IGNORE_USER_SUSPEND
  	bool "Ignore USER SUSPEND"
8f9ca475c   Ingo Molnar   x86: clean up arc...
1756
  	---help---
e279b6c1d   Sam Ravnborg   x86: start unific...
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
  	  This option will ignore USER SUSPEND requests. On machines with a
  	  compliant APM BIOS, you want to say N. However, on the NEC Versa M
  	  series notebooks, it is necessary to say Y because of a BIOS bug.
  
  config APM_DO_ENABLE
  	bool "Enable PM at boot time"
  	---help---
  	  Enable APM features at boot time. From page 36 of the APM BIOS
  	  specification: "When disabled, the APM BIOS does not automatically
  	  power manage devices, enter the Standby State, enter the Suspend
  	  State, or take power saving steps in response to CPU Idle calls."
  	  This driver will make CPU Idle calls when Linux is idle (unless this
  	  feature is turned off -- see "Do CPU IDLE calls", below). This
  	  should always save battery power, but more complicated APM features
  	  will be dependent on your BIOS implementation. You may need to turn
  	  this option off if your computer hangs at boot time when using APM
  	  support, or if it beeps continuously instead of suspending. Turn
  	  this off if you have a NEC UltraLite Versa 33/C or a Toshiba
  	  T400CDT. This is off by default since most machines do fine without
  	  this feature.
  
  config APM_CPU_IDLE
  	bool "Make CPU Idle calls when idle"
8f9ca475c   Ingo Molnar   x86: clean up arc...
1780
  	---help---
e279b6c1d   Sam Ravnborg   x86: start unific...
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
  	  Enable calls to APM CPU Idle/CPU Busy inside the kernel's idle loop.
  	  On some machines, this can activate improved power savings, such as
  	  a slowed CPU clock rate, when the machine is idle. These idle calls
  	  are made after the idle loop has run for some length of time (e.g.,
  	  333 mS). On some machines, this will cause a hang at boot time or
  	  whenever the CPU becomes idle. (On machines with more than one CPU,
  	  this option does nothing.)
  
  config APM_DISPLAY_BLANK
  	bool "Enable console blanking using APM"
8f9ca475c   Ingo Molnar   x86: clean up arc...
1791
  	---help---
e279b6c1d   Sam Ravnborg   x86: start unific...
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
  	  Enable console blanking using the APM. Some laptops can use this to
  	  turn off the LCD backlight when the screen blanker of the Linux
  	  virtual console blanks the screen. Note that this is only used by
  	  the virtual console screen blanker, and won't turn off the backlight
  	  when using the X Window system. This also doesn't have anything to
  	  do with your VESA-compliant power-saving monitor. Further, this
  	  option doesn't work for all laptops -- it might not turn off your
  	  backlight at all, or it might print a lot of errors to the console,
  	  especially if you are using gpm.
  
  config APM_ALLOW_INTS
  	bool "Allow interrupts during APM BIOS calls"
8f9ca475c   Ingo Molnar   x86: clean up arc...
1804
  	---help---
e279b6c1d   Sam Ravnborg   x86: start unific...
1805
1806
1807
1808
1809
1810
  	  Normally we disable external interrupts while we are making calls to
  	  the APM BIOS as a measure to lessen the effects of a badly behaving
  	  BIOS implementation.  The BIOS should reenable interrupts if it
  	  needs to.  Unfortunately, some BIOSes do not -- especially those in
  	  many of the newer IBM Thinkpads.  If you experience hangs when you
  	  suspend, try setting this to Y.  Otherwise, say N.
e279b6c1d   Sam Ravnborg   x86: start unific...
1811
  endif # APM
bb0a56ecc   Dave Jones   [CPUFREQ] Move x8...
1812
  source "drivers/cpufreq/Kconfig"
e279b6c1d   Sam Ravnborg   x86: start unific...
1813
1814
  
  source "drivers/cpuidle/Kconfig"
27471fdb3   Andy Henroid   i7300_idle driver...
1815
  source "drivers/idle/Kconfig"
e279b6c1d   Sam Ravnborg   x86: start unific...
1816
1817
1818
1819
1820
1821
  endmenu
  
  
  menu "Bus options (PCI etc.)"
  
  config PCI
1ac970181   Ingo Molnar   x86: untangle pci...
1822
  	bool "PCI support"
1c858087c   Adrian Bunk   x86: default to P...
1823
  	default y
e279b6c1d   Sam Ravnborg   x86: start unific...
1824
  	select ARCH_SUPPORTS_MSI if (X86_LOCAL_APIC && X86_IO_APIC)
8f9ca475c   Ingo Molnar   x86: clean up arc...
1825
  	---help---
e279b6c1d   Sam Ravnborg   x86: start unific...
1826
1827
1828
1829
  	  Find out whether you have a PCI motherboard. PCI is the name of a
  	  bus system, i.e. the way the CPU talks to the other stuff inside
  	  your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or
  	  VESA. If you have PCI, say Y, otherwise N.
e279b6c1d   Sam Ravnborg   x86: start unific...
1830
1831
  choice
  	prompt "PCI access mode"
efefa6f63   Ingo Molnar   x86, VisWS: turn ...
1832
  	depends on X86_32 && PCI
e279b6c1d   Sam Ravnborg   x86: start unific...
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
  	default PCI_GOANY
  	---help---
  	  On PCI systems, the BIOS can be used to detect the PCI devices and
  	  determine their configuration. However, some old PCI motherboards
  	  have BIOS bugs and may crash if this is done. Also, some embedded
  	  PCI-based systems don't have any BIOS at all. Linux can also try to
  	  detect the PCI hardware directly without using the BIOS.
  
  	  With this option, you can specify how Linux should detect the
  	  PCI devices. If you choose "BIOS", the BIOS will be used,
  	  if you choose "Direct", the BIOS won't be used, and if you
  	  choose "MMConfig", then PCI Express MMCONFIG will be used.
  	  If you choose "Any", the kernel will try MMCONFIG, then the
  	  direct access method and falls back to the BIOS if that doesn't
  	  work. If unsure, go with the default, which is "Any".
  
  config PCI_GOBIOS
  	bool "BIOS"
  
  config PCI_GOMMCONFIG
  	bool "MMConfig"
  
  config PCI_GODIRECT
  	bool "Direct"
3ef0e1f8c   Andres Salomon   x86: olpc: add On...
1857
  config PCI_GOOLPC
76fb65701   Daniel Drake   x86, olpc: Only e...
1858
  	bool "OLPC XO-1"
3ef0e1f8c   Andres Salomon   x86: olpc: add On...
1859
  	depends on OLPC
2bdd1b031   Andres Salomon   PCI/x86: fix up P...
1860
1861
  config PCI_GOANY
  	bool "Any"
e279b6c1d   Sam Ravnborg   x86: start unific...
1862
1863
1864
  endchoice
  
  config PCI_BIOS
3c2362e62   Harvey Harrison   x86: use def_bool...
1865
  	def_bool y
efefa6f63   Ingo Molnar   x86, VisWS: turn ...
1866
  	depends on X86_32 && PCI && (PCI_GOBIOS || PCI_GOANY)
e279b6c1d   Sam Ravnborg   x86: start unific...
1867
1868
1869
  
  # x86-64 doesn't support PCI BIOS access from long mode so always go direct.
  config PCI_DIRECT
3c2362e62   Harvey Harrison   x86: use def_bool...
1870
  	def_bool y
0aba496fc   Shaohua Li   x86/PCI: select d...
1871
  	depends on PCI && (X86_64 || (PCI_GODIRECT || PCI_GOANY || PCI_GOOLPC || PCI_GOMMCONFIG))
e279b6c1d   Sam Ravnborg   x86: start unific...
1872
1873
  
  config PCI_MMCONFIG
3c2362e62   Harvey Harrison   x86: use def_bool...
1874
  	def_bool y
5f0db7a2f   Feng Tang   SFI: Hook PCI MMC...
1875
  	depends on X86_32 && PCI && (ACPI || SFI) && (PCI_GOMMCONFIG || PCI_GOANY)
e279b6c1d   Sam Ravnborg   x86: start unific...
1876

3ef0e1f8c   Andres Salomon   x86: olpc: add On...
1877
  config PCI_OLPC
2bdd1b031   Andres Salomon   PCI/x86: fix up P...
1878
1879
  	def_bool y
  	depends on PCI && OLPC && (PCI_GOOLPC || PCI_GOANY)
3ef0e1f8c   Andres Salomon   x86: olpc: add On...
1880

b5401a96b   Alex Nixon   xen/x86/PCI: Add ...
1881
1882
1883
1884
  config PCI_XEN
  	def_bool y
  	depends on PCI && XEN
  	select SWIOTLB_XEN
e279b6c1d   Sam Ravnborg   x86: start unific...
1885
  config PCI_DOMAINS
3c2362e62   Harvey Harrison   x86: use def_bool...
1886
  	def_bool y
e279b6c1d   Sam Ravnborg   x86: start unific...
1887
  	depends on PCI
e279b6c1d   Sam Ravnborg   x86: start unific...
1888
1889
1890
1891
  
  config PCI_MMCONFIG
  	bool "Support mmconfig PCI config space access"
  	depends on X86_64 && PCI && ACPI
3f6ea84a3   Ira W. Snyder   PCI: read memory ...
1892
  config PCI_CNB20LE_QUIRK
6a108a14f   David Rientjes   kconfig: rename C...
1893
  	bool "Read CNB20LE Host Bridge Windows" if EXPERT
64a5fed66   Bjorn Helgaas   x86/PCI: make Bro...
1894
1895
  	default n
  	depends on PCI && EXPERIMENTAL
3f6ea84a3   Ira W. Snyder   PCI: read memory ...
1896
1897
1898
1899
  	help
  	  Read the PCI windows out of the CNB20LE host bridge. This allows
  	  PCI hotplug to work on systems with the CNB20LE chipset which do
  	  not have ACPI.
64a5fed66   Bjorn Helgaas   x86/PCI: make Bro...
1900
1901
1902
1903
  	  There's no public spec for this chipset, and this functionality
  	  is known to be incomplete.
  
  	  You should say N unless you know you need this.
e279b6c1d   Sam Ravnborg   x86: start unific...
1904
1905
1906
  source "drivers/pci/pcie/Kconfig"
  
  source "drivers/pci/Kconfig"
1c00f0161   David Rientjes   x86: allow CONFIG...
1907
  # x86_64 have no ISA slots, but can have ISA-style DMA.
e279b6c1d   Sam Ravnborg   x86: start unific...
1908
  config ISA_DMA_API
1c00f0161   David Rientjes   x86: allow CONFIG...
1909
1910
1911
1912
1913
  	bool "ISA-style DMA support" if (X86_64 && EXPERT)
  	default y
  	help
  	  Enables ISA-style DMA support for devices requiring such controllers.
  	  If unsure, say Y.
e279b6c1d   Sam Ravnborg   x86: start unific...
1914
1915
1916
1917
1918
  
  if X86_32
  
  config ISA
  	bool "ISA support"
8f9ca475c   Ingo Molnar   x86: clean up arc...
1919
  	---help---
e279b6c1d   Sam Ravnborg   x86: start unific...
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
  	  Find out whether you have ISA slots on your motherboard.  ISA is the
  	  name of a bus system, i.e. the way the CPU talks to the other stuff
  	  inside your box.  Other bus systems are PCI, EISA, MicroChannel
  	  (MCA) or VESA.  ISA is an older system, now being displaced by PCI;
  	  newer boards don't support it.  If you have ISA, say Y, otherwise N.
  
  config EISA
  	bool "EISA support"
  	depends on ISA
  	---help---
  	  The Extended Industry Standard Architecture (EISA) bus was
  	  developed as an open alternative to the IBM MicroChannel bus.
  
  	  The EISA bus provided some of the features of the IBM MicroChannel
  	  bus while maintaining backward compatibility with cards made for
  	  the older ISA bus.  The EISA bus saw limited use between 1988 and
  	  1995 when it was made obsolete by the PCI bus.
  
  	  Say Y here if you are building a kernel for an EISA-based machine.
  
  	  Otherwise, say N.
  
  source "drivers/eisa/Kconfig"
  
  config MCA
72ee6ebbb   Ingo Molnar   x86/Voyager: remo...
1945
  	bool "MCA support"
8f9ca475c   Ingo Molnar   x86: clean up arc...
1946
  	---help---
e279b6c1d   Sam Ravnborg   x86: start unific...
1947
1948
1949
1950
1951
1952
1953
1954
1955
  	  MicroChannel Architecture is found in some IBM PS/2 machines and
  	  laptops.  It is a bus system similar to PCI or ISA. See
  	  <file:Documentation/mca.txt> (and especially the web page given
  	  there) before attempting to build an MCA bus kernel.
  
  source "drivers/mca/Kconfig"
  
  config SCx200
  	tristate "NatSemi SCx200 support"
8f9ca475c   Ingo Molnar   x86: clean up arc...
1956
  	---help---
e279b6c1d   Sam Ravnborg   x86: start unific...
1957
1958
1959
1960
1961
1962
1963
1964
1965
  	  This provides basic support for National Semiconductor's
  	  (now AMD's) Geode processors.  The driver probes for the
  	  PCI-IDs of several on-chip devices, so its a good dependency
  	  for other scx200_* drivers.
  
  	  If compiled as a module, the driver is named scx200.
  
  config SCx200HR_TIMER
  	tristate "NatSemi SCx200 27MHz High-Resolution Timer Support"
592913ecb   John Stultz   time: Kill off CO...
1966
  	depends on SCx200
e279b6c1d   Sam Ravnborg   x86: start unific...
1967
  	default y
8f9ca475c   Ingo Molnar   x86: clean up arc...
1968
  	---help---
e279b6c1d   Sam Ravnborg   x86: start unific...
1969
1970
1971
1972
1973
  	  This driver provides a clocksource built upon the on-chip
  	  27MHz high-resolution timer.  Its also a workaround for
  	  NSC Geode SC-1100's buggy TSC, which loses time when the
  	  processor goes idle (as is done by the scheduler).  The
  	  other workaround is idle=poll boot option.
3ef0e1f8c   Andres Salomon   x86: olpc: add On...
1974
1975
  config OLPC
  	bool "One Laptop Per Child support"
540089798   Thomas Gleixner   x86: OLPC: Remove...
1976
  	depends on !X86_PAE
3c5549467   Andres Salomon   ALSA: cs5535audio...
1977
  	select GPIOLIB
dc3119e70   Thomas Gleixner   x86: OLPC: Cleanu...
1978
  	select OF
45bb1674b   Daniel Drake   x86, olpc: Use de...
1979
  	select OF_PROMTREE
8f9ca475c   Ingo Molnar   x86: clean up arc...
1980
  	---help---
3ef0e1f8c   Andres Salomon   x86: olpc: add On...
1981
1982
  	  Add support for detecting the unique features of the OLPC
  	  XO hardware.
a3128588b   Daniel Drake   x86, olpc: Rename...
1983
1984
  config OLPC_XO1_PM
  	bool "OLPC XO-1 Power Management"
97c4cb71c   Daniel Drake   x86, olpc: Add XO...
1985
  	depends on OLPC && MFD_CS5535 && PM_SLEEP
a3128588b   Daniel Drake   x86, olpc: Rename...
1986
  	select MFD_CORE
bf1ebf007   Daniel Drake   x86, olpc: Add XO...
1987
  	---help---
97c4cb71c   Daniel Drake   x86, olpc: Add XO...
1988
  	  Add support for poweroff and suspend of the OLPC XO-1 laptop.
bf1ebf007   Daniel Drake   x86, olpc: Add XO...
1989

cfee95977   Daniel Drake   x86, olpc: Add XO...
1990
1991
1992
1993
1994
1995
  config OLPC_XO1_RTC
  	bool "OLPC XO-1 Real Time Clock"
  	depends on OLPC_XO1_PM && RTC_DRV_CMOS
  	---help---
  	  Add support for the XO-1 real time clock, which can be used as a
  	  programmable wakeup source.
7feda8e9f   Daniel Drake   x86, olpc: Add XO...
1996
1997
  config OLPC_XO1_SCI
  	bool "OLPC XO-1 SCI extras"
d8d01a637   Daniel Drake   x86, olpc: Fix de...
1998
1999
  	depends on OLPC && OLPC_XO1_PM
  	select POWER_SUPPLY
7feda8e9f   Daniel Drake   x86, olpc: Add XO...
2000
2001
2002
2003
  	select GPIO_CS5535
  	select MFD_CORE
  	---help---
  	  Add support for SCI-based features of the OLPC XO-1 laptop:
7bc74b3df   Daniel Drake   x86, olpc-xo1-sci...
2004
  	   - EC-driven system wakeups
7feda8e9f   Daniel Drake   x86, olpc: Add XO...
2005
  	   - Power button
7bc74b3df   Daniel Drake   x86, olpc-xo1-sci...
2006
  	   - Ebook switch
2cf2baea1   Daniel Drake   x86, olpc-xo1-sci...
2007
  	   - Lid switch
e1040ac69   Daniel Drake   x86, olpc-xo1-sci...
2008
2009
  	   - AC adapter status updates
  	   - Battery status updates
7feda8e9f   Daniel Drake   x86, olpc: Add XO...
2010

a0f30f592   Daniel Drake   x86, olpc: Add XO...
2011
2012
  config OLPC_XO15_SCI
  	bool "OLPC XO-1.5 SCI extras"
d8d01a637   Daniel Drake   x86, olpc: Fix de...
2013
2014
  	depends on OLPC && ACPI
  	select POWER_SUPPLY
a0f30f592   Daniel Drake   x86, olpc: Add XO...
2015
2016
2017
2018
2019
  	---help---
  	  Add support for SCI-based features of the OLPC XO-1.5 laptop:
  	   - EC-driven system wakeups
  	   - AC adapter status updates
  	   - Battery status updates
bf1ebf007   Daniel Drake   x86, olpc: Add XO...
2020

d4f3e3501   Ed Wildgoose   x86: geode: New P...
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
  config ALIX
  	bool "PCEngines ALIX System Support (LED setup)"
  	select GPIOLIB
  	---help---
  	  This option enables system support for the PCEngines ALIX.
  	  At present this just sets up LEDs for GPIO control on
  	  ALIX2/3/6 boards.  However, other system specific setup should
  	  get added here.
  
  	  Note: You must still enable the drivers for GPIO and LED support
  	  (GPIO_CS5535 & LEDS_GPIO) to actually use the LEDs
  
  	  Note: You have to set alix.force=1 for boards with Award BIOS.
bc0120fdb   Sam Ravnborg   x86: copy x86_64 ...
2034
  endif # X86_32
23ac4ae82   Andreas Herrmann   x86, k8: Rename k...
2035
  config AMD_NB
e279b6c1d   Sam Ravnborg   x86: start unific...
2036
  	def_bool y
0e152cd7c   Borislav Petkov   x86, k8 nb: Fix b...
2037
  	depends on CPU_SUP_AMD && PCI
e279b6c1d   Sam Ravnborg   x86: start unific...
2038
2039
2040
2041
  
  source "drivers/pcmcia/Kconfig"
  
  source "drivers/pci/hotplug/Kconfig"
388b78adc   Alexandre Bounine   rapidio: modify c...
2042
2043
2044
2045
2046
2047
2048
2049
2050
  config RAPIDIO
  	bool "RapidIO support"
  	depends on PCI
  	default n
  	help
  	  If you say Y here, the kernel will include drivers and
  	  infrastructure code to support RapidIO interconnect devices.
  
  source "drivers/rapidio/Kconfig"
e279b6c1d   Sam Ravnborg   x86: start unific...
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
  endmenu
  
  
  menu "Executable file formats / Emulations"
  
  source "fs/Kconfig.binfmt"
  
  config IA32_EMULATION
  	bool "IA32 Emulation"
  	depends on X86_64
a97f52e67   Roland McGrath   x86: compat_binfm...
2061
  	select COMPAT_BINFMT_ELF
8f9ca475c   Ingo Molnar   x86: clean up arc...
2062
  	---help---
e279b6c1d   Sam Ravnborg   x86: start unific...
2063
2064
2065
2066
2067
  	  Include code to run 32-bit programs under a 64-bit kernel. You should
  	  likely turn this on, unless you're 100% sure that you don't have any
  	  32-bit programs left.
  
  config IA32_AOUT
8f9ca475c   Ingo Molnar   x86: clean up arc...
2068
2069
2070
2071
  	tristate "IA32 a.out support"
  	depends on IA32_EMULATION
  	---help---
  	  Support old a.out binaries in the 32bit emulation.
e279b6c1d   Sam Ravnborg   x86: start unific...
2072
2073
  
  config COMPAT
3c2362e62   Harvey Harrison   x86: use def_bool...
2074
  	def_bool y
e279b6c1d   Sam Ravnborg   x86: start unific...
2075
  	depends on IA32_EMULATION
e279b6c1d   Sam Ravnborg   x86: start unific...
2076
2077
2078
2079
2080
2081
  
  config COMPAT_FOR_U64_ALIGNMENT
  	def_bool COMPAT
  	depends on X86_64
  
  config SYSVIPC_COMPAT
3c2362e62   Harvey Harrison   x86: use def_bool...
2082
  	def_bool y
b89921957   Alexey Dobriyan   x86: simpler SYSV...
2083
  	depends on COMPAT && SYSVIPC
e279b6c1d   Sam Ravnborg   x86: start unific...
2084

ee009e4a0   David Howells   KEYS: Add an iove...
2085
2086
2087
2088
  config KEYS_COMPAT
  	bool
  	depends on COMPAT && KEYS
  	default y
e279b6c1d   Sam Ravnborg   x86: start unific...
2089
  endmenu
e5beae169   Keith Packard   io mapping: clean...
2090
2091
2092
  config HAVE_ATOMIC_IOMAP
  	def_bool y
  	depends on X86_32
3cba11d32   Masami Hiramatsu   kconfig/x86: Add ...
2093
2094
2095
  config HAVE_TEXT_POKE_SMP
  	bool
  	select STOP_MACHINE if SMP
e279b6c1d   Sam Ravnborg   x86: start unific...
2096
2097
2098
2099
2100
2101
2102
  source "net/Kconfig"
  
  source "drivers/Kconfig"
  
  source "drivers/firmware/Kconfig"
  
  source "fs/Kconfig"
e279b6c1d   Sam Ravnborg   x86: start unific...
2103
2104
2105
2106
2107
  source "arch/x86/Kconfig.debug"
  
  source "security/Kconfig"
  
  source "crypto/Kconfig"
edf884172   Avi Kivity   KVM: Move arch de...
2108
  source "arch/x86/kvm/Kconfig"
e279b6c1d   Sam Ravnborg   x86: start unific...
2109
  source "lib/Kconfig"