1 |
3 |
xianfeng |
# x86 configuration
|
2 |
|
|
mainmenu "Linux Kernel Configuration for x86"
|
3 |
|
|
|
4 |
|
|
# Select 32 or 64 bit
|
5 |
|
|
config 64BIT
|
6 |
|
|
bool "64-bit kernel" if ARCH = "x86"
|
7 |
|
|
default ARCH = "x86_64"
|
8 |
|
|
help
|
9 |
|
|
Say yes to build a 64-bit kernel - formerly known as x86_64
|
10 |
|
|
Say no to build a 32-bit kernel - formerly known as i386
|
11 |
|
|
|
12 |
|
|
config X86_32
|
13 |
|
|
def_bool !64BIT
|
14 |
|
|
|
15 |
|
|
config X86_64
|
16 |
|
|
def_bool 64BIT
|
17 |
|
|
|
18 |
|
|
### Arch settings
|
19 |
|
|
config X86
|
20 |
|
|
bool
|
21 |
|
|
default y
|
22 |
|
|
|
23 |
|
|
config GENERIC_TIME
|
24 |
|
|
bool
|
25 |
|
|
default y
|
26 |
|
|
|
27 |
|
|
config GENERIC_CMOS_UPDATE
|
28 |
|
|
bool
|
29 |
|
|
default y
|
30 |
|
|
|
31 |
|
|
config CLOCKSOURCE_WATCHDOG
|
32 |
|
|
bool
|
33 |
|
|
default y
|
34 |
|
|
|
35 |
|
|
config GENERIC_CLOCKEVENTS
|
36 |
|
|
bool
|
37 |
|
|
default y
|
38 |
|
|
|
39 |
|
|
config GENERIC_CLOCKEVENTS_BROADCAST
|
40 |
|
|
bool
|
41 |
|
|
default y
|
42 |
|
|
depends on X86_64 || (X86_32 && X86_LOCAL_APIC)
|
43 |
|
|
|
44 |
|
|
config LOCKDEP_SUPPORT
|
45 |
|
|
bool
|
46 |
|
|
default y
|
47 |
|
|
|
48 |
|
|
config STACKTRACE_SUPPORT
|
49 |
|
|
bool
|
50 |
|
|
default y
|
51 |
|
|
|
52 |
|
|
config SEMAPHORE_SLEEPERS
|
53 |
|
|
bool
|
54 |
|
|
default y
|
55 |
|
|
|
56 |
|
|
config MMU
|
57 |
|
|
bool
|
58 |
|
|
default y
|
59 |
|
|
|
60 |
|
|
config ZONE_DMA
|
61 |
|
|
bool
|
62 |
|
|
default y
|
63 |
|
|
|
64 |
|
|
config QUICKLIST
|
65 |
|
|
bool
|
66 |
|
|
default X86_32
|
67 |
|
|
|
68 |
|
|
config SBUS
|
69 |
|
|
bool
|
70 |
|
|
|
71 |
|
|
config GENERIC_ISA_DMA
|
72 |
|
|
bool
|
73 |
|
|
default y
|
74 |
|
|
|
75 |
|
|
config GENERIC_IOMAP
|
76 |
|
|
bool
|
77 |
|
|
default y
|
78 |
|
|
|
79 |
|
|
config GENERIC_BUG
|
80 |
|
|
bool
|
81 |
|
|
default y
|
82 |
|
|
depends on BUG
|
83 |
|
|
|
84 |
|
|
config GENERIC_HWEIGHT
|
85 |
|
|
bool
|
86 |
|
|
default y
|
87 |
|
|
|
88 |
|
|
config ARCH_MAY_HAVE_PC_FDC
|
89 |
|
|
bool
|
90 |
|
|
default y
|
91 |
|
|
|
92 |
|
|
config DMI
|
93 |
|
|
bool
|
94 |
|
|
default y
|
95 |
|
|
|
96 |
|
|
config RWSEM_GENERIC_SPINLOCK
|
97 |
|
|
def_bool !X86_XADD
|
98 |
|
|
|
99 |
|
|
config RWSEM_XCHGADD_ALGORITHM
|
100 |
|
|
def_bool X86_XADD
|
101 |
|
|
|
102 |
|
|
config ARCH_HAS_ILOG2_U32
|
103 |
|
|
def_bool n
|
104 |
|
|
|
105 |
|
|
config ARCH_HAS_ILOG2_U64
|
106 |
|
|
def_bool n
|
107 |
|
|
|
108 |
|
|
config GENERIC_CALIBRATE_DELAY
|
109 |
|
|
def_bool y
|
110 |
|
|
|
111 |
|
|
config GENERIC_TIME_VSYSCALL
|
112 |
|
|
bool
|
113 |
|
|
default X86_64
|
114 |
|
|
|
115 |
|
|
config ARCH_SUPPORTS_OPROFILE
|
116 |
|
|
bool
|
117 |
|
|
default y
|
118 |
|
|
|
119 |
|
|
|
120 |
|
|
config ZONE_DMA32
|
121 |
|
|
bool
|
122 |
|
|
default X86_64
|
123 |
|
|
|
124 |
|
|
config ARCH_POPULATES_NODE_MAP
|
125 |
|
|
def_bool y
|
126 |
|
|
|
127 |
|
|
config AUDIT_ARCH
|
128 |
|
|
bool
|
129 |
|
|
default X86_64
|
130 |
|
|
|
131 |
|
|
# Use the generic interrupt handling code in kernel/irq/:
|
132 |
|
|
config GENERIC_HARDIRQS
|
133 |
|
|
bool
|
134 |
|
|
default y
|
135 |
|
|
|
136 |
|
|
config GENERIC_IRQ_PROBE
|
137 |
|
|
bool
|
138 |
|
|
default y
|
139 |
|
|
|
140 |
|
|
config GENERIC_PENDING_IRQ
|
141 |
|
|
bool
|
142 |
|
|
depends on GENERIC_HARDIRQS && SMP
|
143 |
|
|
default y
|
144 |
|
|
|
145 |
|
|
config X86_SMP
|
146 |
|
|
bool
|
147 |
|
|
depends on X86_32 && SMP && !X86_VOYAGER
|
148 |
|
|
default y
|
149 |
|
|
|
150 |
|
|
config X86_HT
|
151 |
|
|
bool
|
152 |
|
|
depends on SMP
|
153 |
|
|
depends on (X86_32 && !(X86_VISWS || X86_VOYAGER)) || (X86_64 && !MK8)
|
154 |
|
|
default y
|
155 |
|
|
|
156 |
|
|
config X86_BIOS_REBOOT
|
157 |
|
|
bool
|
158 |
|
|
depends on X86_32 && !(X86_VISWS || X86_VOYAGER)
|
159 |
|
|
default y
|
160 |
|
|
|
161 |
|
|
config X86_TRAMPOLINE
|
162 |
|
|
bool
|
163 |
|
|
depends on X86_SMP || (X86_VOYAGER && SMP)
|
164 |
|
|
default y
|
165 |
|
|
|
166 |
|
|
config KTIME_SCALAR
|
167 |
|
|
def_bool X86_32
|
168 |
|
|
source "init/Kconfig"
|
169 |
|
|
|
170 |
|
|
menu "Processor type and features"
|
171 |
|
|
|
172 |
|
|
source "kernel/time/Kconfig"
|
173 |
|
|
|
174 |
|
|
config SMP
|
175 |
|
|
bool "Symmetric multi-processing support"
|
176 |
|
|
---help---
|
177 |
|
|
This enables support for systems with more than one CPU. If you have
|
178 |
|
|
a system with only one CPU, like most personal computers, say N. If
|
179 |
|
|
you have a system with more than one CPU, say Y.
|
180 |
|
|
|
181 |
|
|
If you say N here, the kernel will run on single and multiprocessor
|
182 |
|
|
machines, but will use only one CPU of a multiprocessor machine. If
|
183 |
|
|
you say Y here, the kernel will run on many, but not all,
|
184 |
|
|
singleprocessor machines. On a singleprocessor machine, the kernel
|
185 |
|
|
will run faster if you say N here.
|
186 |
|
|
|
187 |
|
|
Note that if you say Y here and choose architecture "586" or
|
188 |
|
|
"Pentium" under "Processor family", the kernel will not work on 486
|
189 |
|
|
architectures. Similarly, multiprocessor kernels for the "PPro"
|
190 |
|
|
architecture may not work on all Pentium based boards.
|
191 |
|
|
|
192 |
|
|
People using multiprocessor machines who say Y here should also say
|
193 |
|
|
Y to "Enhanced Real Time Clock Support", below. The "Advanced Power
|
194 |
|
|
Management" code will be disabled if you say Y here.
|
195 |
|
|
|
196 |
|
|
See also the ,
|
197 |
|
|
,
|
198 |
|
|
and the SMP-HOWTO available at
|
199 |
|
|
.
|
200 |
|
|
|
201 |
|
|
If you don't know what to do here, say N.
|
202 |
|
|
|
203 |
|
|
choice
|
204 |
|
|
prompt "Subarchitecture Type"
|
205 |
|
|
default X86_PC
|
206 |
|
|
|
207 |
|
|
config X86_PC
|
208 |
|
|
bool "PC-compatible"
|
209 |
|
|
help
|
210 |
|
|
Choose this option if your computer is a standard PC or compatible.
|
211 |
|
|
|
212 |
|
|
config X86_ELAN
|
213 |
|
|
bool "AMD Elan"
|
214 |
|
|
depends on X86_32
|
215 |
|
|
help
|
216 |
|
|
Select this for an AMD Elan processor.
|
217 |
|
|
|
218 |
|
|
Do not use this option for K6/Athlon/Opteron processors!
|
219 |
|
|
|
220 |
|
|
If unsure, choose "PC-compatible" instead.
|
221 |
|
|
|
222 |
|
|
config X86_VOYAGER
|
223 |
|
|
bool "Voyager (NCR)"
|
224 |
|
|
depends on X86_32
|
225 |
|
|
select SMP if !BROKEN
|
226 |
|
|
help
|
227 |
|
|
Voyager is an MCA-based 32-way capable SMP architecture proprietary
|
228 |
|
|
to NCR Corp. Machine classes 345x/35xx/4100/51xx are Voyager-based.
|
229 |
|
|
|
230 |
|
|
*** WARNING ***
|
231 |
|
|
|
232 |
|
|
If you do not specifically know you have a Voyager based machine,
|
233 |
|
|
say N here, otherwise the kernel you build will not be bootable.
|
234 |
|
|
|
235 |
|
|
config X86_NUMAQ
|
236 |
|
|
bool "NUMAQ (IBM/Sequent)"
|
237 |
|
|
select SMP
|
238 |
|
|
select NUMA
|
239 |
|
|
depends on X86_32
|
240 |
|
|
help
|
241 |
|
|
This option is used for getting Linux to run on a (IBM/Sequent) NUMA
|
242 |
|
|
multiquad box. This changes the way that processors are bootstrapped,
|
243 |
|
|
and uses Clustered Logical APIC addressing mode instead of Flat Logical.
|
244 |
|
|
You will need a new lynxer.elf file to flash your firmware with - send
|
245 |
|
|
email to .
|
246 |
|
|
|
247 |
|
|
config X86_SUMMIT
|
248 |
|
|
bool "Summit/EXA (IBM x440)"
|
249 |
|
|
depends on X86_32 && SMP
|
250 |
|
|
help
|
251 |
|
|
This option is needed for IBM systems that use the Summit/EXA chipset.
|
252 |
|
|
In particular, it is needed for the x440.
|
253 |
|
|
|
254 |
|
|
If you don't have one of these computers, you should say N here.
|
255 |
|
|
If you want to build a NUMA kernel, you must select ACPI.
|
256 |
|
|
|
257 |
|
|
config X86_BIGSMP
|
258 |
|
|
bool "Support for other sub-arch SMP systems with more than 8 CPUs"
|
259 |
|
|
depends on X86_32 && SMP
|
260 |
|
|
help
|
261 |
|
|
This option is needed for the systems that have more than 8 CPUs
|
262 |
|
|
and if the system is not of any sub-arch type above.
|
263 |
|
|
|
264 |
|
|
If you don't have such a system, you should say N here.
|
265 |
|
|
|
266 |
|
|
config X86_VISWS
|
267 |
|
|
bool "SGI 320/540 (Visual Workstation)"
|
268 |
|
|
depends on X86_32
|
269 |
|
|
help
|
270 |
|
|
The SGI Visual Workstation series is an IA32-based workstation
|
271 |
|
|
based on SGI systems chips with some legacy PC hardware attached.
|
272 |
|
|
|
273 |
|
|
Say Y here to create a kernel to run on the SGI 320 or 540.
|
274 |
|
|
|
275 |
|
|
A kernel compiled for the Visual Workstation will not run on PCs
|
276 |
|
|
and vice versa. See for details.
|
277 |
|
|
|
278 |
|
|
config X86_GENERICARCH
|
279 |
|
|
bool "Generic architecture (Summit, bigsmp, ES7000, default)"
|
280 |
|
|
depends on X86_32
|
281 |
|
|
help
|
282 |
|
|
This option compiles in the Summit, bigsmp, ES7000, default subarchitectures.
|
283 |
|
|
It is intended for a generic binary kernel.
|
284 |
|
|
If you want a NUMA kernel, select ACPI. We need SRAT for NUMA.
|
285 |
|
|
|
286 |
|
|
config X86_ES7000
|
287 |
|
|
bool "Support for Unisys ES7000 IA32 series"
|
288 |
|
|
depends on X86_32 && SMP
|
289 |
|
|
help
|
290 |
|
|
Support for Unisys ES7000 systems. Say 'Y' here if this kernel is
|
291 |
|
|
supposed to run on an IA32-based Unisys ES7000 system.
|
292 |
|
|
Only choose this option if you have such a system, otherwise you
|
293 |
|
|
should say N here.
|
294 |
|
|
|
295 |
|
|
config X86_VSMP
|
296 |
|
|
bool "Support for ScaleMP vSMP"
|
297 |
|
|
depends on X86_64 && PCI
|
298 |
|
|
help
|
299 |
|
|
Support for ScaleMP vSMP systems. Say 'Y' here if this kernel is
|
300 |
|
|
supposed to run on these EM64T-based machines. Only choose this option
|
301 |
|
|
if you have one of these machines.
|
302 |
|
|
|
303 |
|
|
endchoice
|
304 |
|
|
|
305 |
|
|
config SCHED_NO_NO_OMIT_FRAME_POINTER
|
306 |
|
|
bool "Single-depth WCHAN output"
|
307 |
|
|
default y
|
308 |
|
|
depends on X86_32
|
309 |
|
|
help
|
310 |
|
|
Calculate simpler /proc//wchan values. If this option
|
311 |
|
|
is disabled then wchan values will recurse back to the
|
312 |
|
|
caller function. This provides more accurate wchan values,
|
313 |
|
|
at the expense of slightly more scheduling overhead.
|
314 |
|
|
|
315 |
|
|
If in doubt, say "Y".
|
316 |
|
|
|
317 |
|
|
config PARAVIRT
|
318 |
|
|
bool
|
319 |
|
|
depends on X86_32 && !(X86_VISWS || X86_VOYAGER)
|
320 |
|
|
help
|
321 |
|
|
This changes the kernel so it can modify itself when it is run
|
322 |
|
|
under a hypervisor, potentially improving performance significantly
|
323 |
|
|
over full virtualization. However, when run without a hypervisor
|
324 |
|
|
the kernel is theoretically slower and slightly larger.
|
325 |
|
|
|
326 |
|
|
menuconfig PARAVIRT_GUEST
|
327 |
|
|
bool "Paravirtualized guest support"
|
328 |
|
|
depends on X86_32
|
329 |
|
|
help
|
330 |
|
|
Say Y here to get to see options related to running Linux under
|
331 |
|
|
various hypervisors. This option alone does not add any kernel code.
|
332 |
|
|
|
333 |
|
|
If you say N, all options in this submenu will be skipped and disabled.
|
334 |
|
|
|
335 |
|
|
if PARAVIRT_GUEST
|
336 |
|
|
|
337 |
|
|
source "arch/x86/xen/Kconfig"
|
338 |
|
|
|
339 |
|
|
config VMI
|
340 |
|
|
bool "VMI Guest support"
|
341 |
|
|
select PARAVIRT
|
342 |
|
|
depends on !(X86_VISWS || X86_VOYAGER)
|
343 |
|
|
help
|
344 |
|
|
VMI provides a paravirtualized interface to the VMware ESX server
|
345 |
|
|
(it could be used by other hypervisors in theory too, but is not
|
346 |
|
|
at the moment), by linking the kernel to a GPL-ed ROM module
|
347 |
|
|
provided by the hypervisor.
|
348 |
|
|
|
349 |
|
|
source "arch/x86/lguest/Kconfig"
|
350 |
|
|
|
351 |
|
|
endif
|
352 |
|
|
|
353 |
|
|
config ACPI_SRAT
|
354 |
|
|
bool
|
355 |
|
|
default y
|
356 |
|
|
depends on X86_32 && ACPI && NUMA && (X86_SUMMIT || X86_GENERICARCH)
|
357 |
|
|
select ACPI_NUMA
|
358 |
|
|
|
359 |
|
|
config HAVE_ARCH_PARSE_SRAT
|
360 |
|
|
bool
|
361 |
|
|
default y
|
362 |
|
|
depends on ACPI_SRAT
|
363 |
|
|
|
364 |
|
|
config X86_SUMMIT_NUMA
|
365 |
|
|
bool
|
366 |
|
|
default y
|
367 |
|
|
depends on X86_32 && NUMA && (X86_SUMMIT || X86_GENERICARCH)
|
368 |
|
|
|
369 |
|
|
config X86_CYCLONE_TIMER
|
370 |
|
|
bool
|
371 |
|
|
default y
|
372 |
|
|
depends on X86_32 && X86_SUMMIT || X86_GENERICARCH
|
373 |
|
|
|
374 |
|
|
config ES7000_CLUSTERED_APIC
|
375 |
|
|
bool
|
376 |
|
|
default y
|
377 |
|
|
depends on SMP && X86_ES7000 && MPENTIUMIII
|
378 |
|
|
|
379 |
|
|
source "arch/x86/Kconfig.cpu"
|
380 |
|
|
|
381 |
|
|
config HPET_TIMER
|
382 |
|
|
bool
|
383 |
|
|
prompt "HPET Timer Support" if X86_32
|
384 |
|
|
default X86_64
|
385 |
|
|
help
|
386 |
|
|
Use the IA-PC HPET (High Precision Event Timer) to manage
|
387 |
|
|
time in preference to the PIT and RTC, if a HPET is
|
388 |
|
|
present.
|
389 |
|
|
HPET is the next generation timer replacing legacy 8254s.
|
390 |
|
|
The HPET provides a stable time base on SMP
|
391 |
|
|
systems, unlike the TSC, but it is more expensive to access,
|
392 |
|
|
as it is off-chip. You can find the HPET spec at
|
393 |
|
|
.
|
394 |
|
|
|
395 |
|
|
You can safely choose Y here. However, HPET will only be
|
396 |
|
|
activated if the platform and the BIOS support this feature.
|
397 |
|
|
Otherwise the 8254 will be used for timing services.
|
398 |
|
|
|
399 |
|
|
Choose N to continue using the legacy 8254 timer.
|
400 |
|
|
|
401 |
|
|
config HPET_EMULATE_RTC
|
402 |
|
|
bool
|
403 |
|
|
depends on HPET_TIMER && RTC=y
|
404 |
|
|
default y
|
405 |
|
|
|
406 |
|
|
# Mark as embedded because too many people got it wrong.
|
407 |
|
|
# The code disables itself when not needed.
|
408 |
|
|
config GART_IOMMU
|
409 |
|
|
bool "GART IOMMU support" if EMBEDDED
|
410 |
|
|
default y
|
411 |
|
|
select SWIOTLB
|
412 |
|
|
select AGP
|
413 |
|
|
depends on X86_64 && PCI
|
414 |
|
|
help
|
415 |
|
|
Support for full DMA access of devices with 32bit memory access only
|
416 |
|
|
on systems with more than 3GB. This is usually needed for USB,
|
417 |
|
|
sound, many IDE/SATA chipsets and some other devices.
|
418 |
|
|
Provides a driver for the AMD Athlon64/Opteron/Turion/Sempron GART
|
419 |
|
|
based hardware IOMMU and a software bounce buffer based IOMMU used
|
420 |
|
|
on Intel systems and as fallback.
|
421 |
|
|
The code is only active when needed (enough memory and limited
|
422 |
|
|
device) unless CONFIG_IOMMU_DEBUG or iommu=force is specified
|
423 |
|
|
too.
|
424 |
|
|
|
425 |
|
|
config CALGARY_IOMMU
|
426 |
|
|
bool "IBM Calgary IOMMU support"
|
427 |
|
|
select SWIOTLB
|
428 |
|
|
depends on X86_64 && PCI && EXPERIMENTAL
|
429 |
|
|
help
|
430 |
|
|
Support for hardware IOMMUs in IBM's xSeries x366 and x460
|
431 |
|
|
systems. Needed to run systems with more than 3GB of memory
|
432 |
|
|
properly with 32-bit PCI devices that do not support DAC
|
433 |
|
|
(Double Address Cycle). Calgary also supports bus level
|
434 |
|
|
isolation, where all DMAs pass through the IOMMU. This
|
435 |
|
|
prevents them from going anywhere except their intended
|
436 |
|
|
destination. This catches hard-to-find kernel bugs and
|
437 |
|
|
mis-behaving drivers and devices that do not use the DMA-API
|
438 |
|
|
properly to set up their DMA buffers. The IOMMU can be
|
439 |
|
|
turned off at boot time with the iommu=off parameter.
|
440 |
|
|
Normally the kernel will make the right choice by itself.
|
441 |
|
|
If unsure, say Y.
|
442 |
|
|
|
443 |
|
|
config CALGARY_IOMMU_ENABLED_BY_DEFAULT
|
444 |
|
|
bool "Should Calgary be enabled by default?"
|
445 |
|
|
default y
|
446 |
|
|
depends on CALGARY_IOMMU
|
447 |
|
|
help
|
448 |
|
|
Should Calgary be enabled by default? if you choose 'y', Calgary
|
449 |
|
|
will be used (if it exists). If you choose 'n', Calgary will not be
|
450 |
|
|
used even if it exists. If you choose 'n' and would like to use
|
451 |
|
|
Calgary anyway, pass 'iommu=calgary' on the kernel command line.
|
452 |
|
|
If unsure, say Y.
|
453 |
|
|
|
454 |
|
|
# need this always selected by IOMMU for the VIA workaround
|
455 |
|
|
config SWIOTLB
|
456 |
|
|
bool
|
457 |
|
|
help
|
458 |
|
|
Support for software bounce buffers used on x86-64 systems
|
459 |
|
|
which don't have a hardware IOMMU (e.g. the current generation
|
460 |
|
|
of Intel's x86-64 CPUs). Using this PCI devices which can only
|
461 |
|
|
access 32-bits of memory can be used on systems with more than
|
462 |
|
|
3 GB of memory. If unsure, say Y.
|
463 |
|
|
|
464 |
|
|
|
465 |
|
|
config NR_CPUS
|
466 |
|
|
int "Maximum number of CPUs (2-255)"
|
467 |
|
|
range 2 255
|
468 |
|
|
depends on SMP
|
469 |
|
|
default "32" if X86_NUMAQ || X86_SUMMIT || X86_BIGSMP || X86_ES7000
|
470 |
|
|
default "8"
|
471 |
|
|
help
|
472 |
|
|
This allows you to specify the maximum number of CPUs which this
|
473 |
|
|
kernel will support. The maximum supported value is 255 and the
|
474 |
|
|
minimum value which makes sense is 2.
|
475 |
|
|
|
476 |
|
|
This is purely to save memory - each supported CPU adds
|
477 |
|
|
approximately eight kilobytes to the kernel image.
|
478 |
|
|
|
479 |
|
|
config SCHED_SMT
|
480 |
|
|
bool "SMT (Hyperthreading) scheduler support"
|
481 |
|
|
depends on (X86_64 && SMP) || (X86_32 && X86_HT)
|
482 |
|
|
help
|
483 |
|
|
SMT scheduler support improves the CPU scheduler's decision making
|
484 |
|
|
when dealing with Intel Pentium 4 chips with HyperThreading at a
|
485 |
|
|
cost of slightly increased overhead in some places. If unsure say
|
486 |
|
|
N here.
|
487 |
|
|
|
488 |
|
|
config SCHED_MC
|
489 |
|
|
bool "Multi-core scheduler support"
|
490 |
|
|
depends on (X86_64 && SMP) || (X86_32 && X86_HT)
|
491 |
|
|
default y
|
492 |
|
|
help
|
493 |
|
|
Multi-core scheduler support improves the CPU scheduler's decision
|
494 |
|
|
making when dealing with multi-core CPU chips at a cost of slightly
|
495 |
|
|
increased overhead in some places. If unsure say N here.
|
496 |
|
|
|
497 |
|
|
source "kernel/Kconfig.preempt"
|
498 |
|
|
|
499 |
|
|
config X86_UP_APIC
|
500 |
|
|
bool "Local APIC support on uniprocessors"
|
501 |
|
|
depends on X86_32 && !SMP && !(X86_VISWS || X86_VOYAGER || X86_GENERICARCH)
|
502 |
|
|
help
|
503 |
|
|
A local APIC (Advanced Programmable Interrupt Controller) is an
|
504 |
|
|
integrated interrupt controller in the CPU. If you have a single-CPU
|
505 |
|
|
system which has a processor with a local APIC, you can say Y here to
|
506 |
|
|
enable and use it. If you say Y here even though your machine doesn't
|
507 |
|
|
have a local APIC, then the kernel will still run with no slowdown at
|
508 |
|
|
all. The local APIC supports CPU-generated self-interrupts (timer,
|
509 |
|
|
performance counters), and the NMI watchdog which detects hard
|
510 |
|
|
lockups.
|
511 |
|
|
|
512 |
|
|
config X86_UP_IOAPIC
|
513 |
|
|
bool "IO-APIC support on uniprocessors"
|
514 |
|
|
depends on X86_UP_APIC
|
515 |
|
|
help
|
516 |
|
|
An IO-APIC (I/O Advanced Programmable Interrupt Controller) is an
|
517 |
|
|
SMP-capable replacement for PC-style interrupt controllers. Most
|
518 |
|
|
SMP systems and many recent uniprocessor systems have one.
|
519 |
|
|
|
520 |
|
|
If you have a single-CPU system with an IO-APIC, you can say Y here
|
521 |
|
|
to use it. If you say Y here even though your machine doesn't have
|
522 |
|
|
an IO-APIC, then the kernel will still run with no slowdown at all.
|
523 |
|
|
|
524 |
|
|
config X86_LOCAL_APIC
|
525 |
|
|
bool
|
526 |
|
|
depends on X86_64 || (X86_32 && (X86_UP_APIC || ((X86_VISWS || SMP) && !X86_VOYAGER) || X86_GENERICARCH))
|
527 |
|
|
default y
|
528 |
|
|
|
529 |
|
|
config X86_IO_APIC
|
530 |
|
|
bool
|
531 |
|
|
depends on X86_64 || (X86_32 && (X86_UP_IOAPIC || (SMP && !(X86_VISWS || X86_VOYAGER)) || X86_GENERICARCH))
|
532 |
|
|
default y
|
533 |
|
|
|
534 |
|
|
config X86_VISWS_APIC
|
535 |
|
|
bool
|
536 |
|
|
depends on X86_32 && X86_VISWS
|
537 |
|
|
default y
|
538 |
|
|
|
539 |
|
|
config X86_MCE
|
540 |
|
|
bool "Machine Check Exception"
|
541 |
|
|
depends on !X86_VOYAGER
|
542 |
|
|
---help---
|
543 |
|
|
Machine Check Exception support allows the processor to notify the
|
544 |
|
|
kernel if it detects a problem (e.g. overheating, component failure).
|
545 |
|
|
The action the kernel takes depends on the severity of the problem,
|
546 |
|
|
ranging from a warning message on the console, to halting the machine.
|
547 |
|
|
Your processor must be a Pentium or newer to support this - check the
|
548 |
|
|
flags in /proc/cpuinfo for mce. Note that some older Pentium systems
|
549 |
|
|
have a design flaw which leads to false MCE events - hence MCE is
|
550 |
|
|
disabled on all P5 processors, unless explicitly enabled with "mce"
|
551 |
|
|
as a boot argument. Similarly, if MCE is built in and creates a
|
552 |
|
|
problem on some new non-standard machine, you can boot with "nomce"
|
553 |
|
|
to disable it. MCE support simply ignores non-MCE processors like
|
554 |
|
|
the 386 and 486, so nearly everyone can say Y here.
|
555 |
|
|
|
556 |
|
|
config X86_MCE_INTEL
|
557 |
|
|
bool "Intel MCE features"
|
558 |
|
|
depends on X86_64 && X86_MCE && X86_LOCAL_APIC
|
559 |
|
|
default y
|
560 |
|
|
help
|
561 |
|
|
Additional support for intel specific MCE features such as
|
562 |
|
|
the thermal monitor.
|
563 |
|
|
|
564 |
|
|
config X86_MCE_AMD
|
565 |
|
|
bool "AMD MCE features"
|
566 |
|
|
depends on X86_64 && X86_MCE && X86_LOCAL_APIC
|
567 |
|
|
default y
|
568 |
|
|
help
|
569 |
|
|
Additional support for AMD specific MCE features such as
|
570 |
|
|
the DRAM Error Threshold.
|
571 |
|
|
|
572 |
|
|
config X86_MCE_NONFATAL
|
573 |
|
|
tristate "Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium 4"
|
574 |
|
|
depends on X86_32 && X86_MCE
|
575 |
|
|
help
|
576 |
|
|
Enabling this feature starts a timer that triggers every 5 seconds which
|
577 |
|
|
will look at the machine check registers to see if anything happened.
|
578 |
|
|
Non-fatal problems automatically get corrected (but still logged).
|
579 |
|
|
Disable this if you don't want to see these messages.
|
580 |
|
|
Seeing the messages this option prints out may be indicative of dying
|
581 |
|
|
or out-of-spec (ie, overclocked) hardware.
|
582 |
|
|
This option only does something on certain CPUs.
|
583 |
|
|
(AMD Athlon/Duron and Intel Pentium 4)
|
584 |
|
|
|
585 |
|
|
config X86_MCE_P4THERMAL
|
586 |
|
|
bool "check for P4 thermal throttling interrupt."
|
587 |
|
|
depends on X86_32 && X86_MCE && (X86_UP_APIC || SMP) && !X86_VISWS
|
588 |
|
|
help
|
589 |
|
|
Enabling this feature will cause a message to be printed when the P4
|
590 |
|
|
enters thermal throttling.
|
591 |
|
|
|
592 |
|
|
config VM86
|
593 |
|
|
bool "Enable VM86 support" if EMBEDDED
|
594 |
|
|
default y
|
595 |
|
|
depends on X86_32
|
596 |
|
|
help
|
597 |
|
|
This option is required by programs like DOSEMU to run 16-bit legacy
|
598 |
|
|
code on X86 processors. It also may be needed by software like
|
599 |
|
|
XFree86 to initialize some video cards via BIOS. Disabling this
|
600 |
|
|
option saves about 6k.
|
601 |
|
|
|
602 |
|
|
config TOSHIBA
|
603 |
|
|
tristate "Toshiba Laptop support"
|
604 |
|
|
depends on X86_32
|
605 |
|
|
---help---
|
606 |
|
|
This adds a driver to safely access the System Management Mode of
|
607 |
|
|
the CPU on Toshiba portables with a genuine Toshiba BIOS. It does
|
608 |
|
|
not work on models with a Phoenix BIOS. The System Management Mode
|
609 |
|
|
is used to set the BIOS and power saving options on Toshiba portables.
|
610 |
|
|
|
611 |
|
|
For information on utilities to make use of this driver see the
|
612 |
|
|
Toshiba Linux utilities web site at:
|
613 |
|
|
.
|
614 |
|
|
|
615 |
|
|
Say Y if you intend to run this kernel on a Toshiba portable.
|
616 |
|
|
Say N otherwise.
|
617 |
|
|
|
618 |
|
|
config I8K
|
619 |
|
|
tristate "Dell laptop support"
|
620 |
|
|
depends on X86_32
|
621 |
|
|
---help---
|
622 |
|
|
This adds a driver to safely access the System Management Mode
|
623 |
|
|
of the CPU on the Dell Inspiron 8000. The System Management Mode
|
624 |
|
|
is used to read cpu temperature and cooling fan status and to
|
625 |
|
|
control the fans on the I8K portables.
|
626 |
|
|
|
627 |
|
|
This driver has been tested only on the Inspiron 8000 but it may
|
628 |
|
|
also work with other Dell laptops. You can force loading on other
|
629 |
|
|
models by passing the parameter `force=1' to the module. Use at
|
630 |
|
|
your own risk.
|
631 |
|
|
|
632 |
|
|
For information on utilities to make use of this driver see the
|
633 |
|
|
I8K Linux utilities web site at:
|
634 |
|
|
|
635 |
|
|
|
636 |
|
|
Say Y if you intend to run this kernel on a Dell Inspiron 8000.
|
637 |
|
|
Say N otherwise.
|
638 |
|
|
|
639 |
|
|
config X86_REBOOTFIXUPS
|
640 |
|
|
bool "Enable X86 board specific fixups for reboot"
|
641 |
|
|
depends on X86_32 && X86
|
642 |
|
|
default n
|
643 |
|
|
---help---
|
644 |
|
|
This enables chipset and/or board specific fixups to be done
|
645 |
|
|
in order to get reboot to work correctly. This is only needed on
|
646 |
|
|
some combinations of hardware and BIOS. The symptom, for which
|
647 |
|
|
this config is intended, is when reboot ends with a stalled/hung
|
648 |
|
|
system.
|
649 |
|
|
|
650 |
|
|
Currently, the only fixup is for the Geode machines using
|
651 |
|
|
CS5530A and CS5536 chipsets.
|
652 |
|
|
|
653 |
|
|
Say Y if you want to enable the fixup. Currently, it's safe to
|
654 |
|
|
enable this option even if you don't need it.
|
655 |
|
|
Say N otherwise.
|
656 |
|
|
|
657 |
|
|
config MICROCODE
|
658 |
|
|
tristate "/dev/cpu/microcode - Intel IA32 CPU microcode support"
|
659 |
|
|
select FW_LOADER
|
660 |
|
|
---help---
|
661 |
|
|
If you say Y here, you will be able to update the microcode on
|
662 |
|
|
Intel processors in the IA32 family, e.g. Pentium Pro, Pentium II,
|
663 |
|
|
Pentium III, Pentium 4, Xeon etc. You will obviously need the
|
664 |
|
|
actual microcode binary data itself which is not shipped with the
|
665 |
|
|
Linux kernel.
|
666 |
|
|
|
667 |
|
|
For latest news and information on obtaining all the required
|
668 |
|
|
ingredients for this driver, check:
|
669 |
|
|
.
|
670 |
|
|
|
671 |
|
|
To compile this driver as a module, choose M here: the
|
672 |
|
|
module will be called microcode.
|
673 |
|
|
|
674 |
|
|
config MICROCODE_OLD_INTERFACE
|
675 |
|
|
bool
|
676 |
|
|
depends on MICROCODE
|
677 |
|
|
default y
|
678 |
|
|
|
679 |
|
|
config X86_MSR
|
680 |
|
|
tristate "/dev/cpu/*/msr - Model-specific register support"
|
681 |
|
|
help
|
682 |
|
|
This device gives privileged processes access to the x86
|
683 |
|
|
Model-Specific Registers (MSRs). It is a character device with
|
684 |
|
|
major 202 and minors 0 to 31 for /dev/cpu/0/msr to /dev/cpu/31/msr.
|
685 |
|
|
MSR accesses are directed to a specific CPU on multi-processor
|
686 |
|
|
systems.
|
687 |
|
|
|
688 |
|
|
config X86_CPUID
|
689 |
|
|
tristate "/dev/cpu/*/cpuid - CPU information support"
|
690 |
|
|
help
|
691 |
|
|
This device gives processes access to the x86 CPUID instruction to
|
692 |
|
|
be executed on a specific processor. It is a character device
|
693 |
|
|
with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to
|
694 |
|
|
/dev/cpu/31/cpuid.
|
695 |
|
|
|
696 |
|
|
choice
|
697 |
|
|
prompt "High Memory Support"
|
698 |
|
|
default HIGHMEM4G if !X86_NUMAQ
|
699 |
|
|
default HIGHMEM64G if X86_NUMAQ
|
700 |
|
|
depends on X86_32
|
701 |
|
|
|
702 |
|
|
config NOHIGHMEM
|
703 |
|
|
bool "off"
|
704 |
|
|
depends on !X86_NUMAQ
|
705 |
|
|
---help---
|
706 |
|
|
Linux can use up to 64 Gigabytes of physical memory on x86 systems.
|
707 |
|
|
However, the address space of 32-bit x86 processors is only 4
|
708 |
|
|
Gigabytes large. That means that, if you have a large amount of
|
709 |
|
|
physical memory, not all of it can be "permanently mapped" by the
|
710 |
|
|
kernel. The physical memory that's not permanently mapped is called
|
711 |
|
|
"high memory".
|
712 |
|
|
|
713 |
|
|
If you are compiling a kernel which will never run on a machine with
|
714 |
|
|
more than 1 Gigabyte total physical RAM, answer "off" here (default
|
715 |
|
|
choice and suitable for most users). This will result in a "3GB/1GB"
|
716 |
|
|
split: 3GB are mapped so that each process sees a 3GB virtual memory
|
717 |
|
|
space and the remaining part of the 4GB virtual memory space is used
|
718 |
|
|
by the kernel to permanently map as much physical memory as
|
719 |
|
|
possible.
|
720 |
|
|
|
721 |
|
|
If the machine has between 1 and 4 Gigabytes physical RAM, then
|
722 |
|
|
answer "4GB" here.
|
723 |
|
|
|
724 |
|
|
If more than 4 Gigabytes is used then answer "64GB" here. This
|
725 |
|
|
selection turns Intel PAE (Physical Address Extension) mode on.
|
726 |
|
|
PAE implements 3-level paging on IA32 processors. PAE is fully
|
727 |
|
|
supported by Linux, PAE mode is implemented on all recent Intel
|
728 |
|
|
processors (Pentium Pro and better). NOTE: If you say "64GB" here,
|
729 |
|
|
then the kernel will not boot on CPUs that don't support PAE!
|
730 |
|
|
|
731 |
|
|
The actual amount of total physical memory will either be
|
732 |
|
|
auto detected or can be forced by using a kernel command line option
|
733 |
|
|
such as "mem=256M". (Try "man bootparam" or see the documentation of
|
734 |
|
|
your boot loader (lilo or loadlin) about how to pass options to the
|
735 |
|
|
kernel at boot time.)
|
736 |
|
|
|
737 |
|
|
If unsure, say "off".
|
738 |
|
|
|
739 |
|
|
config HIGHMEM4G
|
740 |
|
|
bool "4GB"
|
741 |
|
|
depends on !X86_NUMAQ
|
742 |
|
|
help
|
743 |
|
|
Select this if you have a 32-bit processor and between 1 and 4
|
744 |
|
|
gigabytes of physical RAM.
|
745 |
|
|
|
746 |
|
|
config HIGHMEM64G
|
747 |
|
|
bool "64GB"
|
748 |
|
|
depends on !M386 && !M486
|
749 |
|
|
select X86_PAE
|
750 |
|
|
help
|
751 |
|
|
Select this if you have a 32-bit processor and more than 4
|
752 |
|
|
gigabytes of physical RAM.
|
753 |
|
|
|
754 |
|
|
endchoice
|
755 |
|
|
|
756 |
|
|
choice
|
757 |
|
|
depends on EXPERIMENTAL
|
758 |
|
|
prompt "Memory split" if EMBEDDED
|
759 |
|
|
default VMSPLIT_3G
|
760 |
|
|
depends on X86_32
|
761 |
|
|
help
|
762 |
|
|
Select the desired split between kernel and user memory.
|
763 |
|
|
|
764 |
|
|
If the address range available to the kernel is less than the
|
765 |
|
|
physical memory installed, the remaining memory will be available
|
766 |
|
|
as "high memory". Accessing high memory is a little more costly
|
767 |
|
|
than low memory, as it needs to be mapped into the kernel first.
|
768 |
|
|
Note that increasing the kernel address space limits the range
|
769 |
|
|
available to user programs, making the address space there
|
770 |
|
|
tighter. Selecting anything other than the default 3G/1G split
|
771 |
|
|
will also likely make your kernel incompatible with binary-only
|
772 |
|
|
kernel modules.
|
773 |
|
|
|
774 |
|
|
If you are not absolutely sure what you are doing, leave this
|
775 |
|
|
option alone!
|
776 |
|
|
|
777 |
|
|
config VMSPLIT_3G
|
778 |
|
|
bool "3G/1G user/kernel split"
|
779 |
|
|
config VMSPLIT_3G_OPT
|
780 |
|
|
depends on !X86_PAE
|
781 |
|
|
bool "3G/1G user/kernel split (for full 1G low memory)"
|
782 |
|
|
config VMSPLIT_2G
|
783 |
|
|
bool "2G/2G user/kernel split"
|
784 |
|
|
config VMSPLIT_2G_OPT
|
785 |
|
|
depends on !X86_PAE
|
786 |
|
|
bool "2G/2G user/kernel split (for full 2G low memory)"
|
787 |
|
|
config VMSPLIT_1G
|
788 |
|
|
bool "1G/3G user/kernel split"
|
789 |
|
|
endchoice
|
790 |
|
|
|
791 |
|
|
config PAGE_OFFSET
|
792 |
|
|
hex
|
793 |
|
|
default 0xB0000000 if VMSPLIT_3G_OPT
|
794 |
|
|
default 0x80000000 if VMSPLIT_2G
|
795 |
|
|
default 0x78000000 if VMSPLIT_2G_OPT
|
796 |
|
|
default 0x40000000 if VMSPLIT_1G
|
797 |
|
|
default 0xC0000000
|
798 |
|
|
depends on X86_32
|
799 |
|
|
|
800 |
|
|
config HIGHMEM
|
801 |
|
|
bool
|
802 |
|
|
depends on X86_32 && (HIGHMEM64G || HIGHMEM4G)
|
803 |
|
|
default y
|
804 |
|
|
|
805 |
|
|
config X86_PAE
|
806 |
|
|
bool "PAE (Physical Address Extension) Support"
|
807 |
|
|
default n
|
808 |
|
|
depends on X86_32 && !HIGHMEM4G
|
809 |
|
|
select RESOURCES_64BIT
|
810 |
|
|
help
|
811 |
|
|
PAE is required for NX support, and furthermore enables
|
812 |
|
|
larger swapspace support for non-overcommit purposes. It
|
813 |
|
|
has the cost of more pagetable lookup overhead, and also
|
814 |
|
|
consumes more pagetable space per process.
|
815 |
|
|
|
816 |
|
|
# Common NUMA Features
|
817 |
|
|
config NUMA
|
818 |
|
|
bool "Numa Memory Allocation and Scheduler Support (EXPERIMENTAL)"
|
819 |
|
|
depends on SMP
|
820 |
|
|
depends on X86_64 || (X86_32 && HIGHMEM64G && (X86_NUMAQ || (X86_SUMMIT || X86_GENERICARCH) && ACPI) && EXPERIMENTAL)
|
821 |
|
|
default n if X86_PC
|
822 |
|
|
default y if (X86_NUMAQ || X86_SUMMIT)
|
823 |
|
|
help
|
824 |
|
|
Enable NUMA (Non Uniform Memory Access) support.
|
825 |
|
|
The kernel will try to allocate memory used by a CPU on the
|
826 |
|
|
local memory controller of the CPU and add some more
|
827 |
|
|
NUMA awareness to the kernel.
|
828 |
|
|
|
829 |
|
|
For i386 this is currently highly experimental and should be only
|
830 |
|
|
used for kernel development. It might also cause boot failures.
|
831 |
|
|
For x86_64 this is recommended on all multiprocessor Opteron systems.
|
832 |
|
|
If the system is EM64T, you should say N unless your system is
|
833 |
|
|
EM64T NUMA.
|
834 |
|
|
|
835 |
|
|
comment "NUMA (Summit) requires SMP, 64GB highmem support, ACPI"
|
836 |
|
|
depends on X86_32 && X86_SUMMIT && (!HIGHMEM64G || !ACPI)
|
837 |
|
|
|
838 |
|
|
config K8_NUMA
|
839 |
|
|
bool "Old style AMD Opteron NUMA detection"
|
840 |
|
|
depends on X86_64 && NUMA && PCI
|
841 |
|
|
default y
|
842 |
|
|
help
|
843 |
|
|
Enable K8 NUMA node topology detection. You should say Y here if
|
844 |
|
|
you have a multi processor AMD K8 system. This uses an old
|
845 |
|
|
method to read the NUMA configuration directly from the builtin
|
846 |
|
|
Northbridge of Opteron. It is recommended to use X86_64_ACPI_NUMA
|
847 |
|
|
instead, which also takes priority if both are compiled in.
|
848 |
|
|
|
849 |
|
|
config X86_64_ACPI_NUMA
|
850 |
|
|
bool "ACPI NUMA detection"
|
851 |
|
|
depends on X86_64 && NUMA && ACPI && PCI
|
852 |
|
|
select ACPI_NUMA
|
853 |
|
|
default y
|
854 |
|
|
help
|
855 |
|
|
Enable ACPI SRAT based node topology detection.
|
856 |
|
|
|
857 |
|
|
config NUMA_EMU
|
858 |
|
|
bool "NUMA emulation"
|
859 |
|
|
depends on X86_64 && NUMA
|
860 |
|
|
help
|
861 |
|
|
Enable NUMA emulation. A flat machine will be split
|
862 |
|
|
into virtual nodes when booted with "numa=fake=N", where N is the
|
863 |
|
|
number of nodes. This is only useful for debugging.
|
864 |
|
|
|
865 |
|
|
config NODES_SHIFT
|
866 |
|
|
int
|
867 |
|
|
default "6" if X86_64
|
868 |
|
|
default "4" if X86_NUMAQ
|
869 |
|
|
default "3"
|
870 |
|
|
depends on NEED_MULTIPLE_NODES
|
871 |
|
|
|
872 |
|
|
config HAVE_ARCH_BOOTMEM_NODE
|
873 |
|
|
bool
|
874 |
|
|
depends on X86_32 && NUMA
|
875 |
|
|
default y
|
876 |
|
|
|
877 |
|
|
config ARCH_HAVE_MEMORY_PRESENT
|
878 |
|
|
bool
|
879 |
|
|
depends on X86_32 && DISCONTIGMEM
|
880 |
|
|
default y
|
881 |
|
|
|
882 |
|
|
config NEED_NODE_MEMMAP_SIZE
|
883 |
|
|
bool
|
884 |
|
|
depends on X86_32 && (DISCONTIGMEM || SPARSEMEM)
|
885 |
|
|
default y
|
886 |
|
|
|
887 |
|
|
config HAVE_ARCH_ALLOC_REMAP
|
888 |
|
|
bool
|
889 |
|
|
depends on X86_32 && NUMA
|
890 |
|
|
default y
|
891 |
|
|
|
892 |
|
|
config ARCH_FLATMEM_ENABLE
|
893 |
|
|
def_bool y
|
894 |
|
|
depends on (X86_32 && ARCH_SELECT_MEMORY_MODEL && X86_PC) || (X86_64 && !NUMA)
|
895 |
|
|
|
896 |
|
|
config ARCH_DISCONTIGMEM_ENABLE
|
897 |
|
|
def_bool y
|
898 |
|
|
depends on NUMA
|
899 |
|
|
|
900 |
|
|
config ARCH_DISCONTIGMEM_DEFAULT
|
901 |
|
|
def_bool y
|
902 |
|
|
depends on NUMA
|
903 |
|
|
|
904 |
|
|
config ARCH_SPARSEMEM_ENABLE
|
905 |
|
|
def_bool y
|
906 |
|
|
depends on NUMA || (EXPERIMENTAL && (X86_PC || X86_64))
|
907 |
|
|
select SPARSEMEM_STATIC if X86_32
|
908 |
|
|
select SPARSEMEM_VMEMMAP_ENABLE if X86_64
|
909 |
|
|
|
910 |
|
|
config ARCH_SELECT_MEMORY_MODEL
|
911 |
|
|
def_bool y
|
912 |
|
|
depends on X86_32 && ARCH_SPARSEMEM_ENABLE
|
913 |
|
|
|
914 |
|
|
config ARCH_MEMORY_PROBE
|
915 |
|
|
def_bool X86_64
|
916 |
|
|
depends on MEMORY_HOTPLUG
|
917 |
|
|
|
918 |
|
|
source "mm/Kconfig"
|
919 |
|
|
|
920 |
|
|
config HIGHPTE
|
921 |
|
|
bool "Allocate 3rd-level pagetables from highmem"
|
922 |
|
|
depends on X86_32 && (HIGHMEM4G || HIGHMEM64G)
|
923 |
|
|
help
|
924 |
|
|
The VM uses one page table entry for each page of physical memory.
|
925 |
|
|
For systems with a lot of RAM, this can be wasteful of precious
|
926 |
|
|
low memory. Setting this option will put user-space page table
|
927 |
|
|
entries in high memory.
|
928 |
|
|
|
929 |
|
|
config MATH_EMULATION
|
930 |
|
|
bool
|
931 |
|
|
prompt "Math emulation" if X86_32
|
932 |
|
|
---help---
|
933 |
|
|
Linux can emulate a math coprocessor (used for floating point
|
934 |
|
|
operations) if you don't have one. 486DX and Pentium processors have
|
935 |
|
|
a math coprocessor built in, 486SX and 386 do not, unless you added
|
936 |
|
|
a 487DX or 387, respectively. (The messages during boot time can
|
937 |
|
|
give you some hints here ["man dmesg"].) Everyone needs either a
|
938 |
|
|
coprocessor or this emulation.
|
939 |
|
|
|
940 |
|
|
If you don't have a math coprocessor, you need to say Y here; if you
|
941 |
|
|
say Y here even though you have a coprocessor, the coprocessor will
|
942 |
|
|
be used nevertheless. (This behavior can be changed with the kernel
|
943 |
|
|
command line option "no387", which comes handy if your coprocessor
|
944 |
|
|
is broken. Try "man bootparam" or see the documentation of your boot
|
945 |
|
|
loader (lilo or loadlin) about how to pass options to the kernel at
|
946 |
|
|
boot time.) This means that it is a good idea to say Y here if you
|
947 |
|
|
intend to use this kernel on different machines.
|
948 |
|
|
|
949 |
|
|
More information about the internals of the Linux math coprocessor
|
950 |
|
|
emulation can be found in .
|
951 |
|
|
|
952 |
|
|
If you are not sure, say Y; apart from resulting in a 66 KB bigger
|
953 |
|
|
kernel, it won't hurt.
|
954 |
|
|
|
955 |
|
|
config MTRR
|
956 |
|
|
bool "MTRR (Memory Type Range Register) support"
|
957 |
|
|
---help---
|
958 |
|
|
On Intel P6 family processors (Pentium Pro, Pentium II and later)
|
959 |
|
|
the Memory Type Range Registers (MTRRs) may be used to control
|
960 |
|
|
processor access to memory ranges. This is most useful if you have
|
961 |
|
|
a video (VGA) card on a PCI or AGP bus. Enabling write-combining
|
962 |
|
|
allows bus write transfers to be combined into a larger transfer
|
963 |
|
|
before bursting over the PCI/AGP bus. This can increase performance
|
964 |
|
|
of image write operations 2.5 times or more. Saying Y here creates a
|
965 |
|
|
/proc/mtrr file which may be used to manipulate your processor's
|
966 |
|
|
MTRRs. Typically the X server should use this.
|
967 |
|
|
|
968 |
|
|
This code has a reasonably generic interface so that similar
|
969 |
|
|
control registers on other processors can be easily supported
|
970 |
|
|
as well:
|
971 |
|
|
|
972 |
|
|
The Cyrix 6x86, 6x86MX and M II processors have Address Range
|
973 |
|
|
Registers (ARRs) which provide a similar functionality to MTRRs. For
|
974 |
|
|
these, the ARRs are used to emulate the MTRRs.
|
975 |
|
|
The AMD K6-2 (stepping 8 and above) and K6-3 processors have two
|
976 |
|
|
MTRRs. The Centaur C6 (WinChip) has 8 MCRs, allowing
|
977 |
|
|
write-combining. All of these processors are supported by this code
|
978 |
|
|
and it makes sense to say Y here if you have one of them.
|
979 |
|
|
|
980 |
|
|
Saying Y here also fixes a problem with buggy SMP BIOSes which only
|
981 |
|
|
set the MTRRs for the boot CPU and not for the secondary CPUs. This
|
982 |
|
|
can lead to all sorts of problems, so it's good to say Y here.
|
983 |
|
|
|
984 |
|
|
You can safely say Y even if your machine doesn't have MTRRs, you'll
|
985 |
|
|
just add about 9 KB to your kernel.
|
986 |
|
|
|
987 |
|
|
See for more information.
|
988 |
|
|
|
989 |
|
|
config EFI
|
990 |
|
|
bool "Boot from EFI support"
|
991 |
|
|
depends on X86_32 && ACPI
|
992 |
|
|
default n
|
993 |
|
|
---help---
|
994 |
|
|
This enables the kernel to boot on EFI platforms using
|
995 |
|
|
system configuration information passed to it from the firmware.
|
996 |
|
|
This also enables the kernel to use any EFI runtime services that are
|
997 |
|
|
available (such as the EFI variable services).
|
998 |
|
|
|
999 |
|
|
This option is only useful on systems that have EFI firmware
|
1000 |
|
|
and will result in a kernel image that is ~8k larger. In addition,
|
1001 |
|
|
you must use the latest ELILO loader available at
|
1002 |
|
|
in order to take advantage of
|
1003 |
|
|
kernel initialization using EFI information (neither GRUB nor LILO know
|
1004 |
|
|
anything about EFI). However, even with this option, the resultant
|
1005 |
|
|
kernel should continue to boot on existing non-EFI platforms.
|
1006 |
|
|
|
1007 |
|
|
config IRQBALANCE
|
1008 |
|
|
bool "Enable kernel irq balancing"
|
1009 |
|
|
depends on X86_32 && SMP && X86_IO_APIC
|
1010 |
|
|
default y
|
1011 |
|
|
help
|
1012 |
|
|
The default yes will allow the kernel to do irq load balancing.
|
1013 |
|
|
Saying no will keep the kernel from doing irq load balancing.
|
1014 |
|
|
|
1015 |
|
|
# turning this on wastes a bunch of space.
|
1016 |
|
|
# Summit needs it only when NUMA is on
|
1017 |
|
|
config BOOT_IOREMAP
|
1018 |
|
|
bool
|
1019 |
|
|
depends on X86_32 && (((X86_SUMMIT || X86_GENERICARCH) && NUMA) || (X86 && EFI))
|
1020 |
|
|
default y
|
1021 |
|
|
|
1022 |
|
|
config SECCOMP
|
1023 |
|
|
bool "Enable seccomp to safely compute untrusted bytecode"
|
1024 |
|
|
depends on PROC_FS
|
1025 |
|
|
default y
|
1026 |
|
|
help
|
1027 |
|
|
This kernel feature is useful for number crunching applications
|
1028 |
|
|
that may need to compute untrusted bytecode during their
|
1029 |
|
|
execution. By using pipes or other transports made available to
|
1030 |
|
|
the process as file descriptors supporting the read/write
|
1031 |
|
|
syscalls, it's possible to isolate those applications in
|
1032 |
|
|
their own address space using seccomp. Once seccomp is
|
1033 |
|
|
enabled via /proc//seccomp, it cannot be disabled
|
1034 |
|
|
and the task is only allowed to execute a few safe syscalls
|
1035 |
|
|
defined by each seccomp mode.
|
1036 |
|
|
|
1037 |
|
|
If unsure, say Y. Only embedded should say N here.
|
1038 |
|
|
|
1039 |
|
|
config CC_STACKPROTECTOR
|
1040 |
|
|
bool "Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)"
|
1041 |
|
|
depends on X86_64 && EXPERIMENTAL
|
1042 |
|
|
help
|
1043 |
|
|
This option turns on the -fstack-protector GCC feature. This
|
1044 |
|
|
feature puts, at the beginning of critical functions, a canary
|
1045 |
|
|
value on the stack just before the return address, and validates
|
1046 |
|
|
the value just before actually returning. Stack based buffer
|
1047 |
|
|
overflows (that need to overwrite this return address) now also
|
1048 |
|
|
overwrite the canary, which gets detected and the attack is then
|
1049 |
|
|
neutralized via a kernel panic.
|
1050 |
|
|
|
1051 |
|
|
This feature requires gcc version 4.2 or above, or a distribution
|
1052 |
|
|
gcc with the feature backported. Older versions are automatically
|
1053 |
|
|
detected and for those versions, this configuration option is ignored.
|
1054 |
|
|
|
1055 |
|
|
config CC_STACKPROTECTOR_ALL
|
1056 |
|
|
bool "Use stack-protector for all functions"
|
1057 |
|
|
depends on CC_STACKPROTECTOR
|
1058 |
|
|
help
|
1059 |
|
|
Normally, GCC only inserts the canary value protection for
|
1060 |
|
|
functions that use large-ish on-stack buffers. By enabling
|
1061 |
|
|
this option, GCC will be asked to do this for ALL functions.
|
1062 |
|
|
|
1063 |
|
|
source kernel/Kconfig.hz
|
1064 |
|
|
|
1065 |
|
|
config KEXEC
|
1066 |
|
|
bool "kexec system call"
|
1067 |
|
|
help
|
1068 |
|
|
kexec is a system call that implements the ability to shutdown your
|
1069 |
|
|
current kernel, and to start another kernel. It is like a reboot
|
1070 |
|
|
but it is independent of the system firmware. And like a reboot
|
1071 |
|
|
you can start any kernel with it, not just Linux.
|
1072 |
|
|
|
1073 |
|
|
The name comes from the similarity to the exec system call.
|
1074 |
|
|
|
1075 |
|
|
It is an ongoing process to be certain the hardware in a machine
|
1076 |
|
|
is properly shutdown, so do not be surprised if this code does not
|
1077 |
|
|
initially work for you. It may help to enable device hotplugging
|
1078 |
|
|
support. As of this writing the exact hardware interface is
|
1079 |
|
|
strongly in flux, so no good recommendation can be made.
|
1080 |
|
|
|
1081 |
|
|
config CRASH_DUMP
|
1082 |
|
|
bool "kernel crash dumps (EXPERIMENTAL)"
|
1083 |
|
|
depends on EXPERIMENTAL
|
1084 |
|
|
depends on X86_64 || (X86_32 && HIGHMEM)
|
1085 |
|
|
help
|
1086 |
|
|
Generate crash dump after being started by kexec.
|
1087 |
|
|
This should be normally only set in special crash dump kernels
|
1088 |
|
|
which are loaded in the main kernel with kexec-tools into
|
1089 |
|
|
a specially reserved region and then later executed after
|
1090 |
|
|
a crash by kdump/kexec. The crash dump kernel must be compiled
|
1091 |
|
|
to a memory address not used by the main kernel or BIOS using
|
1092 |
|
|
PHYSICAL_START, or it must be built as a relocatable image
|
1093 |
|
|
(CONFIG_RELOCATABLE=y).
|
1094 |
|
|
For more details see Documentation/kdump/kdump.txt
|
1095 |
|
|
|
1096 |
|
|
config PHYSICAL_START
|
1097 |
|
|
hex "Physical address where the kernel is loaded" if (EMBEDDED || CRASH_DUMP)
|
1098 |
|
|
default "0x1000000" if X86_NUMAQ
|
1099 |
|
|
default "0x200000" if X86_64
|
1100 |
|
|
default "0x100000"
|
1101 |
|
|
help
|
1102 |
|
|
This gives the physical address where the kernel is loaded.
|
1103 |
|
|
|
1104 |
|
|
If kernel is a not relocatable (CONFIG_RELOCATABLE=n) then
|
1105 |
|
|
bzImage will decompress itself to above physical address and
|
1106 |
|
|
run from there. Otherwise, bzImage will run from the address where
|
1107 |
|
|
it has been loaded by the boot loader and will ignore above physical
|
1108 |
|
|
address.
|
1109 |
|
|
|
1110 |
|
|
In normal kdump cases one does not have to set/change this option
|
1111 |
|
|
as now bzImage can be compiled as a completely relocatable image
|
1112 |
|
|
(CONFIG_RELOCATABLE=y) and be used to load and run from a different
|
1113 |
|
|
address. This option is mainly useful for the folks who don't want
|
1114 |
|
|
to use a bzImage for capturing the crash dump and want to use a
|
1115 |
|
|
vmlinux instead. vmlinux is not relocatable hence a kernel needs
|
1116 |
|
|
to be specifically compiled to run from a specific memory area
|
1117 |
|
|
(normally a reserved region) and this option comes handy.
|
1118 |
|
|
|
1119 |
|
|
So if you are using bzImage for capturing the crash dump, leave
|
1120 |
|
|
the value here unchanged to 0x100000 and set CONFIG_RELOCATABLE=y.
|
1121 |
|
|
Otherwise if you plan to use vmlinux for capturing the crash dump
|
1122 |
|
|
change this value to start of the reserved region (Typically 16MB
|
1123 |
|
|
0x1000000). In other words, it can be set based on the "X" value as
|
1124 |
|
|
specified in the "crashkernel=YM@XM" command line boot parameter
|
1125 |
|
|
passed to the panic-ed kernel. Typically this parameter is set as
|
1126 |
|
|
crashkernel=64M@16M. Please take a look at
|
1127 |
|
|
Documentation/kdump/kdump.txt for more details about crash dumps.
|
1128 |
|
|
|
1129 |
|
|
Usage of bzImage for capturing the crash dump is recommended as
|
1130 |
|
|
one does not have to build two kernels. Same kernel can be used
|
1131 |
|
|
as production kernel and capture kernel. Above option should have
|
1132 |
|
|
gone away after relocatable bzImage support is introduced. But it
|
1133 |
|
|
is present because there are users out there who continue to use
|
1134 |
|
|
vmlinux for dump capture. This option should go away down the
|
1135 |
|
|
line.
|
1136 |
|
|
|
1137 |
|
|
Don't change this unless you know what you are doing.
|
1138 |
|
|
|
1139 |
|
|
config RELOCATABLE
|
1140 |
|
|
bool "Build a relocatable kernel (EXPERIMENTAL)"
|
1141 |
|
|
depends on EXPERIMENTAL
|
1142 |
|
|
help
|
1143 |
|
|
This builds a kernel image that retains relocation information
|
1144 |
|
|
so it can be loaded someplace besides the default 1MB.
|
1145 |
|
|
The relocations tend to make the kernel binary about 10% larger,
|
1146 |
|
|
but are discarded at runtime.
|
1147 |
|
|
|
1148 |
|
|
One use is for the kexec on panic case where the recovery kernel
|
1149 |
|
|
must live at a different physical address than the primary
|
1150 |
|
|
kernel.
|
1151 |
|
|
|
1152 |
|
|
Note: If CONFIG_RELOCATABLE=y, then the kernel runs from the address
|
1153 |
|
|
it has been loaded at and the compile time physical address
|
1154 |
|
|
(CONFIG_PHYSICAL_START) is ignored.
|
1155 |
|
|
|
1156 |
|
|
config PHYSICAL_ALIGN
|
1157 |
|
|
hex
|
1158 |
|
|
prompt "Alignment value to which kernel should be aligned" if X86_32
|
1159 |
|
|
default "0x100000" if X86_32
|
1160 |
|
|
default "0x200000" if X86_64
|
1161 |
|
|
range 0x2000 0x400000
|
1162 |
|
|
help
|
1163 |
|
|
This value puts the alignment restrictions on physical address
|
1164 |
|
|
where kernel is loaded and run from. Kernel is compiled for an
|
1165 |
|
|
address which meets above alignment restriction.
|
1166 |
|
|
|
1167 |
|
|
If bootloader loads the kernel at a non-aligned address and
|
1168 |
|
|
CONFIG_RELOCATABLE is set, kernel will move itself to nearest
|
1169 |
|
|
address aligned to above value and run from there.
|
1170 |
|
|
|
1171 |
|
|
If bootloader loads the kernel at a non-aligned address and
|
1172 |
|
|
CONFIG_RELOCATABLE is not set, kernel will ignore the run time
|
1173 |
|
|
load address and decompress itself to the address it has been
|
1174 |
|
|
compiled for and run from there. The address for which kernel is
|
1175 |
|
|
compiled already meets above alignment restrictions. Hence the
|
1176 |
|
|
end result is that kernel runs from a physical address meeting
|
1177 |
|
|
above alignment restrictions.
|
1178 |
|
|
|
1179 |
|
|
Don't change this unless you know what you are doing.
|
1180 |
|
|
|
1181 |
|
|
config HOTPLUG_CPU
|
1182 |
|
|
bool "Support for suspend on SMP and hot-pluggable CPUs (EXPERIMENTAL)"
|
1183 |
|
|
depends on SMP && HOTPLUG && EXPERIMENTAL && !X86_VOYAGER
|
1184 |
|
|
---help---
|
1185 |
|
|
Say Y here to experiment with turning CPUs off and on, and to
|
1186 |
|
|
enable suspend on SMP systems. CPUs can be controlled through
|
1187 |
|
|
/sys/devices/system/cpu.
|
1188 |
|
|
Say N if you want to disable CPU hotplug and don't need to
|
1189 |
|
|
suspend.
|
1190 |
|
|
|
1191 |
|
|
config COMPAT_VDSO
|
1192 |
|
|
bool "Compat VDSO support"
|
1193 |
|
|
default y
|
1194 |
|
|
depends on X86_32
|
1195 |
|
|
help
|
1196 |
|
|
Map the VDSO to the predictable old-style address too.
|
1197 |
|
|
---help---
|
1198 |
|
|
Say N here if you are running a sufficiently recent glibc
|
1199 |
|
|
version (2.3.3 or later), to remove the high-mapped
|
1200 |
|
|
VDSO mapping and to exclusively use the randomized VDSO.
|
1201 |
|
|
|
1202 |
|
|
If unsure, say Y.
|
1203 |
|
|
|
1204 |
|
|
endmenu
|
1205 |
|
|
|
1206 |
|
|
config ARCH_ENABLE_MEMORY_HOTPLUG
|
1207 |
|
|
def_bool y
|
1208 |
|
|
depends on X86_64 || (X86_32 && HIGHMEM)
|
1209 |
|
|
|
1210 |
|
|
config MEMORY_HOTPLUG_RESERVE
|
1211 |
|
|
def_bool X86_64
|
1212 |
|
|
depends on (MEMORY_HOTPLUG && DISCONTIGMEM)
|
1213 |
|
|
|
1214 |
|
|
config HAVE_ARCH_EARLY_PFN_TO_NID
|
1215 |
|
|
def_bool X86_64
|
1216 |
|
|
depends on NUMA
|
1217 |
|
|
|
1218 |
|
|
config OUT_OF_LINE_PFN_TO_PAGE
|
1219 |
|
|
def_bool X86_64
|
1220 |
|
|
depends on DISCONTIGMEM
|
1221 |
|
|
|
1222 |
|
|
menu "Power management options"
|
1223 |
|
|
depends on !X86_VOYAGER
|
1224 |
|
|
|
1225 |
|
|
config ARCH_HIBERNATION_HEADER
|
1226 |
|
|
bool
|
1227 |
|
|
depends on X86_64 && HIBERNATION
|
1228 |
|
|
default y
|
1229 |
|
|
|
1230 |
|
|
source "kernel/power/Kconfig"
|
1231 |
|
|
|
1232 |
|
|
source "drivers/acpi/Kconfig"
|
1233 |
|
|
|
1234 |
|
|
menuconfig APM
|
1235 |
|
|
tristate "APM (Advanced Power Management) BIOS support"
|
1236 |
|
|
depends on X86_32 && PM_SLEEP && !X86_VISWS
|
1237 |
|
|
---help---
|
1238 |
|
|
APM is a BIOS specification for saving power using several different
|
1239 |
|
|
techniques. This is mostly useful for battery powered laptops with
|
1240 |
|
|
APM compliant BIOSes. If you say Y here, the system time will be
|
1241 |
|
|
reset after a RESUME operation, the /proc/apm device will provide
|
1242 |
|
|
battery status information, and user-space programs will receive
|
1243 |
|
|
notification of APM "events" (e.g. battery status change).
|
1244 |
|
|
|
1245 |
|
|
If you select "Y" here, you can disable actual use of the APM
|
1246 |
|
|
BIOS by passing the "apm=off" option to the kernel at boot time.
|
1247 |
|
|
|
1248 |
|
|
Note that the APM support is almost completely disabled for
|
1249 |
|
|
machines with more than one CPU.
|
1250 |
|
|
|
1251 |
|
|
In order to use APM, you will need supporting software. For location
|
1252 |
|
|
and more information, read and the
|
1253 |
|
|
Battery Powered Linux mini-HOWTO, available from
|
1254 |
|
|
.
|
1255 |
|
|
|
1256 |
|
|
This driver does not spin down disk drives (see the hdparm(8)
|
1257 |
|
|
manpage ("man 8 hdparm") for that), and it doesn't turn off
|
1258 |
|
|
VESA-compliant "green" monitors.
|
1259 |
|
|
|
1260 |
|
|
This driver does not support the TI 4000M TravelMate and the ACER
|
1261 |
|
|
486/DX4/75 because they don't have compliant BIOSes. Many "green"
|
1262 |
|
|
desktop machines also don't have compliant BIOSes, and this driver
|
1263 |
|
|
may cause those machines to panic during the boot phase.
|
1264 |
|
|
|
1265 |
|
|
Generally, if you don't have a battery in your machine, there isn't
|
1266 |
|
|
much point in using this driver and you should say N. If you get
|
1267 |
|
|
random kernel OOPSes or reboots that don't seem to be related to
|
1268 |
|
|
anything, try disabling/enabling this option (or disabling/enabling
|
1269 |
|
|
APM in your BIOS).
|
1270 |
|
|
|
1271 |
|
|
Some other things you should try when experiencing seemingly random,
|
1272 |
|
|
"weird" problems:
|
1273 |
|
|
|
1274 |
|
|
1) make sure that you have enough swap space and that it is
|
1275 |
|
|
enabled.
|
1276 |
|
|
2) pass the "no-hlt" option to the kernel
|
1277 |
|
|
3) switch on floating point emulation in the kernel and pass
|
1278 |
|
|
the "no387" option to the kernel
|
1279 |
|
|
4) pass the "floppy=nodma" option to the kernel
|
1280 |
|
|
5) pass the "mem=4M" option to the kernel (thereby disabling
|
1281 |
|
|
all but the first 4 MB of RAM)
|
1282 |
|
|
6) make sure that the CPU is not over clocked.
|
1283 |
|
|
7) read the sig11 FAQ at
|
1284 |
|
|
8) disable the cache from your BIOS settings
|
1285 |
|
|
9) install a fan for the video card or exchange video RAM
|
1286 |
|
|
10) install a better fan for the CPU
|
1287 |
|
|
11) exchange RAM chips
|
1288 |
|
|
12) exchange the motherboard.
|
1289 |
|
|
|
1290 |
|
|
To compile this driver as a module, choose M here: the
|
1291 |
|
|
module will be called apm.
|
1292 |
|
|
|
1293 |
|
|
if APM
|
1294 |
|
|
|
1295 |
|
|
config APM_IGNORE_USER_SUSPEND
|
1296 |
|
|
bool "Ignore USER SUSPEND"
|
1297 |
|
|
help
|
1298 |
|
|
This option will ignore USER SUSPEND requests. On machines with a
|
1299 |
|
|
compliant APM BIOS, you want to say N. However, on the NEC Versa M
|
1300 |
|
|
series notebooks, it is necessary to say Y because of a BIOS bug.
|
1301 |
|
|
|
1302 |
|
|
config APM_DO_ENABLE
|
1303 |
|
|
bool "Enable PM at boot time"
|
1304 |
|
|
---help---
|
1305 |
|
|
Enable APM features at boot time. From page 36 of the APM BIOS
|
1306 |
|
|
specification: "When disabled, the APM BIOS does not automatically
|
1307 |
|
|
power manage devices, enter the Standby State, enter the Suspend
|
1308 |
|
|
State, or take power saving steps in response to CPU Idle calls."
|
1309 |
|
|
This driver will make CPU Idle calls when Linux is idle (unless this
|
1310 |
|
|
feature is turned off -- see "Do CPU IDLE calls", below). This
|
1311 |
|
|
should always save battery power, but more complicated APM features
|
1312 |
|
|
will be dependent on your BIOS implementation. You may need to turn
|
1313 |
|
|
this option off if your computer hangs at boot time when using APM
|
1314 |
|
|
support, or if it beeps continuously instead of suspending. Turn
|
1315 |
|
|
this off if you have a NEC UltraLite Versa 33/C or a Toshiba
|
1316 |
|
|
T400CDT. This is off by default since most machines do fine without
|
1317 |
|
|
this feature.
|
1318 |
|
|
|
1319 |
|
|
config APM_CPU_IDLE
|
1320 |
|
|
bool "Make CPU Idle calls when idle"
|
1321 |
|
|
help
|
1322 |
|
|
Enable calls to APM CPU Idle/CPU Busy inside the kernel's idle loop.
|
1323 |
|
|
On some machines, this can activate improved power savings, such as
|
1324 |
|
|
a slowed CPU clock rate, when the machine is idle. These idle calls
|
1325 |
|
|
are made after the idle loop has run for some length of time (e.g.,
|
1326 |
|
|
333 mS). On some machines, this will cause a hang at boot time or
|
1327 |
|
|
whenever the CPU becomes idle. (On machines with more than one CPU,
|
1328 |
|
|
this option does nothing.)
|
1329 |
|
|
|
1330 |
|
|
config APM_DISPLAY_BLANK
|
1331 |
|
|
bool "Enable console blanking using APM"
|
1332 |
|
|
help
|
1333 |
|
|
Enable console blanking using the APM. Some laptops can use this to
|
1334 |
|
|
turn off the LCD backlight when the screen blanker of the Linux
|
1335 |
|
|
virtual console blanks the screen. Note that this is only used by
|
1336 |
|
|
the virtual console screen blanker, and won't turn off the backlight
|
1337 |
|
|
when using the X Window system. This also doesn't have anything to
|
1338 |
|
|
do with your VESA-compliant power-saving monitor. Further, this
|
1339 |
|
|
option doesn't work for all laptops -- it might not turn off your
|
1340 |
|
|
backlight at all, or it might print a lot of errors to the console,
|
1341 |
|
|
especially if you are using gpm.
|
1342 |
|
|
|
1343 |
|
|
config APM_ALLOW_INTS
|
1344 |
|
|
bool "Allow interrupts during APM BIOS calls"
|
1345 |
|
|
help
|
1346 |
|
|
Normally we disable external interrupts while we are making calls to
|
1347 |
|
|
the APM BIOS as a measure to lessen the effects of a badly behaving
|
1348 |
|
|
BIOS implementation. The BIOS should reenable interrupts if it
|
1349 |
|
|
needs to. Unfortunately, some BIOSes do not -- especially those in
|
1350 |
|
|
many of the newer IBM Thinkpads. If you experience hangs when you
|
1351 |
|
|
suspend, try setting this to Y. Otherwise, say N.
|
1352 |
|
|
|
1353 |
|
|
config APM_REAL_MODE_POWER_OFF
|
1354 |
|
|
bool "Use real mode APM BIOS call to power off"
|
1355 |
|
|
help
|
1356 |
|
|
Use real mode APM BIOS calls to switch off the computer. This is
|
1357 |
|
|
a work-around for a number of buggy BIOSes. Switch this option on if
|
1358 |
|
|
your computer crashes instead of powering off properly.
|
1359 |
|
|
|
1360 |
|
|
endif # APM
|
1361 |
|
|
|
1362 |
|
|
source "arch/x86/kernel/cpu/cpufreq/Kconfig"
|
1363 |
|
|
|
1364 |
|
|
source "drivers/cpuidle/Kconfig"
|
1365 |
|
|
|
1366 |
|
|
endmenu
|
1367 |
|
|
|
1368 |
|
|
|
1369 |
|
|
menu "Bus options (PCI etc.)"
|
1370 |
|
|
|
1371 |
|
|
config PCI
|
1372 |
|
|
bool "PCI support" if !X86_VISWS
|
1373 |
|
|
depends on !X86_VOYAGER
|
1374 |
|
|
default y if X86_VISWS
|
1375 |
|
|
select ARCH_SUPPORTS_MSI if (X86_LOCAL_APIC && X86_IO_APIC)
|
1376 |
|
|
help
|
1377 |
|
|
Find out whether you have a PCI motherboard. PCI is the name of a
|
1378 |
|
|
bus system, i.e. the way the CPU talks to the other stuff inside
|
1379 |
|
|
your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or
|
1380 |
|
|
VESA. If you have PCI, say Y, otherwise N.
|
1381 |
|
|
|
1382 |
|
|
The PCI-HOWTO, available from
|
1383 |
|
|
, contains valuable
|
1384 |
|
|
information about which PCI hardware does work under Linux and which
|
1385 |
|
|
doesn't.
|
1386 |
|
|
|
1387 |
|
|
choice
|
1388 |
|
|
prompt "PCI access mode"
|
1389 |
|
|
depends on X86_32 && PCI && !X86_VISWS
|
1390 |
|
|
default PCI_GOANY
|
1391 |
|
|
---help---
|
1392 |
|
|
On PCI systems, the BIOS can be used to detect the PCI devices and
|
1393 |
|
|
determine their configuration. However, some old PCI motherboards
|
1394 |
|
|
have BIOS bugs and may crash if this is done. Also, some embedded
|
1395 |
|
|
PCI-based systems don't have any BIOS at all. Linux can also try to
|
1396 |
|
|
detect the PCI hardware directly without using the BIOS.
|
1397 |
|
|
|
1398 |
|
|
With this option, you can specify how Linux should detect the
|
1399 |
|
|
PCI devices. If you choose "BIOS", the BIOS will be used,
|
1400 |
|
|
if you choose "Direct", the BIOS won't be used, and if you
|
1401 |
|
|
choose "MMConfig", then PCI Express MMCONFIG will be used.
|
1402 |
|
|
If you choose "Any", the kernel will try MMCONFIG, then the
|
1403 |
|
|
direct access method and falls back to the BIOS if that doesn't
|
1404 |
|
|
work. If unsure, go with the default, which is "Any".
|
1405 |
|
|
|
1406 |
|
|
config PCI_GOBIOS
|
1407 |
|
|
bool "BIOS"
|
1408 |
|
|
|
1409 |
|
|
config PCI_GOMMCONFIG
|
1410 |
|
|
bool "MMConfig"
|
1411 |
|
|
|
1412 |
|
|
config PCI_GODIRECT
|
1413 |
|
|
bool "Direct"
|
1414 |
|
|
|
1415 |
|
|
config PCI_GOANY
|
1416 |
|
|
bool "Any"
|
1417 |
|
|
|
1418 |
|
|
endchoice
|
1419 |
|
|
|
1420 |
|
|
config PCI_BIOS
|
1421 |
|
|
bool
|
1422 |
|
|
depends on X86_32 && !X86_VISWS && PCI && (PCI_GOBIOS || PCI_GOANY)
|
1423 |
|
|
default y
|
1424 |
|
|
|
1425 |
|
|
# x86-64 doesn't support PCI BIOS access from long mode so always go direct.
|
1426 |
|
|
config PCI_DIRECT
|
1427 |
|
|
bool
|
1428 |
|
|
depends on PCI && (X86_64 || (PCI_GODIRECT || PCI_GOANY) || X86_VISWS)
|
1429 |
|
|
default y
|
1430 |
|
|
|
1431 |
|
|
config PCI_MMCONFIG
|
1432 |
|
|
bool
|
1433 |
|
|
depends on X86_32 && PCI && ACPI && (PCI_GOMMCONFIG || PCI_GOANY)
|
1434 |
|
|
default y
|
1435 |
|
|
|
1436 |
|
|
config PCI_DOMAINS
|
1437 |
|
|
bool
|
1438 |
|
|
depends on PCI
|
1439 |
|
|
default y
|
1440 |
|
|
|
1441 |
|
|
config PCI_MMCONFIG
|
1442 |
|
|
bool "Support mmconfig PCI config space access"
|
1443 |
|
|
depends on X86_64 && PCI && ACPI
|
1444 |
|
|
|
1445 |
|
|
config DMAR
|
1446 |
|
|
bool "Support for DMA Remapping Devices (EXPERIMENTAL)"
|
1447 |
|
|
depends on X86_64 && PCI_MSI && ACPI && EXPERIMENTAL
|
1448 |
|
|
help
|
1449 |
|
|
DMA remapping (DMAR) devices support enables independent address
|
1450 |
|
|
translations for Direct Memory Access (DMA) from devices.
|
1451 |
|
|
These DMA remapping devices are reported via ACPI tables
|
1452 |
|
|
and include PCI device scope covered by these DMA
|
1453 |
|
|
remapping devices.
|
1454 |
|
|
|
1455 |
|
|
config DMAR_GFX_WA
|
1456 |
|
|
bool "Support for Graphics workaround"
|
1457 |
|
|
depends on DMAR
|
1458 |
|
|
default y
|
1459 |
|
|
help
|
1460 |
|
|
Current Graphics drivers tend to use physical address
|
1461 |
|
|
for DMA and avoid using DMA APIs. Setting this config
|
1462 |
|
|
option permits the IOMMU driver to set a unity map for
|
1463 |
|
|
all the OS-visible memory. Hence the driver can continue
|
1464 |
|
|
to use physical addresses for DMA.
|
1465 |
|
|
|
1466 |
|
|
config DMAR_FLOPPY_WA
|
1467 |
|
|
bool
|
1468 |
|
|
depends on DMAR
|
1469 |
|
|
default y
|
1470 |
|
|
help
|
1471 |
|
|
Floppy disk drivers are know to bypass DMA API calls
|
1472 |
|
|
thereby failing to work when IOMMU is enabled. This
|
1473 |
|
|
workaround will setup a 1:1 mapping for the first
|
1474 |
|
|
16M to make floppy (an ISA device) work.
|
1475 |
|
|
|
1476 |
|
|
source "drivers/pci/pcie/Kconfig"
|
1477 |
|
|
|
1478 |
|
|
source "drivers/pci/Kconfig"
|
1479 |
|
|
|
1480 |
|
|
# x86_64 have no ISA slots, but do have ISA-style DMA.
|
1481 |
|
|
config ISA_DMA_API
|
1482 |
|
|
bool
|
1483 |
|
|
default y
|
1484 |
|
|
|
1485 |
|
|
if X86_32
|
1486 |
|
|
|
1487 |
|
|
config ISA
|
1488 |
|
|
bool "ISA support"
|
1489 |
|
|
depends on !(X86_VOYAGER || X86_VISWS)
|
1490 |
|
|
help
|
1491 |
|
|
Find out whether you have ISA slots on your motherboard. ISA is the
|
1492 |
|
|
name of a bus system, i.e. the way the CPU talks to the other stuff
|
1493 |
|
|
inside your box. Other bus systems are PCI, EISA, MicroChannel
|
1494 |
|
|
(MCA) or VESA. ISA is an older system, now being displaced by PCI;
|
1495 |
|
|
newer boards don't support it. If you have ISA, say Y, otherwise N.
|
1496 |
|
|
|
1497 |
|
|
config EISA
|
1498 |
|
|
bool "EISA support"
|
1499 |
|
|
depends on ISA
|
1500 |
|
|
---help---
|
1501 |
|
|
The Extended Industry Standard Architecture (EISA) bus was
|
1502 |
|
|
developed as an open alternative to the IBM MicroChannel bus.
|
1503 |
|
|
|
1504 |
|
|
The EISA bus provided some of the features of the IBM MicroChannel
|
1505 |
|
|
bus while maintaining backward compatibility with cards made for
|
1506 |
|
|
the older ISA bus. The EISA bus saw limited use between 1988 and
|
1507 |
|
|
1995 when it was made obsolete by the PCI bus.
|
1508 |
|
|
|
1509 |
|
|
Say Y here if you are building a kernel for an EISA-based machine.
|
1510 |
|
|
|
1511 |
|
|
Otherwise, say N.
|
1512 |
|
|
|
1513 |
|
|
source "drivers/eisa/Kconfig"
|
1514 |
|
|
|
1515 |
|
|
config MCA
|
1516 |
|
|
bool "MCA support" if !(X86_VISWS || X86_VOYAGER)
|
1517 |
|
|
default y if X86_VOYAGER
|
1518 |
|
|
help
|
1519 |
|
|
MicroChannel Architecture is found in some IBM PS/2 machines and
|
1520 |
|
|
laptops. It is a bus system similar to PCI or ISA. See
|
1521 |
|
|
(and especially the web page given
|
1522 |
|
|
there) before attempting to build an MCA bus kernel.
|
1523 |
|
|
|
1524 |
|
|
source "drivers/mca/Kconfig"
|
1525 |
|
|
|
1526 |
|
|
config SCx200
|
1527 |
|
|
tristate "NatSemi SCx200 support"
|
1528 |
|
|
depends on !X86_VOYAGER
|
1529 |
|
|
help
|
1530 |
|
|
This provides basic support for National Semiconductor's
|
1531 |
|
|
(now AMD's) Geode processors. The driver probes for the
|
1532 |
|
|
PCI-IDs of several on-chip devices, so its a good dependency
|
1533 |
|
|
for other scx200_* drivers.
|
1534 |
|
|
|
1535 |
|
|
If compiled as a module, the driver is named scx200.
|
1536 |
|
|
|
1537 |
|
|
config SCx200HR_TIMER
|
1538 |
|
|
tristate "NatSemi SCx200 27MHz High-Resolution Timer Support"
|
1539 |
|
|
depends on SCx200 && GENERIC_TIME
|
1540 |
|
|
default y
|
1541 |
|
|
help
|
1542 |
|
|
This driver provides a clocksource built upon the on-chip
|
1543 |
|
|
27MHz high-resolution timer. Its also a workaround for
|
1544 |
|
|
NSC Geode SC-1100's buggy TSC, which loses time when the
|
1545 |
|
|
processor goes idle (as is done by the scheduler). The
|
1546 |
|
|
other workaround is idle=poll boot option.
|
1547 |
|
|
|
1548 |
|
|
config GEODE_MFGPT_TIMER
|
1549 |
|
|
bool "Geode Multi-Function General Purpose Timer (MFGPT) events"
|
1550 |
|
|
depends on MGEODE_LX && GENERIC_TIME && GENERIC_CLOCKEVENTS
|
1551 |
|
|
default y
|
1552 |
|
|
help
|
1553 |
|
|
This driver provides a clock event source based on the MFGPT
|
1554 |
|
|
timer(s) in the CS5535 and CS5536 companion chip for the geode.
|
1555 |
|
|
MFGPTs have a better resolution and max interval than the
|
1556 |
|
|
generic PIT, and are suitable for use as high-res timers.
|
1557 |
|
|
|
1558 |
|
|
endif # X86_32
|
1559 |
|
|
|
1560 |
|
|
config K8_NB
|
1561 |
|
|
def_bool y
|
1562 |
|
|
depends on AGP_AMD64 || (X86_64 && (GART_IOMMU || (PCI && NUMA)))
|
1563 |
|
|
|
1564 |
|
|
source "drivers/pcmcia/Kconfig"
|
1565 |
|
|
|
1566 |
|
|
source "drivers/pci/hotplug/Kconfig"
|
1567 |
|
|
|
1568 |
|
|
endmenu
|
1569 |
|
|
|
1570 |
|
|
|
1571 |
|
|
menu "Executable file formats / Emulations"
|
1572 |
|
|
|
1573 |
|
|
source "fs/Kconfig.binfmt"
|
1574 |
|
|
|
1575 |
|
|
config IA32_EMULATION
|
1576 |
|
|
bool "IA32 Emulation"
|
1577 |
|
|
depends on X86_64
|
1578 |
|
|
help
|
1579 |
|
|
Include code to run 32-bit programs under a 64-bit kernel. You should
|
1580 |
|
|
likely turn this on, unless you're 100% sure that you don't have any
|
1581 |
|
|
32-bit programs left.
|
1582 |
|
|
|
1583 |
|
|
config IA32_AOUT
|
1584 |
|
|
tristate "IA32 a.out support"
|
1585 |
|
|
depends on IA32_EMULATION
|
1586 |
|
|
help
|
1587 |
|
|
Support old a.out binaries in the 32bit emulation.
|
1588 |
|
|
|
1589 |
|
|
config COMPAT
|
1590 |
|
|
bool
|
1591 |
|
|
depends on IA32_EMULATION
|
1592 |
|
|
default y
|
1593 |
|
|
|
1594 |
|
|
config COMPAT_FOR_U64_ALIGNMENT
|
1595 |
|
|
def_bool COMPAT
|
1596 |
|
|
depends on X86_64
|
1597 |
|
|
|
1598 |
|
|
config SYSVIPC_COMPAT
|
1599 |
|
|
bool
|
1600 |
|
|
depends on X86_64 && COMPAT && SYSVIPC
|
1601 |
|
|
default y
|
1602 |
|
|
|
1603 |
|
|
endmenu
|
1604 |
|
|
|
1605 |
|
|
|
1606 |
|
|
source "net/Kconfig"
|
1607 |
|
|
|
1608 |
|
|
source "drivers/Kconfig"
|
1609 |
|
|
|
1610 |
|
|
source "drivers/firmware/Kconfig"
|
1611 |
|
|
|
1612 |
|
|
source "fs/Kconfig"
|
1613 |
|
|
|
1614 |
|
|
source "kernel/Kconfig.instrumentation"
|
1615 |
|
|
|
1616 |
|
|
source "arch/x86/Kconfig.debug"
|
1617 |
|
|
|
1618 |
|
|
source "security/Kconfig"
|
1619 |
|
|
|
1620 |
|
|
source "crypto/Kconfig"
|
1621 |
|
|
|
1622 |
|
|
source "lib/Kconfig"
|