]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blame - arch/x86/Kconfig
x86: add X86_64 dependency to x86_64 specific symbols in Kconfig.x86_64
[mirror_ubuntu-bionic-kernel.git] / arch / x86 / Kconfig
CommitLineData
1032c0ba
SR
1# x86 configuration
2
3### Arch settings
4config RWSEM_GENERIC_SPINLOCK
5 def_bool !X86_XADD
6
7config RWSEM_XCHGADD_ALGORITHM
8 def_bool X86_XADD
9
10config ARCH_HAS_ILOG2_U32
11 def_bool n
12
13config ARCH_HAS_ILOG2_U64
14 def_bool n
15
16config GENERIC_CALIBRATE_DELAY
17 def_bool y
18
19
e279b6c1
SR
20menu "Power management options"
21 depends on !X86_VOYAGER
22
23config ARCH_HIBERNATION_HEADER
24 bool
25 depends on X86_64 && HIBERNATION
26 default y
27
28source "kernel/power/Kconfig"
29
30source "drivers/acpi/Kconfig"
31
32menuconfig APM
33 tristate "APM (Advanced Power Management) BIOS support"
34 depends on X86_32 && PM_SLEEP && !X86_VISWS
35 ---help---
36 APM is a BIOS specification for saving power using several different
37 techniques. This is mostly useful for battery powered laptops with
38 APM compliant BIOSes. If you say Y here, the system time will be
39 reset after a RESUME operation, the /proc/apm device will provide
40 battery status information, and user-space programs will receive
41 notification of APM "events" (e.g. battery status change).
42
43 If you select "Y" here, you can disable actual use of the APM
44 BIOS by passing the "apm=off" option to the kernel at boot time.
45
46 Note that the APM support is almost completely disabled for
47 machines with more than one CPU.
48
49 In order to use APM, you will need supporting software. For location
50 and more information, read <file:Documentation/pm.txt> and the
51 Battery Powered Linux mini-HOWTO, available from
52 <http://www.tldp.org/docs.html#howto>.
53
54 This driver does not spin down disk drives (see the hdparm(8)
55 manpage ("man 8 hdparm") for that), and it doesn't turn off
56 VESA-compliant "green" monitors.
57
58 This driver does not support the TI 4000M TravelMate and the ACER
59 486/DX4/75 because they don't have compliant BIOSes. Many "green"
60 desktop machines also don't have compliant BIOSes, and this driver
61 may cause those machines to panic during the boot phase.
62
63 Generally, if you don't have a battery in your machine, there isn't
64 much point in using this driver and you should say N. If you get
65 random kernel OOPSes or reboots that don't seem to be related to
66 anything, try disabling/enabling this option (or disabling/enabling
67 APM in your BIOS).
68
69 Some other things you should try when experiencing seemingly random,
70 "weird" problems:
71
72 1) make sure that you have enough swap space and that it is
73 enabled.
74 2) pass the "no-hlt" option to the kernel
75 3) switch on floating point emulation in the kernel and pass
76 the "no387" option to the kernel
77 4) pass the "floppy=nodma" option to the kernel
78 5) pass the "mem=4M" option to the kernel (thereby disabling
79 all but the first 4 MB of RAM)
80 6) make sure that the CPU is not over clocked.
81 7) read the sig11 FAQ at <http://www.bitwizard.nl/sig11/>
82 8) disable the cache from your BIOS settings
83 9) install a fan for the video card or exchange video RAM
84 10) install a better fan for the CPU
85 11) exchange RAM chips
86 12) exchange the motherboard.
87
88 To compile this driver as a module, choose M here: the
89 module will be called apm.
90
91if APM
92
93config APM_IGNORE_USER_SUSPEND
94 bool "Ignore USER SUSPEND"
95 help
96 This option will ignore USER SUSPEND requests. On machines with a
97 compliant APM BIOS, you want to say N. However, on the NEC Versa M
98 series notebooks, it is necessary to say Y because of a BIOS bug.
99
100config APM_DO_ENABLE
101 bool "Enable PM at boot time"
102 ---help---
103 Enable APM features at boot time. From page 36 of the APM BIOS
104 specification: "When disabled, the APM BIOS does not automatically
105 power manage devices, enter the Standby State, enter the Suspend
106 State, or take power saving steps in response to CPU Idle calls."
107 This driver will make CPU Idle calls when Linux is idle (unless this
108 feature is turned off -- see "Do CPU IDLE calls", below). This
109 should always save battery power, but more complicated APM features
110 will be dependent on your BIOS implementation. You may need to turn
111 this option off if your computer hangs at boot time when using APM
112 support, or if it beeps continuously instead of suspending. Turn
113 this off if you have a NEC UltraLite Versa 33/C or a Toshiba
114 T400CDT. This is off by default since most machines do fine without
115 this feature.
116
117config APM_CPU_IDLE
118 bool "Make CPU Idle calls when idle"
119 help
120 Enable calls to APM CPU Idle/CPU Busy inside the kernel's idle loop.
121 On some machines, this can activate improved power savings, such as
122 a slowed CPU clock rate, when the machine is idle. These idle calls
123 are made after the idle loop has run for some length of time (e.g.,
124 333 mS). On some machines, this will cause a hang at boot time or
125 whenever the CPU becomes idle. (On machines with more than one CPU,
126 this option does nothing.)
127
128config APM_DISPLAY_BLANK
129 bool "Enable console blanking using APM"
130 help
131 Enable console blanking using the APM. Some laptops can use this to
132 turn off the LCD backlight when the screen blanker of the Linux
133 virtual console blanks the screen. Note that this is only used by
134 the virtual console screen blanker, and won't turn off the backlight
135 when using the X Window system. This also doesn't have anything to
136 do with your VESA-compliant power-saving monitor. Further, this
137 option doesn't work for all laptops -- it might not turn off your
138 backlight at all, or it might print a lot of errors to the console,
139 especially if you are using gpm.
140
141config APM_ALLOW_INTS
142 bool "Allow interrupts during APM BIOS calls"
143 help
144 Normally we disable external interrupts while we are making calls to
145 the APM BIOS as a measure to lessen the effects of a badly behaving
146 BIOS implementation. The BIOS should reenable interrupts if it
147 needs to. Unfortunately, some BIOSes do not -- especially those in
148 many of the newer IBM Thinkpads. If you experience hangs when you
149 suspend, try setting this to Y. Otherwise, say N.
150
151config APM_REAL_MODE_POWER_OFF
152 bool "Use real mode APM BIOS call to power off"
153 help
154 Use real mode APM BIOS calls to switch off the computer. This is
155 a work-around for a number of buggy BIOSes. Switch this option on if
156 your computer crashes instead of powering off properly.
157
158endif # APM
159
160source "arch/x86/kernel/cpu/cpufreq/Kconfig"
161
162source "drivers/cpuidle/Kconfig"
163
164endmenu
165
166
167menu "Bus options (PCI etc.)"
168
169config PCI
170 bool "PCI support" if !X86_VISWS
171 depends on !X86_VOYAGER
172 default y if X86_VISWS
173 select ARCH_SUPPORTS_MSI if (X86_LOCAL_APIC && X86_IO_APIC)
174 help
175 Find out whether you have a PCI motherboard. PCI is the name of a
176 bus system, i.e. the way the CPU talks to the other stuff inside
177 your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or
178 VESA. If you have PCI, say Y, otherwise N.
179
180 The PCI-HOWTO, available from
181 <http://www.tldp.org/docs.html#howto>, contains valuable
182 information about which PCI hardware does work under Linux and which
183 doesn't.
184
185choice
186 prompt "PCI access mode"
187 depends on X86_32 && PCI && !X86_VISWS
188 default PCI_GOANY
189 ---help---
190 On PCI systems, the BIOS can be used to detect the PCI devices and
191 determine their configuration. However, some old PCI motherboards
192 have BIOS bugs and may crash if this is done. Also, some embedded
193 PCI-based systems don't have any BIOS at all. Linux can also try to
194 detect the PCI hardware directly without using the BIOS.
195
196 With this option, you can specify how Linux should detect the
197 PCI devices. If you choose "BIOS", the BIOS will be used,
198 if you choose "Direct", the BIOS won't be used, and if you
199 choose "MMConfig", then PCI Express MMCONFIG will be used.
200 If you choose "Any", the kernel will try MMCONFIG, then the
201 direct access method and falls back to the BIOS if that doesn't
202 work. If unsure, go with the default, which is "Any".
203
204config PCI_GOBIOS
205 bool "BIOS"
206
207config PCI_GOMMCONFIG
208 bool "MMConfig"
209
210config PCI_GODIRECT
211 bool "Direct"
212
213config PCI_GOANY
214 bool "Any"
215
216endchoice
217
218config PCI_BIOS
219 bool
220 depends on X86_32 && !X86_VISWS && PCI && (PCI_GOBIOS || PCI_GOANY)
221 default y
222
223# x86-64 doesn't support PCI BIOS access from long mode so always go direct.
224config PCI_DIRECT
225 bool
226 depends on PCI && (X86_64 || (PCI_GODIRECT || PCI_GOANY) || X86_VISWS)
227 default y
228
229config PCI_MMCONFIG
230 bool
231 depends on X86_32 && PCI && ACPI && (PCI_GOMMCONFIG || PCI_GOANY)
232 default y
233
234config PCI_DOMAINS
235 bool
236 depends on PCI
237 default y
238
239config PCI_MMCONFIG
240 bool "Support mmconfig PCI config space access"
241 depends on X86_64 && PCI && ACPI
242
243config DMAR
244 bool "Support for DMA Remapping Devices (EXPERIMENTAL)"
245 depends on X86_64 && PCI_MSI && ACPI && EXPERIMENTAL
246 help
247 DMA remapping (DMAR) devices support enables independent address
248 translations for Direct Memory Access (DMA) from devices.
249 These DMA remapping devices are reported via ACPI tables
250 and include PCI device scope covered by these DMA
251 remapping devices.
252
253config DMAR_GFX_WA
254 bool "Support for Graphics workaround"
255 depends on DMAR
256 default y
257 help
258 Current Graphics drivers tend to use physical address
259 for DMA and avoid using DMA APIs. Setting this config
260 option permits the IOMMU driver to set a unity map for
261 all the OS-visible memory. Hence the driver can continue
262 to use physical addresses for DMA.
263
264config DMAR_FLOPPY_WA
265 bool
266 depends on DMAR
267 default y
268 help
269 Floppy disk drivers are know to bypass DMA API calls
270 thereby failing to work when IOMMU is enabled. This
271 workaround will setup a 1:1 mapping for the first
272 16M to make floppy (an ISA device) work.
273
274source "drivers/pci/pcie/Kconfig"
275
276source "drivers/pci/Kconfig"
277
278# x86_64 have no ISA slots, but do have ISA-style DMA.
279config ISA_DMA_API
280 bool
281 default y
282
283if X86_32
284
285config ISA
286 bool "ISA support"
287 depends on !(X86_VOYAGER || X86_VISWS)
288 help
289 Find out whether you have ISA slots on your motherboard. ISA is the
290 name of a bus system, i.e. the way the CPU talks to the other stuff
291 inside your box. Other bus systems are PCI, EISA, MicroChannel
292 (MCA) or VESA. ISA is an older system, now being displaced by PCI;
293 newer boards don't support it. If you have ISA, say Y, otherwise N.
294
295config EISA
296 bool "EISA support"
297 depends on ISA
298 ---help---
299 The Extended Industry Standard Architecture (EISA) bus was
300 developed as an open alternative to the IBM MicroChannel bus.
301
302 The EISA bus provided some of the features of the IBM MicroChannel
303 bus while maintaining backward compatibility with cards made for
304 the older ISA bus. The EISA bus saw limited use between 1988 and
305 1995 when it was made obsolete by the PCI bus.
306
307 Say Y here if you are building a kernel for an EISA-based machine.
308
309 Otherwise, say N.
310
311source "drivers/eisa/Kconfig"
312
313config MCA
314 bool "MCA support" if !(X86_VISWS || X86_VOYAGER)
315 default y if X86_VOYAGER
316 help
317 MicroChannel Architecture is found in some IBM PS/2 machines and
318 laptops. It is a bus system similar to PCI or ISA. See
319 <file:Documentation/mca.txt> (and especially the web page given
320 there) before attempting to build an MCA bus kernel.
321
322source "drivers/mca/Kconfig"
323
324config SCx200
325 tristate "NatSemi SCx200 support"
326 depends on !X86_VOYAGER
327 help
328 This provides basic support for National Semiconductor's
329 (now AMD's) Geode processors. The driver probes for the
330 PCI-IDs of several on-chip devices, so its a good dependency
331 for other scx200_* drivers.
332
333 If compiled as a module, the driver is named scx200.
334
335config SCx200HR_TIMER
336 tristate "NatSemi SCx200 27MHz High-Resolution Timer Support"
337 depends on SCx200 && GENERIC_TIME
338 default y
339 help
340 This driver provides a clocksource built upon the on-chip
341 27MHz high-resolution timer. Its also a workaround for
342 NSC Geode SC-1100's buggy TSC, which loses time when the
343 processor goes idle (as is done by the scheduler). The
344 other workaround is idle=poll boot option.
345
346config GEODE_MFGPT_TIMER
347 bool "Geode Multi-Function General Purpose Timer (MFGPT) events"
348 depends on MGEODE_LX && GENERIC_TIME && GENERIC_CLOCKEVENTS
349 default y
350 help
351 This driver provides a clock event source based on the MFGPT
352 timer(s) in the CS5535 and CS5536 companion chip for the geode.
353 MFGPTs have a better resolution and max interval than the
354 generic PIT, and are suitable for use as high-res timers.
355
356config K8_NB
357 def_bool y
358 depends on AGP_AMD64
359
360endif # X86_32
361
362source "drivers/pcmcia/Kconfig"
363
364source "drivers/pci/hotplug/Kconfig"
365
366endmenu
367
368
369menu "Executable file formats / Emulations"
370
371source "fs/Kconfig.binfmt"
372
373config IA32_EMULATION
374 bool "IA32 Emulation"
375 depends on X86_64
376 help
377 Include code to run 32-bit programs under a 64-bit kernel. You should
378 likely turn this on, unless you're 100% sure that you don't have any
379 32-bit programs left.
380
381config IA32_AOUT
382 tristate "IA32 a.out support"
383 depends on IA32_EMULATION
384 help
385 Support old a.out binaries in the 32bit emulation.
386
387config COMPAT
388 bool
389 depends on IA32_EMULATION
390 default y
391
392config COMPAT_FOR_U64_ALIGNMENT
393 def_bool COMPAT
394 depends on X86_64
395
396config SYSVIPC_COMPAT
397 bool
398 depends on X86_64 && COMPAT && SYSVIPC
399 default y
400
401endmenu
402
403
404source "net/Kconfig"
405
406source "drivers/Kconfig"
407
408source "drivers/firmware/Kconfig"
409
410source "fs/Kconfig"
411
412source "kernel/Kconfig.instrumentation"
413
414source "arch/x86/Kconfig.debug"
415
416source "security/Kconfig"
417
418source "crypto/Kconfig"
419
420source "lib/Kconfig"