linux/arch/ia64/Kconfig
<<
>>
Prefs
   1#
   2# For a description of the syntax of this configuration file,
   3# see Documentation/kbuild/kconfig-language.txt.
   4#
   5
   6mainmenu "IA-64 Linux Kernel Configuration"
   7
   8source "init/Kconfig"
   9
  10source "kernel/Kconfig.freezer"
  11
  12menu "Processor type and features"
  13
  14config IA64
  15        bool
  16        select PCI if (!IA64_HP_SIM)
  17        select ACPI if (!IA64_HP_SIM)
  18        select PM if (!IA64_HP_SIM)
  19        select ARCH_SUPPORTS_MSI
  20        select HAVE_UNSTABLE_SCHED_CLOCK
  21        select HAVE_IDE
  22        select HAVE_OPROFILE
  23        select HAVE_KPROBES
  24        select HAVE_KRETPROBES
  25        select HAVE_FTRACE_MCOUNT_RECORD
  26        select HAVE_DYNAMIC_FTRACE if (!ITANIUM)
  27        select HAVE_FUNCTION_TRACER
  28        select HAVE_DMA_ATTRS
  29        select HAVE_KVM
  30        select HAVE_ARCH_TRACEHOOK
  31        select HAVE_DMA_API_DEBUG
  32        default y
  33        help
  34          The Itanium Processor Family is Intel's 64-bit successor to
  35          the 32-bit X86 line.  The IA-64 Linux project has a home
  36          page at <http://www.linuxia64.org/> and a mailing list at
  37          <linux-ia64@vger.kernel.org>.
  38
  39config 64BIT
  40        bool
  41        select ATA_NONSTANDARD if ATA
  42        default y
  43
  44config ZONE_DMA
  45        def_bool y
  46        depends on !IA64_SGI_SN2
  47
  48config QUICKLIST
  49        bool
  50        default y
  51
  52config MMU
  53        bool
  54        default y
  55
  56config SWIOTLB
  57       bool
  58
  59config IOMMU_HELPER
  60       bool
  61
  62config GENERIC_LOCKBREAK
  63        def_bool n
  64
  65config RWSEM_XCHGADD_ALGORITHM
  66        bool
  67        default y
  68
  69config HUGETLB_PAGE_SIZE_VARIABLE
  70        bool
  71        depends on HUGETLB_PAGE
  72        default y
  73
  74config GENERIC_FIND_NEXT_BIT
  75        bool
  76        default y
  77
  78config GENERIC_CALIBRATE_DELAY
  79        bool
  80        default y
  81
  82config GENERIC_TIME
  83        bool
  84        default y
  85
  86config GENERIC_TIME_VSYSCALL
  87        bool
  88        default y
  89
  90config HAVE_LEGACY_PER_CPU_AREA
  91        def_bool y
  92
  93config HAVE_SETUP_PER_CPU_AREA
  94        def_bool y
  95
  96config DMI
  97        bool
  98        default y
  99
 100config EFI
 101        bool
 102        default y
 103
 104config GENERIC_IOMAP
 105        bool
 106        default y
 107
 108config SCHED_OMIT_FRAME_POINTER
 109        bool
 110        default y
 111
 112config IA64_UNCACHED_ALLOCATOR
 113        bool
 114        select GENERIC_ALLOCATOR
 115
 116config ARCH_USES_PG_UNCACHED
 117        def_bool y
 118        depends on IA64_UNCACHED_ALLOCATOR
 119
 120config AUDIT_ARCH
 121        bool
 122        default y
 123
 124menuconfig PARAVIRT_GUEST
 125        bool "Paravirtualized guest support"
 126        help
 127          Say Y here to get to see options related to running Linux under
 128          various hypervisors.  This option alone does not add any kernel code.
 129
 130          If you say N, all options in this submenu will be skipped and disabled.
 131
 132if PARAVIRT_GUEST
 133
 134config PARAVIRT
 135        bool "Enable paravirtualization code"
 136        depends on PARAVIRT_GUEST
 137        default y
 138        bool
 139        default y
 140        help
 141          This changes the kernel so it can modify itself when it is run
 142          under a hypervisor, potentially improving performance significantly
 143          over full virtualization.  However, when run without a hypervisor
 144          the kernel is theoretically slower and slightly larger.
 145
 146
 147source "arch/ia64/xen/Kconfig"
 148
 149endif
 150
 151choice
 152        prompt "System type"
 153        default IA64_GENERIC
 154
 155config IA64_GENERIC
 156        bool "generic"
 157        select NUMA
 158        select ACPI_NUMA
 159        select SWIOTLB
 160        select PCI_MSI
 161        select DMAR
 162        help
 163          This selects the system type of your hardware.  A "generic" kernel
 164          will run on any supported IA-64 system.  However, if you configure
 165          a kernel for your specific system, it will be faster and smaller.
 166
 167          generic               For any supported IA-64 system
 168          DIG-compliant         For DIG ("Developer's Interface Guide") compliant systems
 169          DIG+Intel+IOMMU       For DIG systems with Intel IOMMU
 170          HP-zx1/sx1000         For HP systems
 171          HP-zx1/sx1000+swiotlb For HP systems with (broken) DMA-constrained devices.
 172          SGI-SN2               For SGI Altix systems
 173          SGI-UV                For SGI UV systems
 174          Ski-simulator         For the HP simulator <http://www.hpl.hp.com/research/linux/ski/>
 175          Xen-domU              For xen domU system
 176
 177          If you don't know what to do, choose "generic".
 178
 179config IA64_DIG
 180        bool "DIG-compliant"
 181        select SWIOTLB
 182
 183config IA64_DIG_VTD
 184        bool "DIG+Intel+IOMMU"
 185        select DMAR
 186        select PCI_MSI
 187
 188config IA64_HP_ZX1
 189        bool "HP-zx1/sx1000"
 190        help
 191          Build a kernel that runs on HP zx1 and sx1000 systems.  This adds
 192          support for the HP I/O MMU.
 193
 194config IA64_HP_ZX1_SWIOTLB
 195        bool "HP-zx1/sx1000 with software I/O TLB"
 196        select SWIOTLB
 197        help
 198          Build a kernel that runs on HP zx1 and sx1000 systems even when they
 199          have broken PCI devices which cannot DMA to full 32 bits.  Apart
 200          from support for the HP I/O MMU, this includes support for the software
 201          I/O TLB, which allows supporting the broken devices at the expense of
 202          wasting some kernel memory (about 2MB by default).
 203
 204config IA64_SGI_SN2
 205        bool "SGI-SN2"
 206        select NUMA
 207        select ACPI_NUMA
 208        help
 209          Selecting this option will optimize the kernel for use on sn2 based
 210          systems, but the resulting kernel binary will not run on other
 211          types of ia64 systems.  If you have an SGI Altix system, it's safe
 212          to select this option.  If in doubt, select ia64 generic support
 213          instead.
 214
 215config IA64_SGI_UV
 216        bool "SGI-UV"
 217        select NUMA
 218        select ACPI_NUMA
 219        select SWIOTLB
 220        help
 221          Selecting this option will optimize the kernel for use on UV based
 222          systems, but the resulting kernel binary will not run on other
 223          types of ia64 systems.  If you have an SGI UV system, it's safe
 224          to select this option.  If in doubt, select ia64 generic support
 225          instead.
 226
 227config IA64_HP_SIM
 228        bool "Ski-simulator"
 229        select SWIOTLB
 230
 231config IA64_XEN_GUEST
 232        bool "Xen guest"
 233        select SWIOTLB
 234        depends on XEN
 235        help
 236          Build a kernel that runs on Xen guest domain. At this moment only
 237          16KB page size in supported.
 238
 239endchoice
 240
 241choice
 242        prompt "Processor type"
 243        default ITANIUM
 244
 245config ITANIUM
 246        bool "Itanium"
 247        help
 248          Select your IA-64 processor type.  The default is Itanium.
 249          This choice is safe for all IA-64 systems, but may not perform
 250          optimally on systems with, say, Itanium 2 or newer processors.
 251
 252config MCKINLEY
 253        bool "Itanium 2"
 254        help
 255          Select this to configure for an Itanium 2 (McKinley) processor.
 256
 257endchoice
 258
 259choice
 260        prompt "Kernel page size"
 261        default IA64_PAGE_SIZE_16KB
 262
 263config IA64_PAGE_SIZE_4KB
 264        bool "4KB"
 265        help
 266          This lets you select the page size of the kernel.  For best IA-64
 267          performance, a page size of 8KB or 16KB is recommended.  For best
 268          IA-32 compatibility, a page size of 4KB should be selected (the vast
 269          majority of IA-32 binaries work perfectly fine with a larger page
 270          size).  For Itanium 2 or newer systems, a page size of 64KB can also
 271          be selected.
 272
 273          4KB                For best IA-32 compatibility
 274          8KB                For best IA-64 performance
 275          16KB               For best IA-64 performance
 276          64KB               Requires Itanium 2 or newer processor.
 277
 278          If you don't know what to do, choose 16KB.
 279
 280config IA64_PAGE_SIZE_8KB
 281        bool "8KB"
 282
 283config IA64_PAGE_SIZE_16KB
 284        bool "16KB"
 285
 286config IA64_PAGE_SIZE_64KB
 287        depends on !ITANIUM
 288        bool "64KB"
 289
 290endchoice
 291
 292choice
 293        prompt "Page Table Levels"
 294        default PGTABLE_3
 295
 296config PGTABLE_3
 297        bool "3 Levels"
 298
 299config PGTABLE_4
 300        depends on !IA64_PAGE_SIZE_64KB
 301        bool "4 Levels"
 302
 303endchoice
 304
 305if IA64_HP_SIM
 306config HZ
 307        default 32
 308endif
 309
 310if !IA64_HP_SIM
 311source kernel/Kconfig.hz
 312endif
 313
 314config IA64_BRL_EMU
 315        bool
 316        depends on ITANIUM
 317        default y
 318
 319# align cache-sensitive data to 128 bytes
 320config IA64_L1_CACHE_SHIFT
 321        int
 322        default "7" if MCKINLEY
 323        default "6" if ITANIUM
 324
 325config IA64_CYCLONE
 326        bool "Cyclone (EXA) Time Source support"
 327        help
 328          Say Y here to enable support for IBM EXA Cyclone time source.
 329          If you're unsure, answer N.
 330
 331config IOSAPIC
 332        bool
 333        depends on !IA64_HP_SIM
 334        default y
 335
 336config FORCE_MAX_ZONEORDER
 337        int "MAX_ORDER (11 - 17)"  if !HUGETLB_PAGE
 338        range 11 17  if !HUGETLB_PAGE
 339        default "17" if HUGETLB_PAGE
 340        default "11"
 341
 342config VIRT_CPU_ACCOUNTING
 343        bool "Deterministic task and CPU time accounting"
 344        default n
 345        help
 346          Select this option to enable more accurate task and CPU time
 347          accounting.  This is done by reading a CPU counter on each
 348          kernel entry and exit and on transitions within the kernel
 349          between system, softirq and hardirq state, so there is a
 350          small performance impact.
 351          If in doubt, say N here.
 352
 353config SMP
 354        bool "Symmetric multi-processing support"
 355        select USE_GENERIC_SMP_HELPERS
 356        help
 357          This enables support for systems with more than one CPU. If you have
 358          a system with only one CPU, say N.  If you have a system with more
 359          than one CPU, say Y.
 360
 361          If you say N here, the kernel will run on single and multiprocessor
 362          systems, but will use only one CPU of a multiprocessor system.  If
 363          you say Y here, the kernel will run on many, but not all,
 364          single processor systems.  On a single processor system, the kernel
 365          will run faster if you say N here.
 366
 367          See also the SMP-HOWTO available at
 368          <http://www.tldp.org/docs.html#howto>.
 369
 370          If you don't know what to do here, say N.
 371
 372config NR_CPUS
 373        int "Maximum number of CPUs (2-4096)"
 374        range 2 4096
 375        depends on SMP
 376        default "4096"
 377        help
 378          You should set this to the number of CPUs in your system, but
 379          keep in mind that a kernel compiled for, e.g., 2 CPUs will boot but
 380          only use 2 CPUs on a >2 CPU system.  Setting this to a value larger
 381          than 64 will cause the use of a CPU mask array, causing a small
 382          performance hit.
 383
 384config HOTPLUG_CPU
 385        bool "Support for hot-pluggable CPUs (EXPERIMENTAL)"
 386        depends on SMP && EXPERIMENTAL
 387        select HOTPLUG
 388        default n
 389        ---help---
 390          Say Y here to experiment with turning CPUs off and on.  CPUs
 391          can be controlled through /sys/devices/system/cpu/cpu#.
 392          Say N if you want to disable CPU hotplug.
 393
 394config ARCH_ENABLE_MEMORY_HOTPLUG
 395        def_bool y
 396
 397config ARCH_ENABLE_MEMORY_HOTREMOVE
 398        def_bool y
 399
 400config SCHED_SMT
 401        bool "SMT scheduler support"
 402        depends on SMP
 403        help
 404          Improves the CPU scheduler's decision making when dealing with
 405          Intel IA64 chips with MultiThreading at a cost of slightly increased
 406          overhead in some places. If unsure say N here.
 407
 408config PERMIT_BSP_REMOVE
 409        bool "Support removal of Bootstrap Processor"
 410        depends on HOTPLUG_CPU
 411        default n
 412        ---help---
 413        Say Y here if your platform SAL will support removal of BSP with HOTPLUG_CPU
 414        support. 
 415
 416config FORCE_CPEI_RETARGET
 417        bool "Force assumption that CPEI can be re-targetted"
 418        depends on PERMIT_BSP_REMOVE
 419        default n
 420        ---help---
 421        Say Y if you need to force the assumption that CPEI can be re-targetted to
 422        any cpu in the system. This hint is available via ACPI 3.0 specifications.
 423        Tiger4 systems are capable of re-directing CPEI to any CPU other than BSP.
 424        This option it useful to enable this feature on older BIOS's as well.
 425        You can also enable this by using boot command line option force_cpei=1.
 426
 427source "kernel/Kconfig.preempt"
 428
 429source "mm/Kconfig"
 430
 431config ARCH_SELECT_MEMORY_MODEL
 432        def_bool y
 433
 434config ARCH_DISCONTIGMEM_ENABLE
 435        def_bool y
 436        help
 437          Say Y to support efficient handling of discontiguous physical memory,
 438          for architectures which are either NUMA (Non-Uniform Memory Access)
 439          or have huge holes in the physical address space for other reasons.
 440          See <file:Documentation/vm/numa> for more.
 441
 442config ARCH_FLATMEM_ENABLE
 443        def_bool y
 444
 445config ARCH_SPARSEMEM_ENABLE
 446        def_bool y
 447        depends on ARCH_DISCONTIGMEM_ENABLE
 448        select SPARSEMEM_VMEMMAP_ENABLE
 449
 450config ARCH_DISCONTIGMEM_DEFAULT
 451        def_bool y if (IA64_SGI_SN2 || IA64_GENERIC || IA64_HP_ZX1 || IA64_HP_ZX1_SWIOTLB)
 452        depends on ARCH_DISCONTIGMEM_ENABLE
 453
 454config NUMA
 455        bool "NUMA support"
 456        depends on !IA64_HP_SIM && !FLATMEM
 457        default y if IA64_SGI_SN2
 458        select ACPI_NUMA if ACPI
 459        help
 460          Say Y to compile the kernel to support NUMA (Non-Uniform Memory
 461          Access).  This option is for configuring high-end multiprocessor
 462          server systems.  If in doubt, say N.
 463
 464config NODES_SHIFT
 465        int "Max num nodes shift(3-10)"
 466        range 3 10
 467        default "10"
 468        depends on NEED_MULTIPLE_NODES
 469        help
 470          This option specifies the maximum number of nodes in your SSI system.
 471          MAX_NUMNODES will be 2^(This value).
 472          If in doubt, use the default.
 473
 474config ARCH_POPULATES_NODE_MAP
 475        def_bool y
 476
 477# VIRTUAL_MEM_MAP and FLAT_NODE_MEM_MAP are functionally equivalent.
 478# VIRTUAL_MEM_MAP has been retained for historical reasons.
 479config VIRTUAL_MEM_MAP
 480        bool "Virtual mem map"
 481        depends on !SPARSEMEM
 482        default y if !IA64_HP_SIM
 483        help
 484          Say Y to compile the kernel with support for a virtual mem map.
 485          This code also only takes effect if a memory hole of greater than
 486          1 Gb is found during boot.  You must turn this option on if you
 487          require the DISCONTIGMEM option for your machine. If you are
 488          unsure, say Y.
 489
 490config HOLES_IN_ZONE
 491        bool
 492        default y if VIRTUAL_MEM_MAP
 493
 494config HAVE_ARCH_EARLY_PFN_TO_NID
 495        def_bool NUMA && SPARSEMEM
 496
 497config HAVE_ARCH_NODEDATA_EXTENSION
 498        def_bool y
 499        depends on NUMA
 500
 501config ARCH_PROC_KCORE_TEXT
 502        def_bool y
 503        depends on PROC_KCORE
 504
 505config IA32_SUPPORT
 506        bool "Support for Linux/x86 binaries"
 507        help
 508          IA-64 processors can execute IA-32 (X86) instructions.  By
 509          saying Y here, the kernel will include IA-32 system call
 510          emulation support which makes it possible to transparently
 511          run IA-32 Linux binaries on an IA-64 Linux system.
 512          If in doubt, say Y.
 513
 514config COMPAT
 515        bool
 516        depends on IA32_SUPPORT
 517        default y
 518
 519config COMPAT_FOR_U64_ALIGNMENT
 520        def_bool COMPAT
 521
 522config IA64_MCA_RECOVERY
 523        tristate "MCA recovery from errors other than TLB."
 524
 525config PERFMON
 526        bool "Performance monitor support"
 527        help
 528          Selects whether support for the IA-64 performance monitor hardware
 529          is included in the kernel.  This makes some kernel data-structures a
 530          little bigger and slows down execution a bit, but it is generally
 531          a good idea to turn this on.  If you're unsure, say Y.
 532
 533config IA64_PALINFO
 534        tristate "/proc/pal support"
 535        help
 536          If you say Y here, you are able to get PAL (Processor Abstraction
 537          Layer) information in /proc/pal.  This contains useful information
 538          about the processors in your systems, such as cache and TLB sizes
 539          and the PAL firmware version in use.
 540
 541          To use this option, you have to ensure that the "/proc file system
 542          support" (CONFIG_PROC_FS) is enabled, too.
 543
 544config IA64_MC_ERR_INJECT
 545        tristate "MC error injection support"
 546        help
 547          Adds support for MC error injection. If enabled, the kernel 
 548          will provide a sysfs interface for user applications to
 549          call MC error injection PAL procedures to inject various errors.
 550          This is a useful tool for MCA testing.
 551
 552          If you're unsure, do not select this option.
 553
 554config SGI_SN
 555        def_bool y if (IA64_SGI_SN2 || IA64_GENERIC)
 556
 557config IA64_ESI
 558        bool "ESI (Extensible SAL Interface) support"
 559        help
 560          If you say Y here, support is built into the kernel to
 561          make ESI calls.  ESI calls are used to support vendor-specific
 562          firmware extensions, such as the ability to inject memory-errors
 563          for test-purposes.  If you're unsure, say N.
 564
 565config IA64_HP_AML_NFW
 566        bool "Support ACPI AML calls to native firmware"
 567        help
 568          This driver installs a global ACPI Operation Region handler for
 569          region 0xA1.  AML methods can use this OpRegion to call arbitrary
 570          native firmware functions.  The driver installs the OpRegion
 571          handler if there is an HPQ5001 device or if the user supplies
 572          the "force" module parameter, e.g., with the "aml_nfw.force"
 573          kernel command line option.
 574
 575source "drivers/sn/Kconfig"
 576
 577config KEXEC
 578        bool "kexec system call (EXPERIMENTAL)"
 579        depends on EXPERIMENTAL && !IA64_HP_SIM && (!SMP || HOTPLUG_CPU)
 580        help
 581          kexec is a system call that implements the ability to shutdown your
 582          current kernel, and to start another kernel.  It is like a reboot
 583          but it is independent of the system firmware.   And like a reboot
 584          you can start any kernel with it, not just Linux.
 585
 586          The name comes from the similarity to the exec system call.
 587
 588          It is an ongoing process to be certain the hardware in a machine
 589          is properly shutdown, so do not be surprised if this code does not
 590          initially work for you.  It may help to enable device hotplugging
 591          support.  As of this writing the exact hardware interface is
 592          strongly in flux, so no good recommendation can be made.
 593
 594config CRASH_DUMP
 595          bool "kernel crash dumps"
 596          depends on IA64_MCA_RECOVERY && !IA64_HP_SIM && (!SMP || HOTPLUG_CPU)
 597          help
 598            Generate crash dump after being started by kexec.
 599
 600source "drivers/firmware/Kconfig"
 601
 602source "fs/Kconfig.binfmt"
 603
 604endmenu
 605
 606menu "Power management and ACPI options"
 607
 608source "kernel/power/Kconfig"
 609
 610source "drivers/acpi/Kconfig"
 611
 612if PM
 613
 614source "arch/ia64/kernel/cpufreq/Kconfig"
 615
 616endif
 617
 618endmenu
 619
 620if !IA64_HP_SIM
 621
 622menu "Bus options (PCI, PCMCIA)"
 623
 624config PCI
 625        bool "PCI support"
 626        help
 627          Real IA-64 machines all have PCI/PCI-X/PCI Express busses.  Say Y
 628          here unless you are using a simulator without PCI support.
 629
 630config PCI_DOMAINS
 631        def_bool PCI
 632
 633config PCI_SYSCALL
 634        def_bool PCI
 635
 636source "drivers/pci/pcie/Kconfig"
 637
 638source "drivers/pci/Kconfig"
 639
 640source "drivers/pci/hotplug/Kconfig"
 641
 642source "drivers/pcmcia/Kconfig"
 643
 644config DMAR
 645        bool "Support for DMA Remapping Devices (EXPERIMENTAL)"
 646        depends on IA64_GENERIC && ACPI && EXPERIMENTAL
 647        help
 648          DMA remapping (DMAR) devices support enables independent address
 649          translations for Direct Memory Access (DMA) from devices.
 650          These DMA remapping devices are reported via ACPI tables
 651          and include PCI device scope covered by these DMA
 652          remapping devices.
 653
 654config DMAR_DEFAULT_ON
 655        def_bool y
 656        prompt "Enable DMA Remapping Devices by default"
 657        depends on DMAR
 658        help
 659          Selecting this option will enable a DMAR device at boot time if
 660          one is found. If this option is not selected, DMAR support can
 661          be enabled by passing intel_iommu=on to the kernel. It is
 662          recommended you say N here while the DMAR code remains
 663          experimental.
 664
 665endmenu
 666
 667endif
 668
 669source "net/Kconfig"
 670
 671source "drivers/Kconfig"
 672
 673source "arch/ia64/hp/sim/Kconfig"
 674
 675config MSPEC
 676        tristate "Memory special operations driver"
 677        depends on IA64
 678        select IA64_UNCACHED_ALLOCATOR
 679        help
 680          If you have an ia64 and you want to enable memory special
 681          operations support (formerly known as fetchop), say Y here,
 682          otherwise say N.
 683
 684source "fs/Kconfig"
 685
 686source "arch/ia64/Kconfig.debug"
 687
 688source "security/Kconfig"
 689
 690source "crypto/Kconfig"
 691
 692source "arch/ia64/kvm/Kconfig"
 693
 694source "lib/Kconfig"
 695
 696#
 697# Use the generic interrupt handling code in kernel/irq/:
 698#
 699config GENERIC_HARDIRQS
 700        bool
 701        default y
 702
 703config GENERIC_IRQ_PROBE
 704        bool
 705        default y
 706
 707config GENERIC_PENDING_IRQ
 708        bool
 709        depends on GENERIC_HARDIRQS && SMP
 710        default y
 711
 712config IRQ_PER_CPU
 713        bool
 714        default y
 715
 716config IOMMU_HELPER
 717        def_bool (IA64_HP_ZX1 || IA64_HP_ZX1_SWIOTLB || IA64_GENERIC || SWIOTLB)
 718
 719config IOMMU_API
 720        def_bool (DMAR)
 721