2 # For a description of the syntax of this configuration file,
3 # see Documentation/kbuild/kconfig-language.txt.
6 mainmenu "IA-64 Linux Kernel Configuration"
10 menu "Processor type and features"
16 The Itanium Processor Family is Intel's 64-bit successor to
17 the 32-bit X86 line. The IA-64 Linux project has a home
18 page at <http://www.linuxia64.org/> and a mailing list at
19 linux-ia64@linuxia64.org.
25 config RWSEM_XCHGADD_ALGORITHM
29 config TIME_INTERPOLATION
34 prompt "IA-64 processor type"
40 Select your IA-64 processor type. The default is Intel Itanium.
41 This choice is safe for all IA-64 systems, but may not perform
42 optimally on systems with, say, Itanium 2 or newer processors.
47 Select this to configure for an Itanium 2 (McKinley) processor.
52 prompt "IA-64 system type"
58 This selects the system type of your hardware. A "generic" kernel
59 will run on any supported IA-64 system. However, if you configure
60 a kernel for your specific system, it will be faster and smaller.
62 To find out what type of IA-64 system you have, you may want to
63 check the IA-64 Linux web site at <http://www.linux-ia64.org/>.
64 As of the time of this writing, most hardware is DIG compliant,
65 so the "DIG-compliant" option is usually the right choice.
67 HP-simulator For the HP simulator
68 (<http://software.hp.com/ia64linux/>).
69 HP-zx1 For HP zx1-based systems.
70 SGI-SN2 For SGI Altix systems
71 DIG-compliant For DIG ("Developer's Interface Guide") compliant
74 If you don't know what to do, choose "generic".
85 Build a kernel that runs on HP zx1-based systems. This adds support
86 for the zx1 I/O MMU and makes root bus bridges appear in PCI config
87 space (required for zx1 agpgart support).
95 prompt "Kernel page size"
96 default IA64_PAGE_SIZE_16KB
98 config IA64_PAGE_SIZE_4KB
101 This lets you select the page size of the kernel. For best IA-64
102 performance, a page size of 8KB or 16KB is recommended. For best
103 IA-32 compatibility, a page size of 4KB should be selected (the vast
104 majority of IA-32 binaries work perfectly fine with a larger page
105 size). For Itanium 2 or newer systems, a page size of 64KB can also
108 4KB For best IA-32 compatibility
109 8KB For best IA-64 performance
110 16KB For best IA-64 performance
111 64KB Requires Itanium 2 or newer processor.
113 If you don't know what to do, choose 16KB.
115 config IA64_PAGE_SIZE_8KB
118 config IA64_PAGE_SIZE_16KB
121 config IA64_PAGE_SIZE_64KB
129 depends on !IA64_HP_SIM
132 ACPI/OSPM support for Linux is currently under development. As such,
133 this support is preliminary and EXPERIMENTAL. Configuring ACPI
134 support enables kernel interfaces that allow higher level software
135 (OSPM) to manipulate ACPI defined hardware and software interfaces,
136 including the evaluation of ACPI control methods. If unsure, choose
137 N here. Note, this option will enlarge your kernel by about 120K.
139 This support requires an ACPI compliant platform (hardware/firmware).
140 If both ACPI and Advanced Power Management (APM) support are
141 configured, whichever is loaded first shall be used.
143 This code DOES NOT currently provide a complete OSPM implementation
144 -- it has not yet reached APM's level of functionality. When fully
145 implemented, Linux ACPI/OSPM will provide a more robust functional
146 replacement for legacy configuration and power management
147 interfaces, including the Plug-and-Play BIOS specification (PnP
148 BIOS), the Multi-Processor Specification (MPS), and the Advanced
149 Power Management specification (APM).
151 Linux support for ACPI/OSPM is based on Intel Corporation's ACPI
152 Component Architecture (ACPI CA). The latest ACPI CA source code,
153 documentation, debug builds, and implementation status information
154 can be downloaded from:
155 <http://developer.intel.com/technology/iapc/acpi/downloads.htm>.
157 The ACPI Sourceforge project may also be of interest:
158 <http://sf.net/projects/acpi/>
162 depends on !IA64_HP_SIM
165 config ACPI_INTERPRETER
167 depends on !IA64_HP_SIM
170 config ACPI_KERNEL_CONFIG
172 depends on !IA64_HP_SIM
175 If you say `Y' here, Linux's ACPI support will use the
176 hardware-level system descriptions found on IA-64 systems.
183 config ITANIUM_BSTEP_SPECIFIC
184 bool "Enable Itanium B-step specific code"
187 Select this option to build a kernel for an Itanium prototype system
188 with a B-step CPU. You have a B-step CPU if the "revision" field in
189 /proc/cpuinfo has a value in the range from 1 to 4.
191 # align cache-sensitive data to 128 bytes
192 config IA64_L1_CACHE_SHIFT
194 default "7" if MCKINLEY
195 default "6" if ITANIUM
197 # align cache-sensitive data to 64 bytes
198 config MCKINLEY_ASTEP_SPECIFIC
199 bool "Enable McKinley A-step specific code"
202 Select this option to build a kernel for an IA-64 McKinley prototype
203 system with any A-stepping CPU.
205 config MCKINLEY_A0_SPECIFIC
206 bool "Enable McKinley A0/A1-step specific code"
207 depends on MCKINLEY_ASTEP_SPECIFIC
209 Select this option to build a kernel for an IA-64 McKinley prototype
210 system with an A0 or A1 stepping CPU.
213 bool "Enable NUMA support" if IA64_GENERIC || IA64_DIG || IA64_HP_ZX1
214 default y if IA64_SGI_SN2
216 Say Y to compile the kernel to support NUMA (Non-Uniform Memory
217 Access). This option is for configuring high-end multiprocessor
218 server systems. If in doubt, say N.
221 prompt "Maximum Memory per NUMA Node" if NUMA && IA64_DIG
222 depends on NUMA && IA64_DIG
223 default IA64_NODESIZE_16GB
225 config IA64_NODESIZE_16GB
228 config IA64_NODESIZE_64GB
231 config IA64_NODESIZE_256GB
238 depends on IA64_SGI_SN2 || (IA64_GENERIC || IA64_DIG || IA64_HP_ZX1) && NUMA
241 Say Y to support efficient handling of discontiguous physical memory,
242 for architectures which are either NUMA (Non-Uniform Memory Access)
243 or have huge holes in the physical address space for other reasons.
244 See <file:Documentation/vm/numa> for more.
246 config VIRTUAL_MEM_MAP
247 bool "Enable Virtual Mem Map"
249 default y if IA64_GENERIC || IA64_DIG || IA64_HP_ZX1
251 Say Y to compile the kernel with support for a virtual mem map.
252 This is an alternate method of supporting large holes in the
253 physical address space on non NUMA machines. Since the DISCONTIGMEM
254 option is not supported on machines with the ZX1 chipset, this is
255 the only way of supporting more than 1 Gb of memory on those
256 machines. This code also only takes effect if a memory hole of
257 greater than 1 Gb is found during boot, so it is safe to enable
258 unless you require the DISCONTIGMEM option for your machine. If you
262 bool "Enable IA-64 Machine Check Abort" if IA64_GENERIC || IA64_DIG || IA64_HP_ZX1
263 default y if IA64_SGI_SN2
265 Say Y here to enable machine check support for IA-64. If you're
270 depends on IA64_GENERIC || IA64_DIG || IA64_HP_ZX1
273 "Power Management" means that parts of your computer are shut
274 off or put into a power conserving "sleep" mode if they are not
275 being used. There are two competing standards for doing this: APM
276 and ACPI. If you want to use either one, say Y here and then also
277 to the requisite support below.
279 Power Management is most important for battery powered laptop
280 computers; if you have a laptop, check out the Linux Laptop home
282 <http://www.cs.utexas.edu/users/kharker/linux-laptop/> and the
283 Battery Powered Linux mini-HOWTO, available from
284 <http://www.tldp.org/docs.html#howto>.
286 Note that, even if you say N here, Linux on the x86 architecture
287 will issue the hlt instruction if nothing is to be done, thereby
288 sending the processor to sleep and saving power.
292 depends on IA64_GENERIC || IA64_DIG || IA64_HP_ZX1 || IA64_SGI_SN2
295 config IA64_SGI_SN_DEBUG
296 bool "Enable extra debugging code"
297 depends on IA64_SGI_SN2
299 Turns on extra debugging code in the SGI SN (Scalable NUMA) platform
300 for IA-64. Unless you are debugging problems on an SGI SN IA-64 box,
303 config IA64_SGI_SN_SIM
304 bool "Enable SGI Medusa Simulator Support"
305 depends on IA64_SGI_SN2
307 If you are compiling a kernel that will run under SGI's IA-64
308 simulator (Medusa) then say Y, otherwise say N.
310 config IA64_SGI_AUTOTEST
311 bool "Enable autotest (llsc). Option to run cache test instead of booting"
312 depends on IA64_SGI_SN2
314 Build a kernel used for hardware validation. If you include the
315 keyword "autotest" on the boot command line, the kernel does NOT boot.
316 Instead, it starts all cpus and runs cache coherency tests instead.
320 config SERIAL_SGI_L1_PROTOCOL
321 bool "Enable protocol mode for the L1 console"
322 depends on IA64_SGI_SN2
324 Uses protocol mode instead of raw mode for the level 1 console on the
325 SGI SN (Scalable NUMA) platform for IA-64. If you are compiling for
326 an SGI SN box then Y is the recommended value, otherwise say N.
330 depends on IA64_SGI_SN2
333 # On IA-64, we always want an ELF /proc/kcore.
338 If you enabled support for /proc file system then the file
339 /proc/kcore will contain the kernel core image. This can be used
342 $ cd /usr/src/linux ; gdb vmlinux /proc/kcore
344 You have two choices here: ELF and A.OUT. Selecting ELF will make
345 /proc/kcore appear in ELF core format as defined by the Executable
346 and Linking Format specification. Selecting A.OUT will choose the
347 old "a.out" format which may be necessary for some old versions
348 of binutils or on some architectures.
350 This is especially useful if you have compiled the kernel with the
351 "-g" option to preserve debugging information. It is mainly used
352 for examining kernel data structures on the live kernel so if you
353 don't understand what this means or are not a kernel hacker, just
354 leave it at its default value ELF.
356 config FORCE_MAX_ZONEORDER
361 bool "IA-64 Huge TLB Page Support"
364 prompt "IA-64 Huge TLB Page Size"
365 depends on HUGETLB_PAGE
366 default HUGETLB_PAGE_SIZE_16MB
368 config HUGETLB_PAGE_SIZE_4GB
372 config HUGETLB_PAGE_SIZE_1GB
376 config HUGETLB_PAGE_SIZE_256MB
379 config HUGETLB_PAGE_SIZE_64MB
382 config HUGETLB_PAGE_SIZE_16MB
385 config HUGETLB_PAGE_SIZE_4MB
388 config HUGETLB_PAGE_SIZE_1MB
391 config HUGETLB_PAGE_SIZE_256KB
397 bool "Use PAL_HALT_LIGHT in idle loop"
399 Say Y here to enable use of PAL_HALT_LIGHT in the cpu_idle loop.
400 This allows the CPU to enter a low power state when idle. You
401 can enable CONFIG_IA64_PALINFO and check /proc/pal/cpu0/power_info
402 to see the power consumption and latency for this state. If you're
403 unsure your firmware supports it, answer N.
408 This enables support for systems with more than one CPU. If you have
409 a system with only one CPU say N. If you have a system with more than
412 If you say N here, the kernel will run on single and multiprocessor
413 systems, but will use only one CPU of a multiprocessor system. If
414 you say Y here, the kernel will run on many, but not all,
415 singleprocessor system. On a singleprocessor system, the kernel
416 will run faster if you say N here.
418 See also the <file:Documentation/smp.tex>,
419 <file:Documentation/smp.txt>, and the SMP-HOWTO available at
420 <http://www.tldp.org/docs.html#howto>.
422 If you don't know what to do here, say N.
425 bool "Preemptible Kernel"
427 This option reduces the latency of the kernel when reacting to
428 real-time or interactive events by allowing a low priority process to
429 be preempted even if it is in kernel mode executing a system call.
430 This allows applications to run more reliably even when the system is
433 Say Y here if you are building a kernel for a desktop, embedded
434 or real-time system. Say N if you are unsure.
437 bool "Support running of Linux/x86 binaries"
439 IA-64 processors can execute IA-32 (X86) instructions. By
440 saying Y here, the kernel will include IA-32 system call
441 emulation support which makes it possible to transparently
442 run IA-32 Linux binaries on an IA-64 Linux system.
447 depends on IA32_SUPPORT
451 bool "Performance monitor support"
453 Selects whether support for the IA-64 performance monitor hardware
454 is included in the kernel. This makes some kernel data-structures a
455 little bigger and slows down execution a bit, but it is generally
456 a good idea to turn this on. If you're unsure, say Y.
459 tristate "/proc/pal support"
461 If you say Y here, you are able to get PAL (Processor Abstraction
462 Layer) information in /proc/pal. This contains useful information
463 about the processors in your systems, such as cache and TLB sizes
464 and the PAL firmware version in use.
466 To use this option, you have to ensure that the "/proc file system
467 support" (CONFIG_PROC_FS) is enabled, too.
470 tristate "/proc/efi/vars support"
472 If you say Y here, you are able to get EFI (Extensible Firmware
473 Interface) variable information in /proc/efi/vars. You may read,
474 write, create, and destroy EFI variables through this interface.
476 To use this option, you have to check that the "/proc file system
477 support" (CONFIG_PROC_FS) is enabled, too.
480 int "Maximum number of CPUs (2-64)"
485 tristate "Kernel support for ELF binaries"
487 ELF (Executable and Linkable Format) is a format for libraries and
488 executables used across different architectures and operating
489 systems. Saying Y here will enable your kernel to run ELF binaries.
491 Information about ELF is contained in the ELF HOWTO available from
492 <http://www.tldp.org/docs.html#howto>.
495 tristate "Kernel support for MISC binaries"
497 If you say Y here, it will be possible to plug wrapper-driven binary
498 formats into the kernel. You will like this especially when you use
499 programs that need an interpreter to run like Java, Python or
500 Emacs-Lisp. Once you have registered such a binary class with the
501 kernel, you can start one of those programs simply by typing in its
502 name at a shell prompt; Linux will automatically feed it to the
505 You can do other nice things, too. Read the file
506 <file:Documentation/binfmt_misc.txt> to learn how to use this
507 feature, and <file:Documentation/java.txt> for information about how
508 to include Java support.
510 You must say Y to "/proc file system support" (CONFIG_PROC_FS) to
511 use this part of the kernel.
513 You may say M here for module support and later load the module when
514 you have use for it; the module is called binfmt_misc. If you
515 don't know what to answer at this point, say Y.
519 source "drivers/acpi/Kconfig"
524 Find out whether you have a PCI motherboard. PCI is the name of a
525 bus system, i.e. the way the CPU talks to the other stuff inside
526 your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or
527 VESA. If you have PCI, say Y, otherwise N.
529 The PCI-HOWTO, available from
530 <http://www.tldp.org/docs.html#howto>, contains valuable
531 information about which PCI hardware does work under Linux and which
538 source "drivers/pci/Kconfig"
541 bool "Support for hot-pluggable devices"
543 Say Y here if you want to plug devices into your computer while
544 the system is running, and be able to use them quickly. In many
545 cases, the devices can likewise be unplugged at any time too.
547 One well known example of this is PCMCIA- or PC-cards, credit-card
548 size devices such as network cards, modems or hard drives which are
549 plugged into slots found on all modern laptop computers. Another
550 example, used on modern desktops as well as laptops, is USB.
552 Enable HOTPLUG and KMOD, and build a modular kernel. Get agent
553 software (at <http://linux-hotplug.sourceforge.net/>) and install it.
554 Then your kernel will automatically call out to a user mode "policy
555 agent" (/sbin/hotplug) to load modules and set up software needed
556 to use devices as you hotplug them.
558 source "drivers/pci/hotplug/Kconfig"
560 source "drivers/pcmcia/Kconfig"
562 source "drivers/parport/Kconfig"
570 source "drivers/mtd/Kconfig"
572 source "drivers/pnp/Kconfig"
574 source "drivers/block/Kconfig"
576 source "drivers/ide/Kconfig"
578 source "drivers/ieee1394/Kconfig"
580 source "drivers/message/i2o/Kconfig"
582 source "drivers/md/Kconfig"
584 source "drivers/message/fusion/Kconfig"
592 tristate "SCSI support"
594 If you want to use a SCSI hard disk, SCSI tape drive, SCSI CD-ROM or
595 any other SCSI device under Linux, say Y and make sure that you know
596 the name of your SCSI host adapter (the card inside your computer
597 that "speaks" the SCSI protocol, also called SCSI controller),
598 because you will be asked for it.
600 You also need to say Y here if you want support for the parallel
601 port version of the 100 MB IOMEGA ZIP drive.
603 This driver is also available as a module ( = code which can be
604 inserted in and removed from the running kernel whenever you want).
605 The module will be called scsi_mod. If you want to compile it as
606 a module, say M here and read <file:Documentation/modules.txt> and
607 <file:Documentation/scsi/scsi.txt>. However, do not compile this as a
608 module if your root file system (the one containing the directory /)
609 is located on a SCSI device.
611 source "drivers/scsi/Kconfig"
620 source "net/ax25/Kconfig"
622 source "drivers/isdn/Kconfig"
625 menu "CD-ROM drivers (not for SCSI or IDE/ATAPI drives)"
628 bool "Support non-SCSI/IDE/ATAPI CDROM drives"
630 If you have a CD-ROM drive that is neither SCSI nor IDE/ATAPI, say Y
631 here, otherwise N. Read the CD-ROM-HOWTO, available from
632 <http://www.tldp.org/docs.html#howto>.
634 Note that the answer to this question doesn't directly affect the
635 kernel: saying N will just cause the configurator to skip all
636 the questions about these CD-ROM drives. If you are unsure what you
637 have, say Y and find out whether you have one of the following
640 For each of these drivers, a file Documentation/cdrom/{driver_name}
641 exists. Especially in cases where you do not know exactly which kind
642 of drive you have you should read there. Most of these drivers use a
643 file drivers/cdrom/{driver_name}.h where you can define your
644 interface parameters and switch some internal goodies.
646 All these CD-ROM drivers are also usable as a module ( = code which
647 can be inserted in and removed from the running kernel whenever you
648 want). If you want to compile them as module, say M instead of Y and
649 read <file:Documentation/modules.txt>.
651 If you want to use any of these CD-ROM drivers, you also have to
652 answer Y or M to "ISO 9660 CD-ROM file system support" below (this
653 answer will get "defaulted" for you if you enable any of the Linux
656 source "drivers/cdrom/Kconfig"
661 # input before char - char/joystick depends on it. As does USB.
663 source "drivers/input/Kconfig"
665 source "drivers/char/Kconfig"
667 #source drivers/misc/Config.in
668 source "drivers/media/Kconfig"
674 depends on IA64_HP_SIM
677 tristate "Loopback device support"
680 tristate "Network block device support"
684 tristate "RAM disk support"
686 config BLK_DEV_RAM_SIZE
687 int "Default RAM disk size"
688 depends on BLK_DEV_RAM
697 source "drivers/video/Kconfig"
702 tristate "Sound card support"
704 If you have a sound card in your computer, i.e. if it can say more
705 than an occasional beep, say Y. Be sure to have all the information
706 about your sound card and its configuration down (I/O port,
707 interrupt and DMA channel), because you will be asked for it.
709 You want to read the Sound-HOWTO, available from
710 <http://www.tldp.org/docs.html#howto>. General information about
711 the modular sound system is contained in the files
712 <file:Documentation/sound/Introduction>. The file
713 <file:Documentation/sound/README.OSS> contains some slightly
714 outdated but still useful information as well.
716 source "sound/Kconfig"
720 source "drivers/usb/Kconfig"
723 source "net/bluetooth/Kconfig"
729 source "arch/ia64/hp/sim/Kconfig"
732 menu "Kernel hacking"
735 prompt "Physical memory granularity"
736 default IA64_GRANULE_64MB
738 config IA64_GRANULE_16MB
741 IA-64 identity-mapped regions use a large page size called "granules".
743 Select "16MB" for a small granule size.
744 Select "64MB" for a large granule size. This is the current default.
746 config IA64_GRANULE_64MB
752 bool "Kernel debugging"
754 Say Y here if you are developing drivers or trying to debug and
755 identify kernel problems.
758 bool "Load all symbols for debugging/kksymoops"
759 depends on DEBUG_KERNEL
761 Say Y here to let the kernel print out symbolic crash information and
762 symbolic stack backtraces. This increases the size of the kernel
763 somewhat, as all symbols have to be loaded into the kernel image.
765 config IA64_PRINT_HAZARDS
766 bool "Print possible IA-64 dependency violations to console"
767 depends on DEBUG_KERNEL
769 Selecting this option prints more information for Illegal Dependency
770 Faults, that is, for Read-after-Write (RAW), Write-after-Write (WAW),
771 or Write-after-Read (WAR) violations. This option is ignored if you
772 are compiling for an Itanium A step processor
773 (CONFIG_ITANIUM_ASTEP_SPECIFIC). If you're unsure, select Y.
777 depends on DEBUG_KERNEL
779 The Virtual Hash Page Table (VHPT) enhances virtual address
780 translation performance. Normally you want the VHPT active but you
781 can select this option to disable the VHPT for debugging. If you're
785 bool "Magic SysRq key"
786 depends on DEBUG_KERNEL
788 If you say Y here, you will have some control over the system even
789 if the system crashes for example during kernel debugging (e.g., you
790 will be able to flush the buffer cache to disk, reboot the system
791 immediately or dump some status information). This is accomplished
792 by pressing various keys while holding SysRq (Alt+PrintScreen). It
793 also works on a serial console (on PC hardware at least), if you
794 send a BREAK and then within 5 seconds a command keypress. The
795 keys are documented in <file:Documentation/sysrq.txt>. Don't say Y
796 unless you really know what this hack does.
798 config IA64_EARLY_PRINTK
799 bool "Early printk support"
800 depends on DEBUG_KERNEL && !IA64_GENERIC
802 Selecting this option uses the VGA screen or serial console for
803 printk() output before the consoles are initialised. It is useful
804 for debugging problems early in the boot process, but only if you
805 have a suitable VGA/serial console attached. If you're unsure,
808 config IA64_EARLY_PRINTK_UART
809 bool "Early printk on MMIO serial port"
810 depends on IA64_EARLY_PRINTK
812 config IA64_EARLY_PRINTK_UART_BASE
813 hex "UART MMIO base address"
814 depends on IA64_EARLY_PRINTK_UART
817 config IA64_EARLY_PRINTK_VGA
818 bool "Early printk on VGA"
819 depends on IA64_EARLY_PRINTK
821 config IA64_EARLY_PRINTK_SGI_SN
822 bool "Early printk on SGI SN serial console"
823 depends on IA64_EARLY_PRINTK && (IA64_GENERIC || IA64_SGI_SN2)
826 bool "Debug memory allocations"
827 depends on DEBUG_KERNEL
829 Say Y here to have the kernel do limited verification on memory
830 allocation as well as poisoning memory on free to catch use of freed
833 config DEBUG_SPINLOCK
834 bool "Spinlock debugging"
835 depends on DEBUG_KERNEL
837 Say Y here and build SMP to catch missing spinlock initialization
838 and certain other kinds of spinlock errors commonly made. This is
839 best used in conjunction with the NMI watchdog so that spinlock
840 deadlocks are also debuggable.
842 config DEBUG_SPINLOCK_SLEEP
843 bool "Sleep-inside-spinlock checking"
845 If you say Y here, various routines which may sleep will become very
846 noisy if they are called with a spinlock held.
848 config IA64_DEBUG_CMPXCHG
849 bool "Turn on compare-and-exchange bug checking (slow!)"
850 depends on DEBUG_KERNEL
852 Selecting this option turns on bug checking for the IA-64
853 compare-and-exchange instructions. This is slow! Itaniums
854 from step B3 or later don't have this problem. If you're unsure,
857 config IA64_DEBUG_IRQ
858 bool "Turn on irq debug checks (slow!)"
859 depends on DEBUG_KERNEL
861 Selecting this option turns on bug checking for the IA-64 irq_save
862 and restore instructions. It's useful for tracking down spinlock
863 problems, but slow! If you're unsure, select N.
867 source "security/Kconfig"
869 source "crypto/Kconfig"
871 source "rpmify/Kconfig"