2 # For a description of the syntax of this configuration file,
3 # see Documentation/kbuild/kconfig-language.txt.
6 mainmenu "Linux Kernel Configuration"
12 The ARM series is a line of low-power-consumption RISC chip designs
13 licensed by ARM ltd and targeted at embedded applications and
14 handhelds such as the Compaq IPAQ. ARM-based PCs are no longer
15 manufactured, but legacy ARM-based PC hardware remains popular in
16 Europe. There is an ARM Linux project with a web page at
17 <http://www.arm.linux.org.uk/>.
39 # 9 = 512 pages 8 = 256 pages 7 = 128 pages
40 config FORCE_MAX_ZONEORDER
48 config RWSEM_GENERIC_SPINLOCK
52 config RWSEM_XCHGADD_ALGORITHM
55 config GENERIC_BUST_SPINLOCK
58 config GENERIC_ISA_DMA
66 comment "Archimedes/A5000 Implementations (select only ONE)"
70 depends on ARCH_ARCA5K
72 The Acorn Archimedes was an personal computer based on an 8K ARM2
73 processor, released in 1987. It supported 512K of RAM and 2 800K
74 floppy disks. Picture and more detailed specifications at
75 <http://www.computingmuseum.com/museum/archi.htm>.
79 depends on ARCH_ARCA5K
81 Say Y here to to support the Acorn A5000. Linux can support the
82 internal IDE disk and CD-ROM interface, serial and parallel port,
83 and the floppy drive. Note that on some A5000s the floppy is
84 plugged into the wrong socket on the motherboard.
87 bool "2MB physical memory"
88 depends on ARCH_ARCA5K
90 Say Y here if your Archimedes or A5000 system has only 2MB of
91 memory, otherwise say N. The resulting kernel will not run on a
92 machine with 4MB of memory.
97 # Compressed boot loader in ROM. Yes, we really want to ask about
98 # TEXT and BSS so we preserve their values in the config files.
100 bool "Compressed boot loader in ROM/flash"
102 Say Y here if you intend to execute your compressed kernel image (zImage)
103 directly from ROM or flash. If unsure, say N.
105 config ZBOOT_ROM_TEXT
106 hex "Compressed ROM boot loader base address"
109 The base address for zImage. Unless you have special requirements, you
110 should not change this value.
113 hex "Compressed ROM boot loader BSS address"
116 The base address of 64KiB of read/write memory, which must be available
117 while the decompressor is running. Unless you have special requirements,
118 you should not change this value.
121 bool "Support for hot-pluggable devices"
123 Say Y here if you want to plug devices into your computer while
124 the system is running, and be able to use them quickly. In many
125 cases, the devices can likewise be unplugged at any time too.
127 One well known example of this is PCMCIA- or PC-cards, credit-card
128 size devices such as network cards, modems or hard drives which are
129 plugged into slots found on all modern laptop computers. Another
130 example, used on modern desktops as well as laptops, is USB.
132 Enable HOTPLUG and KMOD, and build a modular kernel. Get agent
133 software (at <http://linux-hotplug.sourceforge.net/>) and install it.
134 Then your kernel will automatically call out to a user mode "policy
135 agent" (/sbin/hotplug) to load modules and set up software needed
136 to use devices as you hotplug them.
138 comment "At least one math emulation must be selected"
141 tristate "NWFPE math emulation"
143 Say Y to include the NWFPE floating point emulator in the kernel.
144 This is necessary to run most binaries. Linux does not currently
145 support floating point hardware so you need to say Y here even if
146 your machine has an FPA or floating point co-processor podule.
148 It is also possible to say M to build the emulator as a module
149 (nwfpe) or indeed to leave it out altogether. However, unless you
150 know what you are doing this can easily render your machine
151 unbootable. Saying Y is the safe option.
153 You may say N here if you are going to load the Acorn FPEmulator
157 prompt "Kernel core (/proc/kcore) format"
163 If you enabled support for /proc file system then the file
164 /proc/kcore will contain the kernel core image. This can be used
167 $ cd /usr/src/linux ; gdb vmlinux /proc/kcore
169 You have two choices here: ELF and A.OUT. Selecting ELF will make
170 /proc/kcore appear in ELF core format as defined by the Executable
171 and Linking Format specification. Selecting A.OUT will choose the
172 old "a.out" format which may be necessary for some old versions
173 of binutils or on some architectures.
175 This is especially useful if you have compiled the kernel with the
176 "-g" option to preserve debugging information. It is mainly used
177 for examining kernel data structures on the live kernel so if you
178 don't understand what this means or are not a kernel hacker, just
179 leave it at its default value ELF.
184 Not necessary unless you're using a very out-of-date binutils
185 version. You probably want KCORE_ELF.
190 tristate "Kernel support for a.out binaries"
192 A.out (Assembler.OUTput) is a set of formats for libraries and
193 executables used in the earliest versions of UNIX. Linux used the
194 a.out formats QMAGIC and ZMAGIC until they were replaced with the
197 As more and more programs are converted to ELF, the use for a.out
198 will gradually diminish. If you disable this option it will reduce
199 your kernel by one page. This is not much and by itself does not
200 warrant removing support. However its removal is a good idea if you
201 wish to ensure that absolutely none of your programs will use this
202 older executable format. If you don't know what to answer at this
203 point then answer Y. If someone told you "You need a kernel with
204 QMAGIC support" then you'll have to say Y here. You may answer M to
205 compile a.out support as a module and later load the module when you
206 want to use a program or library in a.out format. The module will be
207 called binfmt_aout. Saying M or N here is dangerous though,
208 because some crucial programs on your system might still be in A.OUT
212 tristate "Kernel support for ELF binaries"
214 ELF (Executable and Linkable Format) is a format for libraries and
215 executables used across different architectures and operating
216 systems. Saying Y here will enable your kernel to run ELF binaries
217 and enlarge it by about 13 KB. ELF support under Linux has now all
218 but replaced the traditional Linux a.out formats (QMAGIC and ZMAGIC)
219 because it is portable (this does *not* mean that you will be able
220 to run executables from different architectures or operating systems
221 however) and makes building run-time libraries very easy. Many new
222 executables are distributed solely in ELF format. You definitely
225 Information about ELF is contained in the ELF HOWTO available from
226 <http://www.linuxdoc.org/docs.html#howto>.
228 If you find that after upgrading from Linux kernel 1.2 and saying Y
229 here, you still can't run any ELF binaries (they just crash), then
230 you'll have to install the newest ELF runtime libraries, including
231 ld.so (check the file <file:Documentation/Changes> for location and
234 If you want to compile this as a module ( = code which can be
235 inserted in and removed from the running kernel whenever you want),
236 say M here and read <file:Documentation/modules.txt>. The module
237 will be called binfmt_elf. Saying M or N here is dangerous because
238 some crucial programs on your system might be in ELF format.
241 tristate "Kernel support for MISC binaries"
243 If you say Y here, it will be possible to plug wrapper-driven binary
244 formats into the kernel. You will like this especially when you use
245 programs that need an interpreter to run like Java, Python or
246 Emacs-Lisp. It's also useful if you often run DOS executables under
247 the Linux DOS emulator DOSEMU (read the DOSEMU-HOWTO, available from
248 <http://www.linuxdoc.org/docs.html#howto>). Once you have
249 registered such a binary class with the kernel, you can start one of
250 those programs simply by typing in its name at a shell prompt; Linux
251 will automatically feed it to the correct interpreter.
253 You can do other nice things, too. Read the file
254 <file:Documentation/binfmt_misc.txt> to learn how to use this
255 feature, and <file:Documentation/java.txt> for information about how
256 to include Java support.
258 You must say Y to "/proc file system support" (CONFIG_PROC_FS) to
259 use this part of the kernel.
261 You may say M here for module support and later load the module when
262 you have use for it; the module is called binfmt_misc. If you
263 don't know what to answer at this point, say Y.
266 bool "Preemptible Kernel (EXPERIMENTAL)"
267 depends on CPU_32 && EXPERIMENTAL
269 This option reduces the latency of the kernel when reacting to
270 real-time or interactive events by allowing a low priority process to
271 be preempted even if it is in kernel mode executing a system call.
272 This allows applications to run more reliably even when the system is
275 Say Y here if you are building a kernel for a desktop, embedded
276 or real-time system. Say N if you are unsure.
279 tristate "RISC OS personality"
282 Say Y here to include the kernel code necessary if you want to run
283 Acorn RISC OS/Arthur binaries under Linux. This code is still very
284 experimental; if this sounds frightening, say N and sleep in peace.
285 You can also say M here to compile this support as a module (which
286 will be called arthur).
289 string "Default kernel command string"
292 On some architectures (EBSA110 and CATS), there is currently no way
293 for the boot loader to pass arguments to the kernel. For these
294 architectures, you should supply some command-line options at build
295 time by entering them here. As a minimum, you should specify the
296 memory size and the root device (e.g., mem=64M root=/dev/nfs).
300 source "drivers/base/Kconfig"
302 source "drivers/parport/Kconfig"
304 source "drivers/pnp/Kconfig"
306 source "drivers/block/Kconfig"
308 source "drivers/md/Kconfig"
312 source "net/irda/Kconfig"
314 menu "ATA/ATAPI/MFM/RLL support"
317 tristate "ATA/ATAPI/MFM/RLL support"
319 If you say Y here, your kernel will be able to manage low cost mass
320 storage units such as ATA/(E)IDE and ATAPI units. The most common
321 cases are IDE hard drives and ATAPI CD-ROM drives.
323 If your system is pure SCSI and doesn't use these interfaces, you
326 Integrated Disk Electronics (IDE aka ATA-1) is a connecting standard
327 for mass storage units such as hard disks. It was designed by
328 Western Digital and Compaq Computer in 1984. It was then named
329 ST506. Quite a number of disks use the IDE interface.
331 AT Attachment (ATA) is the superset of the IDE specifications.
332 ST506 was also called ATA-1.
334 Fast-IDE is ATA-2 (also named Fast ATA), Enhanced IDE (EIDE) is
335 ATA-3. It provides support for larger disks (up to 8.4GB by means of
336 the LBA standard), more disks (4 instead of 2) and for other mass
337 storage units such as tapes and cdrom. UDMA/33 (aka UltraDMA/33) is
338 ATA-4 and provides faster (and more CPU friendly) transfer modes
339 than previous PIO (Programmed processor Input/Output) from previous
340 ATA/IDE standards by means of fast DMA controllers.
342 ATA Packet Interface (ATAPI) is a protocol used by EIDE tape and
343 CD-ROM drives, similar in many respects to the SCSI protocol.
345 SMART IDE (Self Monitoring, Analysis and Reporting Technology) was
346 designed in order to prevent data corruption and disk crash by
347 detecting pre hardware failure conditions (heat, access time, and
348 the like...). Disks built since June 1995 may follow this standard.
349 The kernel itself don't manage this; however there are quite a
350 number of user programs such as smart that can query the status of
351 SMART parameters disk.
353 If you want to compile this driver as a module ( = code which can be
354 inserted in and removed from the running kernel whenever you want),
355 say M here and read <file:Documentation/modules.txt>. The module
358 For further information, please read <file:Documentation/ide.txt>.
362 source "drivers/ide/Kconfig"
370 tristate "SCSI support"
372 If you want to use a SCSI hard disk, SCSI tape drive, SCSI CD-ROM or
373 any other SCSI device under Linux, say Y and make sure that you know
374 the name of your SCSI host adapter (the card inside your computer
375 that "speaks" the SCSI protocol, also called SCSI controller),
376 because you will be asked for it.
378 You also need to say Y here if you want support for the parallel
379 port version of the 100 MB IOMEGA ZIP drive.
381 This driver is also available as a module ( = code which can be
382 inserted in and removed from the running kernel whenever you want).
383 The module will be called scsi_mod. If you want to compile it as
384 a module, say M here and read <file:Documentation/modules.txt> and
385 <file:Documentation/scsi/scsi.txt>. However, do not compile this as a
386 module if your root file system (the one containing the directory /)
387 is located on a SCSI device.
389 source "drivers/scsi/Kconfig"
393 source "drivers/isdn/Kconfig"
396 # input before char - char/joystick depends on it. As does USB.
398 source "drivers/input/Kconfig"
400 source "drivers/char/Kconfig"
404 depends on ARCH_ACORN && BUSMOUSE=y
407 source "drivers/media/Kconfig"
411 source "drivers/video/Kconfig"
414 depends on ARCH_ACORN
417 tristate "Sound card support"
419 If you have a sound card in your computer, i.e. if it can say more
420 than an occasional beep, say Y. Be sure to have all the information
421 about your sound card and its configuration down (I/O port,
422 interrupt and DMA channel), because you will be asked for it.
424 You want to read the Sound-HOWTO, available from
425 <http://www.linuxdoc.org/docs.html#howto>. General information about
426 the modular sound system is contained in the files
427 <file:Documentation/sound/Introduction>. The file
428 <file:Documentation/sound/README.OSS> contains some slightly
429 outdated but still useful information as well.
431 If you have a PnP sound card and you want to configure it at boot
432 time using the ISA PnP tools (read
433 <http://www.roestock.demon.co.uk/isapnptools/>), then you need to
434 compile the sound card support as a module ( = code which can be
435 inserted in and removed from the running kernel whenever you want)
436 and load that module after the PnP configuration is finished. To do
437 this, say M here and read <file:Documentation/modules.txt> as well
438 as <file:Documentation/sound/README.modules>; the module will be
441 I'm told that even without a sound card, you can make your computer
442 say more than an occasional beep, by programming the PC speaker.
443 Kernel patches and supporting utilities to do that are in the pcsp
444 package, available at <ftp://ftp.infradead.org/pub/pcsp/>.
446 source "sound/Kconfig"
450 source "drivers/misc/Kconfig"
452 source "drivers/usb/Kconfig"
454 source "net/bluetooth/Kconfig"
457 menu "Kernel hacking"
459 # RMK wants arm kernels compiled with frame pointers so hardwire this to y.
460 # If you know what you are doing and are willing to live without stack
461 # traces, you can get a slightly smaller kernel by setting this option to
462 # n, but then RMK will have to kill you ;).
467 If you say N here, the resulting kernel will be slightly smaller and
468 faster. However, when a problem occurs with the kernel, the
469 information that is reported is severely limited. Most people
473 bool "Verbose user fault messages"
475 When a user program crashes due to an exception, the kernel can
476 print a brief message explaining what the problem was. This is
477 sometimes helpful for debugging but serves no purpose on a
478 production system. Most people should say N here.
481 bool "Include GDB debugging information in kernel binary"
483 Say Y here to include source-level debugging information in the
484 `vmlinux' binary image. This is handy if you want to use gdb or
485 addr2line to debug the kernel. It has no impact on the in-memory
486 footprint of the running kernel but it can increase the amount of
487 time and disk space needed for compilation of the kernel. If in
491 bool "Kernel debugging"
493 Say Y here if you are developing drivers or trying to debug and
494 identify kernel problems.
497 bool "Debug memory allocations"
498 depends on DEBUG_KERNEL
500 Say Y here to have the kernel do limited verification on memory
501 allocation as well as poisoning memory on free to catch use of freed
505 bool "Magic SysRq key"
506 depends on DEBUG_KERNEL
508 If you say Y here, you will have some control over the system even
509 if the system crashes for example during kernel debugging (e.g., you
510 will be able to flush the buffer cache to disk, reboot the system
511 immediately or dump some status information). This is accomplished
512 by pressing various keys while holding SysRq (Alt+PrintScreen). It
513 also works on a serial console (on PC hardware at least), if you
514 send a BREAK and then within 5 seconds a command keypress. The
515 keys are documented in <file:Documentation/sysrq.txt>. Don't say Y
516 unless you really know what this hack does.
518 config DEBUG_SPINLOCK
519 bool "Spinlock debugging"
520 depends on DEBUG_KERNEL
522 Say Y here and build SMP to catch missing spinlock initialization
523 and certain other kinds of spinlock errors commonly made. This is
524 best used in conjunction with the NMI watchdog so that spinlock
525 deadlocks are also debuggable.
528 bool "Wait queue debugging"
529 depends on DEBUG_KERNEL
531 config DEBUG_BUGVERBOSE
532 bool "Verbose BUG() reporting (adds 70K)"
533 depends on DEBUG_KERNEL
535 Say Y here to make BUG() panics output the file name and line number
536 of the BUG call as well as the EIP and oops trace. This aids
537 debugging but costs about 70-100K of memory.
540 bool "Verbose kernel error messages"
541 depends on DEBUG_KERNEL
543 This option controls verbose debugging information which can be
544 printed when the kernel detects an internal error. This debugging
545 information is useful to kernel hackers when tracking down problems,
546 but mostly meaningless to other people. It's safe to say Y unless
547 you are concerned with the code size or don't want to see these
551 bool "Load all symbols for debugging/kksymoops"
552 depends on DEBUG_KERNEL
554 Say Y here to let the kernel print out symbolic crash information and
555 symbolic stack backtraces. This increases the size of the kernel
556 somewhat, as all symbols have to be loaded into the kernel image.
559 bool "Compile the kernel with debug info"
560 depends on DEBUG_KERNEL
562 If you say Y here the resulting kernel image will include
563 debugging info resulting in a larger kernel image.
564 Say Y here only if you plan to use gdb to debug the kernel.
565 If you don't debug the kernel, you can say N.
567 # These options are only for real kernel hackers who want to get their hands dirty.
569 bool "Kernel low-level debugging functions"
570 depends on DEBUG_KERNEL
572 Say Y here to include definitions of printascii, printchar, printhex
573 in the kernel. This is helpful if you are debugging code that
574 executes before the console is initialized.
578 source "security/Kconfig"
580 source "crypto/Kconfig"