How to configure the Linux kernel/arch/ia64

Howto configure the Linux kernel / arch / ia64


 * For a description of the syntax of this configuration file,
 * see Documentation/kbuild/kconfig-language.txt.
 * see Documentation/kbuild/kconfig-language.txt.

"IA-64 Linux Kernel Configuration"


 * Option: Howto configure the Linux kernel/init

Processor type and features

 * Option: IA64
 * Kernel Versions: 2.6.15.6 ...
 * (on/off)
 * default y
 * The Itanium Processor Family is Intel's 64-bit successor to the 32-bit X86 line. The IA-64 Linux project has a home page at  and a mailing list at .


 * Option: 64BIT
 * Kernel Versions: 2.6.15.6 ...
 * (on/off)
 * default y


 * Option: MMU
 * Kernel Versions: 2.6.15.6 ...
 * (on/off)
 * default y


 * Option: SWIOTLB
 * Kernel Versions: 2.6.15.6 ...     bool      default y


 * Option: RWSEM_XCHGADD_ALGORITHM
 * Kernel Versions: 2.6.15.6 ...
 * (on/off)
 * default y


 * Option: GENERIC_CALIBRATE_DELAY
 * Kernel Versions: 2.6.15.6 ...
 * (on/off)
 * default y


 * Option: TIME_INTERPOLATION
 * Kernel Versions: 2.6.15.6 ...
 * (on/off)
 * default y


 * Option: EFI
 * Kernel Versions: 2.6.15.6 ...
 * (on/off)
 * default y


 * Option: GENERIC_IOMAP
 * Kernel Versions: 2.6.15.6 ...
 * (on/off)
 * default y


 * Option: SCHED_NO_NO_OMIT_FRAME_POINTER
 * Kernel Versions: 2.6.15.6 ...
 * (on/off)
 * default y


 * Option: IA64_UNCACHED_ALLOCATOR
 * Kernel Versions: 2.6.15.6 ...
 * (on/off)
 * select GENERIC_ALLOCATOR


 * Option: DMA_IS_DMA32
 * Kernel Versions: 2.6.15.6 ...
 * (on/off)
 * default y

"System type"
 * default IA64_GENERIC


 * Option: IA64_GENERIC
 * Kernel Versions: 2.6.15.6 ...
 * (on/off) generic
 * select ACPI
 * select NUMA
 * select ACPI_NUMA
 * This selects the system type of your hardware. A "generic" kernel will run on any supported IA-64 system.  However, if you configure a kernel for your specific system, it will be faster and smaller.
 * genericFor any supported IA-64 system DIG-compliantFor DIG ("Developer's Interface Guide") compliant systems HP-zx1/sx1000For HP systems HP-zx1/sx1000+swiotlbFor HP systems with (broken) DMA-constrained devices. SGI-SN2For SGI Altix systems Ski-simulatorFor the HP simulator 
 * If you don't know what to do, choose "generic".


 * Option: IA64_DIG
 * Kernel Versions: 2.6.15.6 ...
 * (on/off) DIG-compliant


 * Option: IA64_HP_ZX1
 * Kernel Versions: 2.6.15.6 ...
 * (on/off) HP-zx1/sx1000
 * Build a kernel that runs on HP zx1 and sx1000 systems. This adds support for the HP I/O MMU.


 * Option: IA64_HP_ZX1_SWIOTLB
 * Kernel Versions: 2.6.15.6 ...
 * (on/off) HP-zx1/sx1000 with software I/O TLB
 * Build a kernel that runs on HP zx1 and sx1000 systems even when they have broken PCI devices which cannot DMA to full 32 bits. Apart from support for the HP I/O MMU, this includes support for the software I/O TLB, which allows supporting the broken devices at the expense of wasting some kernel memory (about 2MB by default).


 * Option: IA64_SGI_SN2
 * Kernel Versions: 2.6.15.6 ...
 * (on/off) SGI-SN2
 * Selecting this option will optimize the kernel for use on sn2 based systems, but the resulting kernel binary will not run on other types of ia64 systems. If you have an SGI Altix system, it's safe to select this option.  If in doubt, select ia64 generic support instead.


 * Option: IA64_HP_SIM
 * Kernel Versions: 2.6.15.6 ...
 * (on/off) Ski-simulator

