Kconfig 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657
  1. #
  2. # For a description of the syntax of this configuration file,
  3. # see Documentation/kbuild/kconfig-language.txt.
  4. #
  5. # Note: ISA is disabled and will hopefully never be enabled.
  6. # If you managed to buy an ISA x86-64 box you'll have to fix all the
  7. # ISA drivers you need yourself.
  8. #
  9. mainmenu "Linux Kernel Configuration"
  10. config X86_64
  11. bool
  12. default y
  13. help
  14. Port to the x86-64 architecture. x86-64 is a 64-bit extension to the
  15. classical 32-bit x86 architecture. For details see
  16. <http://www.x86-64.org/>.
  17. config 64BIT
  18. def_bool y
  19. config X86
  20. bool
  21. default y
  22. config LOCKDEP_SUPPORT
  23. bool
  24. default y
  25. config STACKTRACE_SUPPORT
  26. bool
  27. default y
  28. config SEMAPHORE_SLEEPERS
  29. bool
  30. default y
  31. config MMU
  32. bool
  33. default y
  34. config ISA
  35. bool
  36. config SBUS
  37. bool
  38. config RWSEM_GENERIC_SPINLOCK
  39. bool
  40. default y
  41. config RWSEM_XCHGADD_ALGORITHM
  42. bool
  43. config GENERIC_HWEIGHT
  44. bool
  45. default y
  46. config GENERIC_CALIBRATE_DELAY
  47. bool
  48. default y
  49. config X86_CMPXCHG
  50. bool
  51. default y
  52. config EARLY_PRINTK
  53. bool
  54. default y
  55. config GENERIC_ISA_DMA
  56. bool
  57. default y
  58. config GENERIC_IOMAP
  59. bool
  60. default y
  61. config ARCH_MAY_HAVE_PC_FDC
  62. bool
  63. default y
  64. config DMI
  65. bool
  66. default y
  67. source "init/Kconfig"
  68. menu "Processor type and features"
  69. choice
  70. prompt "Subarchitecture Type"
  71. default X86_PC
  72. config X86_PC
  73. bool "PC-compatible"
  74. help
  75. Choose this option if your computer is a standard PC or compatible.
  76. config X86_VSMP
  77. bool "Support for ScaleMP vSMP"
  78. help
  79. Support for ScaleMP vSMP systems. Say 'Y' here if this kernel is
  80. supposed to run on these EM64T-based machines. Only choose this option
  81. if you have one of these machines.
  82. endchoice
  83. choice
  84. prompt "Processor family"
  85. default MK8
  86. config MK8
  87. bool "AMD-Opteron/Athlon64"
  88. help
  89. Optimize for AMD Opteron/Athlon64/Hammer/K8 CPUs.
  90. config MPSC
  91. bool "Intel EM64T"
  92. help
  93. Optimize for Intel Pentium 4 and Xeon CPUs with Intel
  94. Extended Memory 64 Technology(EM64T). For details see
  95. <http://www.intel.com/technology/64bitextensions/>.
  96. config GENERIC_CPU
  97. bool "Generic-x86-64"
  98. help
  99. Generic x86-64 CPU.
  100. endchoice
  101. #
  102. # Define implied options from the CPU selection here
  103. #
  104. config X86_L1_CACHE_BYTES
  105. int
  106. default "128" if GENERIC_CPU || MPSC
  107. default "64" if MK8
  108. config X86_L1_CACHE_SHIFT
  109. int
  110. default "7" if GENERIC_CPU || MPSC
  111. default "6" if MK8
  112. config X86_INTERNODE_CACHE_BYTES
  113. int
  114. default "4096" if X86_VSMP
  115. default X86_L1_CACHE_BYTES if !X86_VSMP
  116. config X86_TSC
  117. bool
  118. default y
  119. config X86_GOOD_APIC
  120. bool
  121. default y
  122. config MICROCODE
  123. tristate "/dev/cpu/microcode - Intel CPU microcode support"
  124. ---help---
  125. If you say Y here the 'File systems' section, you will be
  126. able to update the microcode on Intel processors. You will
  127. obviously need the actual microcode binary data itself which is
  128. not shipped with the Linux kernel.
  129. For latest news and information on obtaining all the required
  130. ingredients for this driver, check:
  131. <http://www.urbanmyth.org/microcode/>.
  132. To compile this driver as a module, choose M here: the
  133. module will be called microcode.
  134. If you use modprobe or kmod you may also want to add the line
  135. 'alias char-major-10-184 microcode' to your /etc/modules.conf file.
  136. config X86_MSR
  137. tristate "/dev/cpu/*/msr - Model-specific register support"
  138. help
  139. This device gives privileged processes access to the x86
  140. Model-Specific Registers (MSRs). It is a character device with
  141. major 202 and minors 0 to 31 for /dev/cpu/0/msr to /dev/cpu/31/msr.
  142. MSR accesses are directed to a specific CPU on multi-processor
  143. systems.
  144. config X86_CPUID
  145. tristate "/dev/cpu/*/cpuid - CPU information support"
  146. help
  147. This device gives processes access to the x86 CPUID instruction to
  148. be executed on a specific processor. It is a character device
  149. with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to
  150. /dev/cpu/31/cpuid.
  151. config X86_HT
  152. bool
  153. depends on SMP && !MK8
  154. default y
  155. config MATH_EMULATION
  156. bool
  157. config MCA
  158. bool
  159. config EISA
  160. bool
  161. config X86_IO_APIC
  162. bool
  163. default y
  164. config X86_LOCAL_APIC
  165. bool
  166. default y
  167. config MTRR
  168. bool "MTRR (Memory Type Range Register) support"
  169. ---help---
  170. On Intel P6 family processors (Pentium Pro, Pentium II and later)
  171. the Memory Type Range Registers (MTRRs) may be used to control
  172. processor access to memory ranges. This is most useful if you have
  173. a video (VGA) card on a PCI or AGP bus. Enabling write-combining
  174. allows bus write transfers to be combined into a larger transfer
  175. before bursting over the PCI/AGP bus. This can increase performance
  176. of image write operations 2.5 times or more. Saying Y here creates a
  177. /proc/mtrr file which may be used to manipulate your processor's
  178. MTRRs. Typically the X server should use this.
  179. This code has a reasonably generic interface so that similar
  180. control registers on other processors can be easily supported
  181. as well.
  182. Saying Y here also fixes a problem with buggy SMP BIOSes which only
  183. set the MTRRs for the boot CPU and not for the secondary CPUs. This
  184. can lead to all sorts of problems, so it's good to say Y here.
  185. Just say Y here, all x86-64 machines support MTRRs.
  186. See <file:Documentation/mtrr.txt> for more information.
  187. config SMP
  188. bool "Symmetric multi-processing support"
  189. ---help---
  190. This enables support for systems with more than one CPU. If you have
  191. a system with only one CPU, like most personal computers, say N. If
  192. you have a system with more than one CPU, say Y.
  193. If you say N here, the kernel will run on single and multiprocessor
  194. machines, but will use only one CPU of a multiprocessor machine. If
  195. you say Y here, the kernel will run on many, but not all,
  196. singleprocessor machines. On a singleprocessor machine, the kernel
  197. will run faster if you say N here.
  198. If you don't know what to do here, say N.
  199. config SCHED_SMT
  200. bool "SMT (Hyperthreading) scheduler support"
  201. depends on SMP
  202. default n
  203. help
  204. SMT scheduler support improves the CPU scheduler's decision making
  205. when dealing with Intel Pentium 4 chips with HyperThreading at a
  206. cost of slightly increased overhead in some places. If unsure say
  207. N here.
  208. config SCHED_MC
  209. bool "Multi-core scheduler support"
  210. depends on SMP
  211. default y
  212. help
  213. Multi-core scheduler support improves the CPU scheduler's decision
  214. making when dealing with multi-core CPU chips at a cost of slightly
  215. increased overhead in some places. If unsure say N here.
  216. source "kernel/Kconfig.preempt"
  217. config NUMA
  218. bool "Non Uniform Memory Access (NUMA) Support"
  219. depends on SMP
  220. help
  221. Enable NUMA (Non Uniform Memory Access) support. The kernel
  222. will try to allocate memory used by a CPU on the local memory
  223. controller of the CPU and add some more NUMA awareness to the kernel.
  224. This code is recommended on all multiprocessor Opteron systems.
  225. If the system is EM64T, you should say N unless your system is EM64T
  226. NUMA.
  227. config K8_NUMA
  228. bool "Old style AMD Opteron NUMA detection"
  229. depends on NUMA
  230. default y
  231. help
  232. Enable K8 NUMA node topology detection. You should say Y here if
  233. you have a multi processor AMD K8 system. This uses an old
  234. method to read the NUMA configurtion directly from the builtin
  235. Northbridge of Opteron. It is recommended to use X86_64_ACPI_NUMA
  236. instead, which also takes priority if both are compiled in.
  237. config NODES_SHIFT
  238. int
  239. default "6"
  240. depends on NEED_MULTIPLE_NODES
  241. # Dummy CONFIG option to select ACPI_NUMA from drivers/acpi/Kconfig.
  242. config X86_64_ACPI_NUMA
  243. bool "ACPI NUMA detection"
  244. depends on NUMA
  245. select ACPI
  246. select PCI
  247. select ACPI_NUMA
  248. default y
  249. help
  250. Enable ACPI SRAT based node topology detection.
  251. config NUMA_EMU
  252. bool "NUMA emulation"
  253. depends on NUMA
  254. help
  255. Enable NUMA emulation. A flat machine will be split
  256. into virtual nodes when booted with "numa=fake=N", where N is the
  257. number of nodes. This is only useful for debugging.
  258. config ARCH_DISCONTIGMEM_ENABLE
  259. bool
  260. depends on NUMA
  261. default y
  262. config ARCH_DISCONTIGMEM_ENABLE
  263. def_bool y
  264. depends on NUMA
  265. config ARCH_DISCONTIGMEM_DEFAULT
  266. def_bool y
  267. depends on NUMA
  268. config ARCH_SPARSEMEM_ENABLE
  269. def_bool y
  270. depends on (NUMA || EXPERIMENTAL)
  271. config ARCH_MEMORY_PROBE
  272. def_bool y
  273. depends on MEMORY_HOTPLUG
  274. config ARCH_FLATMEM_ENABLE
  275. def_bool y
  276. depends on !NUMA
  277. source "mm/Kconfig"
  278. config HAVE_ARCH_EARLY_PFN_TO_NID
  279. def_bool y
  280. depends on NUMA
  281. config OUT_OF_LINE_PFN_TO_PAGE
  282. def_bool y
  283. depends on DISCONTIGMEM
  284. config NR_CPUS
  285. int "Maximum number of CPUs (2-256)"
  286. range 2 255
  287. depends on SMP
  288. default "8"
  289. help
  290. This allows you to specify the maximum number of CPUs which this
  291. kernel will support. Current maximum is 256 CPUs due to
  292. APIC addressing limits. Less depending on the hardware.
  293. This is purely to save memory - each supported CPU requires
  294. memory in the static kernel configuration.
  295. config HOTPLUG_CPU
  296. bool "Support for hot-pluggable CPUs (EXPERIMENTAL)"
  297. depends on SMP && HOTPLUG && EXPERIMENTAL
  298. help
  299. Say Y here to experiment with turning CPUs off and on. CPUs
  300. can be controlled through /sys/devices/system/cpu/cpu#.
  301. Say N if you want to disable CPU hotplug.
  302. config ARCH_ENABLE_MEMORY_HOTPLUG
  303. def_bool y
  304. config HPET_TIMER
  305. bool
  306. default y
  307. help
  308. Use the IA-PC HPET (High Precision Event Timer) to manage
  309. time in preference to the PIT and RTC, if a HPET is
  310. present. The HPET provides a stable time base on SMP
  311. systems, unlike the TSC, but it is more expensive to access,
  312. as it is off-chip. You can find the HPET spec at
  313. <http://www.intel.com/hardwaredesign/hpetspec.htm>.
  314. config HPET_EMULATE_RTC
  315. bool "Provide RTC interrupt"
  316. depends on HPET_TIMER && RTC=y
  317. # Mark as embedded because too many people got it wrong.
  318. # The code disables itself when not needed.
  319. config IOMMU
  320. bool "IOMMU support" if EMBEDDED
  321. default y
  322. select SWIOTLB
  323. select AGP
  324. depends on PCI
  325. help
  326. Support for full DMA access of devices with 32bit memory access only
  327. on systems with more than 3GB. This is usually needed for USB,
  328. sound, many IDE/SATA chipsets and some other devices.
  329. Provides a driver for the AMD Athlon64/Opteron/Turion/Sempron GART
  330. based IOMMU and a software bounce buffer based IOMMU used on Intel
  331. systems and as fallback.
  332. The code is only active when needed (enough memory and limited
  333. device) unless CONFIG_IOMMU_DEBUG or iommu=force is specified
  334. too.
  335. config CALGARY_IOMMU
  336. bool "IBM Calgary IOMMU support"
  337. default y
  338. select SWIOTLB
  339. depends on PCI && EXPERIMENTAL
  340. help
  341. Support for hardware IOMMUs in IBM's xSeries x366 and x460
  342. systems. Needed to run systems with more than 3GB of memory
  343. properly with 32-bit PCI devices that do not support DAC
  344. (Double Address Cycle). Calgary also supports bus level
  345. isolation, where all DMAs pass through the IOMMU. This
  346. prevents them from going anywhere except their intended
  347. destination. This catches hard-to-find kernel bugs and
  348. mis-behaving drivers and devices that do not use the DMA-API
  349. properly to set up their DMA buffers. The IOMMU can be
  350. turned off at boot time with the iommu=off parameter.
  351. Normally the kernel will make the right choice by itself.
  352. If unsure, say Y.
  353. # need this always selected by IOMMU for the VIA workaround
  354. config SWIOTLB
  355. bool
  356. config X86_MCE
  357. bool "Machine check support" if EMBEDDED
  358. default y
  359. help
  360. Include a machine check error handler to report hardware errors.
  361. This version will require the mcelog utility to decode some
  362. machine check error logs. See
  363. ftp://ftp.x86-64.org/pub/linux/tools/mcelog
  364. config X86_MCE_INTEL
  365. bool "Intel MCE features"
  366. depends on X86_MCE && X86_LOCAL_APIC
  367. default y
  368. help
  369. Additional support for intel specific MCE features such as
  370. the thermal monitor.
  371. config X86_MCE_AMD
  372. bool "AMD MCE features"
  373. depends on X86_MCE && X86_LOCAL_APIC
  374. default y
  375. help
  376. Additional support for AMD specific MCE features such as
  377. the DRAM Error Threshold.
  378. config KEXEC
  379. bool "kexec system call (EXPERIMENTAL)"
  380. depends on EXPERIMENTAL
  381. help
  382. kexec is a system call that implements the ability to shutdown your
  383. current kernel, and to start another kernel. It is like a reboot
  384. but it is independent of the system firmware. And like a reboot
  385. you can start any kernel with it, not just Linux.
  386. The name comes from the similarity to the exec system call.
  387. It is an ongoing process to be certain the hardware in a machine
  388. is properly shutdown, so do not be surprised if this code does not
  389. initially work for you. It may help to enable device hotplugging
  390. support. As of this writing the exact hardware interface is
  391. strongly in flux, so no good recommendation can be made.
  392. config CRASH_DUMP
  393. bool "kernel crash dumps (EXPERIMENTAL)"
  394. depends on EXPERIMENTAL
  395. help
  396. Generate crash dump after being started by kexec.
  397. config PHYSICAL_START
  398. hex "Physical address where the kernel is loaded" if (EMBEDDED || CRASH_DUMP)
  399. default "0x1000000" if CRASH_DUMP
  400. default "0x200000"
  401. help
  402. This gives the physical address where the kernel is loaded. Normally
  403. for regular kernels this value is 0x200000 (2MB). But in the case
  404. of kexec on panic the fail safe kernel needs to run at a different
  405. address than the panic-ed kernel. This option is used to set the load
  406. address for kernels used to capture crash dump on being kexec'ed
  407. after panic. The default value for crash dump kernels is
  408. 0x1000000 (16MB). This can also be set based on the "X" value as
  409. specified in the "crashkernel=YM@XM" command line boot parameter
  410. passed to the panic-ed kernel. Typically this parameter is set as
  411. crashkernel=64M@16M. Please take a look at
  412. Documentation/kdump/kdump.txt for more details about crash dumps.
  413. Don't change this unless you know what you are doing.
  414. config SECCOMP
  415. bool "Enable seccomp to safely compute untrusted bytecode"
  416. depends on PROC_FS
  417. default y
  418. help
  419. This kernel feature is useful for number crunching applications
  420. that may need to compute untrusted bytecode during their
  421. execution. By using pipes or other transports made available to
  422. the process as file descriptors supporting the read/write
  423. syscalls, it's possible to isolate those applications in
  424. their own address space using seccomp. Once seccomp is
  425. enabled via /proc/<pid>/seccomp, it cannot be disabled
  426. and the task is only allowed to execute a few safe syscalls
  427. defined by each seccomp mode.
  428. If unsure, say Y. Only embedded should say N here.
  429. source kernel/Kconfig.hz
  430. config REORDER
  431. bool "Function reordering"
  432. default n
  433. help
  434. This option enables the toolchain to reorder functions for a more
  435. optimal TLB usage. If you have pretty much any version of binutils,
  436. this can increase your kernel build time by roughly one minute.
  437. config K8_NB
  438. def_bool y
  439. depends on AGP_AMD64 || IOMMU || (PCI && NUMA)
  440. endmenu
  441. #
  442. # Use the generic interrupt handling code in kernel/irq/:
  443. #
  444. config GENERIC_HARDIRQS
  445. bool
  446. default y
  447. config GENERIC_IRQ_PROBE
  448. bool
  449. default y
  450. # we have no ISA slots, but we do have ISA-style DMA.
  451. config ISA_DMA_API
  452. bool
  453. default y
  454. config GENERIC_PENDING_IRQ
  455. bool
  456. depends on GENERIC_HARDIRQS && SMP
  457. default y
  458. menu "Power management options"
  459. source kernel/power/Kconfig
  460. source "drivers/acpi/Kconfig"
  461. source "arch/x86_64/kernel/cpufreq/Kconfig"
  462. endmenu
  463. menu "Bus options (PCI etc.)"
  464. config PCI
  465. bool "PCI support"
  466. # x86-64 doesn't support PCI BIOS access from long mode so always go direct.
  467. config PCI_DIRECT
  468. bool
  469. depends on PCI
  470. default y
  471. config PCI_MMCONFIG
  472. bool "Support mmconfig PCI config space access"
  473. depends on PCI && ACPI
  474. source "drivers/pci/pcie/Kconfig"
  475. source "drivers/pci/Kconfig"
  476. source "drivers/pcmcia/Kconfig"
  477. source "drivers/pci/hotplug/Kconfig"
  478. endmenu
  479. menu "Executable file formats / Emulations"
  480. source "fs/Kconfig.binfmt"
  481. config IA32_EMULATION
  482. bool "IA32 Emulation"
  483. help
  484. Include code to run 32-bit programs under a 64-bit kernel. You should likely
  485. turn this on, unless you're 100% sure that you don't have any 32-bit programs
  486. left.
  487. config IA32_AOUT
  488. tristate "IA32 a.out support"
  489. depends on IA32_EMULATION
  490. help
  491. Support old a.out binaries in the 32bit emulation.
  492. config COMPAT
  493. bool
  494. depends on IA32_EMULATION
  495. default y
  496. config SYSVIPC_COMPAT
  497. bool
  498. depends on COMPAT && SYSVIPC
  499. default y
  500. endmenu
  501. source "net/Kconfig"
  502. source drivers/Kconfig
  503. source "drivers/firmware/Kconfig"
  504. source fs/Kconfig
  505. menu "Instrumentation Support"
  506. depends on EXPERIMENTAL
  507. source "arch/x86_64/oprofile/Kconfig"
  508. config KPROBES
  509. bool "Kprobes (EXPERIMENTAL)"
  510. depends on EXPERIMENTAL && MODULES
  511. help
  512. Kprobes allows you to trap at almost any kernel address and
  513. execute a callback function. register_kprobe() establishes
  514. a probepoint and specifies the callback. Kprobes is useful
  515. for kernel debugging, non-intrusive instrumentation and testing.
  516. If in doubt, say "N".
  517. endmenu
  518. source "arch/x86_64/Kconfig.debug"
  519. source "security/Kconfig"
  520. source "crypto/Kconfig"
  521. source "lib/Kconfig"