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)"
484 source "fs/Kconfig.binfmt"
488 source "drivers/acpi/Kconfig"
493 Find out whether you have a PCI motherboard. PCI is the name of a
494 bus system, i.e. the way the CPU talks to the other stuff inside
495 your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or
496 VESA. If you have PCI, say Y, otherwise N.
498 The PCI-HOWTO, available from
499 <http://www.tldp.org/docs.html#howto>, contains valuable
500 information about which PCI hardware does work under Linux and which
507 source "drivers/pci/Kconfig"
510 bool "Support for hot-pluggable devices"
512 Say Y here if you want to plug devices into your computer while
513 the system is running, and be able to use them quickly. In many
514 cases, the devices can likewise be unplugged at any time too.
516 One well known example of this is PCMCIA- or PC-cards, credit-card
517 size devices such as network cards, modems or hard drives which are
518 plugged into slots found on all modern laptop computers. Another
519 example, used on modern desktops as well as laptops, is USB.
521 Enable HOTPLUG and KMOD, and build a modular kernel. Get agent
522 software (at <http://linux-hotplug.sourceforge.net/>) and install it.
523 Then your kernel will automatically call out to a user mode "policy
524 agent" (/sbin/hotplug) to load modules and set up software needed
525 to use devices as you hotplug them.
527 source "drivers/pci/hotplug/Kconfig"
529 source "drivers/pcmcia/Kconfig"
531 source "drivers/parport/Kconfig"
537 source "drivers/base/Kconfig"
541 source "drivers/mtd/Kconfig"
543 source "drivers/pnp/Kconfig"
545 source "drivers/block/Kconfig"
547 source "drivers/ide/Kconfig"
549 source "drivers/ieee1394/Kconfig"
551 source "drivers/message/i2o/Kconfig"
553 source "drivers/md/Kconfig"
555 source "drivers/message/fusion/Kconfig"
560 source "drivers/scsi/Kconfig"
567 source "net/ax25/Kconfig"
569 source "drivers/isdn/Kconfig"
571 source "drivers/cdrom/Kconfig"
574 # input before char - char/joystick depends on it. As does USB.
576 source "drivers/input/Kconfig"
578 source "drivers/char/Kconfig"
580 #source drivers/misc/Config.in
581 source "drivers/media/Kconfig"
587 depends on IA64_HP_SIM
590 tristate "Loopback device support"
593 tristate "Network block device support"
597 tristate "RAM disk support"
599 config BLK_DEV_RAM_SIZE
600 int "Default RAM disk size"
601 depends on BLK_DEV_RAM
610 source "drivers/video/Kconfig"
615 tristate "Sound card support"
617 If you have a sound card in your computer, i.e. if it can say more
618 than an occasional beep, say Y. Be sure to have all the information
619 about your sound card and its configuration down (I/O port,
620 interrupt and DMA channel), because you will be asked for it.
622 You want to read the Sound-HOWTO, available from
623 <http://www.tldp.org/docs.html#howto>. General information about
624 the modular sound system is contained in the files
625 <file:Documentation/sound/Introduction>. The file
626 <file:Documentation/sound/README.OSS> contains some slightly
627 outdated but still useful information as well.
629 source "sound/Kconfig"
633 source "drivers/usb/Kconfig"
636 source "net/bluetooth/Kconfig"
642 source "arch/ia64/hp/sim/Kconfig"
645 menu "Kernel hacking"
648 prompt "Physical memory granularity"
649 default IA64_GRANULE_64MB
651 config IA64_GRANULE_16MB
654 IA-64 identity-mapped regions use a large page size called "granules".
656 Select "16MB" for a small granule size.
657 Select "64MB" for a large granule size. This is the current default.
659 config IA64_GRANULE_64MB
665 bool "Kernel debugging"
667 Say Y here if you are developing drivers or trying to debug and
668 identify kernel problems.
671 bool "Load all symbols for debugging/kksymoops"
672 depends on DEBUG_KERNEL
674 Say Y here to let the kernel print out symbolic crash information and
675 symbolic stack backtraces. This increases the size of the kernel
676 somewhat, as all symbols have to be loaded into the kernel image.
678 config IA64_PRINT_HAZARDS
679 bool "Print possible IA-64 dependency violations to console"
680 depends on DEBUG_KERNEL
682 Selecting this option prints more information for Illegal Dependency
683 Faults, that is, for Read-after-Write (RAW), Write-after-Write (WAW),
684 or Write-after-Read (WAR) violations. This option is ignored if you
685 are compiling for an Itanium A step processor
686 (CONFIG_ITANIUM_ASTEP_SPECIFIC). If you're unsure, select Y.
690 depends on DEBUG_KERNEL
692 The Virtual Hash Page Table (VHPT) enhances virtual address
693 translation performance. Normally you want the VHPT active but you
694 can select this option to disable the VHPT for debugging. If you're
698 bool "Magic SysRq key"
699 depends on DEBUG_KERNEL
701 If you say Y here, you will have some control over the system even
702 if the system crashes for example during kernel debugging (e.g., you
703 will be able to flush the buffer cache to disk, reboot the system
704 immediately or dump some status information). This is accomplished
705 by pressing various keys while holding SysRq (Alt+PrintScreen). It
706 also works on a serial console (on PC hardware at least), if you
707 send a BREAK and then within 5 seconds a command keypress. The
708 keys are documented in <file:Documentation/sysrq.txt>. Don't say Y
709 unless you really know what this hack does.
711 config IA64_EARLY_PRINTK
712 bool "Early printk support"
713 depends on DEBUG_KERNEL && !IA64_GENERIC
715 Selecting this option uses the VGA screen or serial console for
716 printk() output before the consoles are initialised. It is useful
717 for debugging problems early in the boot process, but only if you
718 have a suitable VGA/serial console attached. If you're unsure,
721 config IA64_EARLY_PRINTK_UART
722 bool "Early printk on MMIO serial port"
723 depends on IA64_EARLY_PRINTK
725 config IA64_EARLY_PRINTK_UART_BASE
726 hex "UART MMIO base address"
727 depends on IA64_EARLY_PRINTK_UART
730 config IA64_EARLY_PRINTK_VGA
731 bool "Early printk on VGA"
732 depends on IA64_EARLY_PRINTK
734 config IA64_EARLY_PRINTK_SGI_SN
735 bool "Early printk on SGI SN serial console"
736 depends on IA64_EARLY_PRINTK && (IA64_GENERIC || IA64_SGI_SN2)
739 bool "Debug memory allocations"
740 depends on DEBUG_KERNEL
742 Say Y here to have the kernel do limited verification on memory
743 allocation as well as poisoning memory on free to catch use of freed
746 config DEBUG_SPINLOCK
747 bool "Spinlock debugging"
748 depends on DEBUG_KERNEL
750 Say Y here and build SMP to catch missing spinlock initialization
751 and certain other kinds of spinlock errors commonly made. This is
752 best used in conjunction with the NMI watchdog so that spinlock
753 deadlocks are also debuggable.
755 config DEBUG_SPINLOCK_SLEEP
756 bool "Sleep-inside-spinlock checking"
758 If you say Y here, various routines which may sleep will become very
759 noisy if they are called with a spinlock held.
761 config IA64_DEBUG_CMPXCHG
762 bool "Turn on compare-and-exchange bug checking (slow!)"
763 depends on DEBUG_KERNEL
765 Selecting this option turns on bug checking for the IA-64
766 compare-and-exchange instructions. This is slow! Itaniums
767 from step B3 or later don't have this problem. If you're unsure,
770 config IA64_DEBUG_IRQ
771 bool "Turn on irq debug checks (slow!)"
772 depends on DEBUG_KERNEL
774 Selecting this option turns on bug checking for the IA-64 irq_save
775 and restore instructions. It's useful for tracking down spinlock
776 problems, but slow! If you're unsure, select N.
780 source "security/Kconfig"
782 source "crypto/Kconfig"