"Processor type"
 * default ITANIUM


 * Option: ITANIUM
 * Kernel Versions: 2.6.15.6 ...
 * (on/off) Itanium
 * Select your IA-64 processor type. The default is Itanium. This choice is safe for all IA-64 systems, but may not perform optimally on systems with, say, Itanium 2 or newer processors.


 * Option: MCKINLEY
 * Kernel Versions: 2.6.15.6 ...
 * (on/off) Itanium 2
 * Select this to configure for an Itanium 2 (McKinley) processor.

"Kernel page size"
 * default IA64_PAGE_SIZE_16KB


 * Option: IA64_PAGE_SIZE_4KB
 * Kernel Versions: 2.6.15.6 ...
 * (on/off) 4KB
 * This lets you select the page size of the kernel. For best IA-64 performance, a page size of 8KB or 16KB is recommended.  For best IA-32 compatibility, a page size of 4KB should be selected (the vast majority of IA-32 binaries work perfectly fine with a larger page size).  For Itanium 2 or newer systems, a page size of 64KB can also be selected.
 * 4KB               For best IA-32 compatibility 8KB                For best IA-64 performance 16KB               For best IA-64 performance 64KB               Requires Itanium 2 or newer processor.
 * If you don't know what to do, choose 16KB.


 * Option: IA64_PAGE_SIZE_8KB
 * Kernel Versions: 2.6.15.6 ...
 * (on/off) 8KB


 * Option: IA64_PAGE_SIZE_16KB
 * Kernel Versions: 2.6.15.6 ...
 * (on/off) 16KB


 * Option: IA64_PAGE_SIZE_64KB
 * Kernel Versions: 2.6.15.6 ...
 * depends on !ITANIUM
 * (on/off) 64KB

"Page Table Levels"
 * default PGTABLE_3


 * Option: PGTABLE_3
 * Kernel Versions: 2.6.15.6 ...
 * (on/off) 3 Levels


 * Option: PGTABLE_4
 * Kernel Versions: 2.6.15.6 ...
 * depends on !IA64_PAGE_SIZE_64KB
 * (on/off) 4 Levels


 * Option: Howto configure the Linux kernel/kernel.hz


 * Option: IA64_BRL_EMU
 * Kernel Versions: 2.6.15.6 ...
 * (on/off)
 * depends on ITANIUM
 * default y


 * align cache-sensitive data to 128 bytes


 * Option: IA64_L1_CACHE_SHIFT
 * Kernel Versions: 2.6.15.6 ...


 * default "7" if MCKINLEY
 * default "6" if ITANIUM


 * align cache-sensitive data to 64 bytes


 * Option: IA64_CYCLONE
 * Kernel Versions: 2.6.15.6 ...
 * (on/off) Cyclone (EXA) Time Source support
 * Say Y here to enable support for IBM EXA Cyclone time source. If you're unsure, answer N.


 * Option: IOSAPIC
 * Kernel Versions: 2.6.15.6 ...
 * (on/off)
 * depends on !IA64_HP_SIM
 * default y


 * Option: IA64_SGI_SN_XP
 * Kernel Versions: 2.6.15.6 ...
 * (on/off/module) Support communication between SGI SSIs
 * depends on IA64_GENERIC || IA64_SGI_SN2
 * select IA64_UNCACHED_ALLOCATOR
 * An SGI machine can be divided into multiple Single System Images which act independently of each other and have hardware based memory protection from the others. Enabling this feature will allow for direct communication between SSIs based on a network adapter and DMA messaging.

"MAX_ORDER (11 - 17)" if !HUGETLB_PAGE 11 17 if !HUGETLB_PAGE
 * Option: FORCE_MAX_ZONEORDER
 * Kernel Versions: 2.6.15.6 ...
 * default "17" if HUGETLB_PAGE
 * default "11"


 * Option: SMP
 * Kernel Versions: 2.6.15.6 ...
 * (on/off) Symmetric multi-processing support
 * This enables support for systems with more than one CPU. If you have a system with only one CPU, say N. If you have a system with more than one CPU, say Y.
 * If you say N here, the kernel will run on single and multiprocessor systems, but will use only one CPU of a multiprocessor system. If you say Y here, the kernel will run on many, but not all, single processor systems.  On a single processor system, the kernel will run faster if you say N here.
 * See also the  and the SMP-HOWTO available at .
 * If you don't know what to do here, say N.

"Maximum number of CPUs (2-1024)" 2 1024
 * Option: NR_CPUS
 * Kernel Versions: 2.6.15.6 ...
 * depends on SMP
 * default "64"
 * You should set this to the number of CPUs in your system, but keep in mind that a kernel compiled for, e.g., 2 CPUs will boot but only use 2 CPUs on a >2 CPU system. Setting this to a value larger than 64 will cause the use of a CPU mask array, causing a small performance hit.


 * Option: HOTPLUG_CPU
 * Kernel Versions: 2.6.15.6 ...
 * (on/off) Support for hot-pluggable CPUs (EXPERIMENTAL)
 * depends on SMP && EXPERIMENTAL
 * select HOTPLUG
 * default n
 * Say Y here to experiment with turning CPUs off and on. CPUs can be controlled through /sys/devices/system/cpu/cpu#. Say N if you want to disable CPU hotplug.


 * Option: SCHED_SMT
 * Kernel Versions: 2.6.15.6 ...
 * (on/off) SMT scheduler support
 * depends on SMP
 * default off
 * Improves the CPU scheduler's decision making when dealing with Intel IA64 chips with MultiThreading at a cost of slightly increased overhead in some places. If unsure say N here.


 * Option: PREEMPT
 * Kernel Versions: 2.6.15.6 ...
 * (on/off) Preemptible Kernel       help         This option reduces the latency of the kernel when reacting to         real-time or interactive events by allowing a low priority process to         be preempted even if it is in kernel mode executing a system call.         This allows applications to run more reliably even when the system is         under load.
 * Say Y here if you are building a kernel for a desktop, embedded        or real-time system.  Say N if you are unsure.


 * Option: Howto configure the Linux kernel/mm

_bool y
 * Option: ARCH_SELECT_MEMORY_MODEL
 * Kernel Versions: 2.6.15.6 ...

_bool y
 * Option: ARCH_DISCONTIGMEM_ENABLE
 * Kernel Versions: 2.6.15.6 ...
 * Say Y to support efficient handling of discontiguous physical memory, for architectures which are either NUMA (Non-Uniform Memory Access) or have huge holes in the physical address space for other reasons. See  for more.

_bool y
 * Option: ARCH_FLATMEM_ENABLE
 * Kernel Versions: 2.6.15.6 ...

_bool y
 * Option: ARCH_SPARSEMEM_ENABLE
 * Kernel Versions: 2.6.15.6 ...
 * depends on ARCH_DISCONTIGMEM_ENABLE

_bool y if (IA64_SGI_SN2 || IA64_GENERIC || IA64_HP_ZX1 || IA64_HP_ZX1_SWIOTLB)
 * Option: ARCH_DISCONTIGMEM_DEFAULT
 * Kernel Versions: 2.6.15.6 ...
 * depends on ARCH_DISCONTIGMEM_ENABLE


 * Option: NUMA
 * Kernel Versions: 2.6.15.6 ...
 * (on/off) NUMA support
 * depends on !IA64_HP_SIM && !FLATMEM
 * default y if IA64_SGI_SN2
 * Say Y to compile the kernel to support NUMA (Non-Uniform Memory Access). This option is for configuring high-end multiprocessor server systems.  If in doubt, say N.


 * VIRTUAL_MEM_MAP and FLAT_NODE_MEM_MAP are functionally equivalent.
 * VIRTUAL_MEM_MAP has been retained for historical reasons.


 * Option: VIRTUAL_MEM_MAP
 * Kernel Versions: 2.6.15.6 ...
 * (on/off) Virtual mem map
 * depends on !SPARSEMEM
 * default y if !IA64_HP_SIM
 * Say Y to compile the kernel with support for a virtual mem map. This code also only takes effect if a memory hole of greater than 1 Gb is found during boot. You must turn this option on if you require the DISCONTIGMEM option for your machine. If you are unsure, say Y.


 * Option: HOLES_IN_ZONE
 * Kernel Versions: 2.6.15.6 ...
 * (on/off)
 * default y if VIRTUAL_MEM_MAP

_bool y
 * Option: HAVE_ARCH_EARLY_PFN_TO_NID
 * Kernel Versions: 2.6.15.6 ...
 * depends on NEED_MULTIPLE_NODES


 * Option: IA32_SUPPORT
 * Kernel Versions: 2.6.15.6 ...
 * (on/off) Support for Linux/x86 binaries
 * IA-64 processors can execute IA-32 (X86) instructions. By saying Y here, the kernel will include IA-32 system call emulation support which makes it possible to transparently run IA-32 Linux binaries on an IA-64 Linux system. If in doubt, say Y.


 * Option: COMPAT
 * Kernel Versions: 2.6.15.6 ...
 * (on/off)
 * depends on IA32_SUPPORT
 * default y


 * Option: IA64_MCA_RECOVERY
 * Kernel Versions: 2.6.15.6 ...
 * (on/off/module) MCA recovery from errors other than TLB.


 * Option: PERFMON
 * Kernel Versions: 2.6.15.6 ...
 * (on/off) Performance monitor support
 * Selects whether support for the IA-64 performance monitor hardware is included in the kernel. This makes some kernel data-structures a little bigger and slows down execution a bit, but it is generally a good idea to turn this on.  If you're unsure, say Y.


 * Option: IA64_PALINFO
 * Kernel Versions: 2.6.15.6 ...
 * (on/off/module) /proc/pal support
 * If you say Y here, you are able to get PAL (Processor Abstraction Layer) information in /proc/pal. This contains useful information about the processors in your systems, such as cache and TLB sizes and the PAL firmware version in use.
 * To use this option, you have to ensure that the "/proc file system support" (CONFIG_PROC_FS) is enabled, too.


 * Option: Howto configure the Linux kernel/drivers/firmware


 * Option: Howto configure the Linux kernel/fs.binfmt"

Power management and ACPI

 * Option: Howto configure the Linux kernel/kernel/power


 * Option: Howto configure the Linux kernel/drivers/acpi

PM


 * Option: Howto configure the Linux kernel/arch/ia64/kernel/cpufreq

!IA64_HP_SIM

Bus options (PCI, PCMCIA)

 * Option: PCI
 * Kernel Versions: 2.6.15.6 ...
 * (on/off) PCI support
 * Real IA-64 machines all have PCI/PCI-X/PCI Express busses. Say Y here unless you are using a simulator without PCI support.


 * Option: PCI_DOMAINS
 * Kernel Versions: 2.6.15.6 ...
 * (on/off)
 * default PCI


 * Option: Howto configure the Linux kernel/drivers/pci


 * Option: Howto configure the Linux kernel/drivers/pci/hotplug


 * Option: Howto configure the Linux kernel/drivers/pcmcia


 * Option: Howto configure the Linux kernel/net


 * Option: Howto configure the Linux kernel/drivers


 * Option: Howto configure the Linux kernel/fs


 * Option: Howto configure the Linux kernel/lib


 * Use the generic interrupt handling code in kernel/irq/:
 * Use the generic interrupt handling code in kernel/irq/:


 * Option: GENERIC_HARDIRQS
 * Kernel Versions: 2.6.15.6 ...
 * (on/off)
 * default y


 * Option: GENERIC_IRQ_PROBE
 * Kernel Versions: 2.6.15.6 ...
 * (on/off)
 * default y


 * Option: GENERIC_PENDING_IRQ
 * Kernel Versions: 2.6.15.6 ...
 * (on/off)
 * depends on GENERIC_HARDIRQS && SMP
 * default y


 * Option: Howto configure the Linux kernel/arch/ia64/hp/sim

Instrumentation Support
depends on EXPERIMENTAL


 * Option: Howto configure the Linux kernel/arch/ia64/oprofile


 * Option: KPROBES
 * Kernel Versions: 2.6.15.6 ...
 * (on/off) Kprobes (EXPERIMENTAL)
 * Kprobes allows you to trap at almost any kernel address and execute a callback function. register_kprobe establishes a probepoint and specifies the callback.  Kprobes is useful for kernel debugging, non-intrusive instrumentation and testing. If in doubt, say "N".


 * Option: Howto configure the Linux kernel/arch/ia64.debug"


 * Option: Howto configure the Linux kernel/security


 * Option: Howto configure the Linux kernel/crypto

Linux Kernel Configuration