| # SPDX-License-Identifier: GPL-2.0 | |
| config PGTABLE_LEVELS | |
| int "Page Table Levels" if !IA64_PAGE_SIZE_64KB | |
| range 3 4 if !IA64_PAGE_SIZE_64KB | |
| default 3 | |
| menu "Processor type and features" | |
| config IA64 | |
| bool | |
| select ARCH_MIGHT_HAVE_PC_PARPORT | |
| select ARCH_MIGHT_HAVE_PC_SERIO | |
| select PCI if (!IA64_HP_SIM) | |
| select ACPI if (!IA64_HP_SIM) | |
| select ARCH_SUPPORTS_ACPI if (!IA64_HP_SIM) | |
| select ACPI_SYSTEM_POWER_STATES_SUPPORT if ACPI | |
| select ARCH_MIGHT_HAVE_ACPI_PDC if ACPI | |
| select HAVE_UNSTABLE_SCHED_CLOCK | |
| select HAVE_EXIT_THREAD | |
| select HAVE_IDE | |
| select HAVE_OPROFILE | |
| select HAVE_KPROBES | |
| select HAVE_KRETPROBES | |
| select HAVE_FTRACE_MCOUNT_RECORD | |
| select HAVE_DYNAMIC_FTRACE if (!ITANIUM) | |
| select HAVE_FUNCTION_TRACER | |
| select TTY | |
| select HAVE_ARCH_TRACEHOOK | |
| select HAVE_MEMBLOCK | |
| select HAVE_MEMBLOCK_NODE_MAP | |
| select NO_BOOTMEM | |
| select HAVE_VIRT_CPU_ACCOUNTING | |
| select ARCH_HAS_DMA_MARK_CLEAN | |
| select ARCH_HAS_SG_CHAIN | |
| select VIRT_TO_BUS | |
| select ARCH_DISCARD_MEMBLOCK | |
| select GENERIC_IRQ_PROBE | |
| select GENERIC_PENDING_IRQ if SMP | |
| select GENERIC_IRQ_SHOW | |
| select GENERIC_IRQ_LEGACY | |
| select ARCH_HAVE_NMI_SAFE_CMPXCHG | |
| select GENERIC_IOMAP | |
| select GENERIC_SMP_IDLE_THREAD | |
| select ARCH_TASK_STRUCT_ON_STACK | |
| select ARCH_TASK_STRUCT_ALLOCATOR | |
| select ARCH_THREAD_STACK_ALLOCATOR | |
| select ARCH_CLOCKSOURCE_DATA | |
| select GENERIC_TIME_VSYSCALL | |
| select SYSCTL_ARCH_UNALIGN_NO_WARN | |
| select HAVE_MOD_ARCH_SPECIFIC | |
| select MODULES_USE_ELF_RELA | |
| select ARCH_USE_CMPXCHG_LOCKREF | |
| select HAVE_ARCH_AUDITSYSCALL | |
| select NEED_DMA_MAP_STATE | |
| select NEED_SG_DMA_LENGTH | |
| default y | |
| help | |
| 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 <http://www.linuxia64.org/> and a mailing list at | |
| <linux-ia64@vger.kernel.org>. | |
| config 64BIT | |
| bool | |
| select ATA_NONSTANDARD if ATA | |
| default y | |
| config ZONE_DMA32 | |
| def_bool y | |
| depends on !IA64_SGI_SN2 | |
| config QUICKLIST | |
| bool | |
| default y | |
| config MMU | |
| bool | |
| default y | |
| config STACKTRACE_SUPPORT | |
| def_bool y | |
| config GENERIC_LOCKBREAK | |
| def_bool n | |
| config RWSEM_XCHGADD_ALGORITHM | |
| bool | |
| default y | |
| config HUGETLB_PAGE_SIZE_VARIABLE | |
| bool | |
| depends on HUGETLB_PAGE | |
| default y | |
| config GENERIC_CALIBRATE_DELAY | |
| bool | |
| default y | |
| config HAVE_SETUP_PER_CPU_AREA | |
| def_bool y | |
| config DMI | |
| bool | |
| default y | |
| select DMI_SCAN_MACHINE_NON_EFI_FALLBACK | |
| config EFI | |
| bool | |
| select UCS2_STRING | |
| default y | |
| config SCHED_OMIT_FRAME_POINTER | |
| bool | |
| default y | |
| config IA64_UNCACHED_ALLOCATOR | |
| bool | |
| select GENERIC_ALLOCATOR | |
| config ARCH_USES_PG_UNCACHED | |
| def_bool y | |
| depends on IA64_UNCACHED_ALLOCATOR | |
| config AUDIT_ARCH | |
| bool | |
| default y | |
| choice | |
| prompt "System type" | |
| default IA64_GENERIC | |
| config IA64_GENERIC | |
| bool "generic" | |
| select NUMA | |
| select ACPI_NUMA | |
| select SWIOTLB | |
| select PCI_MSI | |
| help | |
| 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. | |
| generic For any supported IA-64 system | |
| DIG-compliant For DIG ("Developer's Interface Guide") compliant systems | |
| DIG+Intel+IOMMU For DIG systems with Intel IOMMU | |
| HP-zx1/sx1000 For HP systems | |
| HP-zx1/sx1000+swiotlb For HP systems with (broken) DMA-constrained devices. | |
| SGI-SN2 For SGI Altix systems | |
| SGI-UV For SGI UV systems | |
| Ski-simulator For the HP simulator <http://www.hpl.hp.com/research/linux/ski/> | |
| If you don't know what to do, choose "generic". | |
| config IA64_DIG | |
| bool "DIG-compliant" | |
| select SWIOTLB | |
| config IA64_DIG_VTD | |
| bool "DIG+Intel+IOMMU" | |
| select INTEL_IOMMU | |
| select PCI_MSI | |
| config IA64_HP_ZX1 | |
| bool "HP-zx1/sx1000" | |
| help | |
| Build a kernel that runs on HP zx1 and sx1000 systems. This adds | |
| support for the HP I/O MMU. | |
| config IA64_HP_ZX1_SWIOTLB | |
| bool "HP-zx1/sx1000 with software I/O TLB" | |
| select SWIOTLB | |
| help | |
| 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). | |
| config IA64_SGI_SN2 | |
| bool "SGI-SN2" | |
| select NUMA | |
| select ACPI_NUMA | |
| help | |
| 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. | |
| config IA64_SGI_UV | |
| bool "SGI-UV" | |
| select NUMA | |
| select ACPI_NUMA | |
| select SWIOTLB | |
| help | |
| Selecting this option will optimize the kernel for use on UV based | |
| systems, but the resulting kernel binary will not run on other | |
| types of ia64 systems. If you have an SGI UV system, it's safe | |
| to select this option. If in doubt, select ia64 generic support | |
| instead. | |
| config IA64_HP_SIM | |
| bool "Ski-simulator" | |
| select SWIOTLB | |
| depends on !PM | |
| endchoice | |
| choice | |
| prompt "Processor type" | |
| default ITANIUM | |
| config ITANIUM | |
| bool "Itanium" | |
| help | |
| 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. | |
| config MCKINLEY | |
| bool "Itanium 2" | |
| help | |
| Select this to configure for an Itanium 2 (McKinley) processor. | |
| endchoice | |
| choice | |
| prompt "Kernel page size" | |
| default IA64_PAGE_SIZE_16KB | |
| config IA64_PAGE_SIZE_4KB | |
| bool "4KB" | |
| help | |
| 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. | |
| config IA64_PAGE_SIZE_8KB | |
| bool "8KB" | |
| config IA64_PAGE_SIZE_16KB | |
| bool "16KB" | |
| config IA64_PAGE_SIZE_64KB | |
| depends on !ITANIUM | |
| bool "64KB" | |
| endchoice | |
| if IA64_HP_SIM | |
| config HZ | |
| default 32 | |
| endif | |
| if !IA64_HP_SIM | |
| source kernel/Kconfig.hz | |
| endif | |
| config IA64_BRL_EMU | |
| bool | |
| depends on ITANIUM | |
| default y | |
| # align cache-sensitive data to 128 bytes | |
| config IA64_L1_CACHE_SHIFT | |
| int | |
| default "7" if MCKINLEY | |
| default "6" if ITANIUM | |
| config IA64_CYCLONE | |
| bool "Cyclone (EXA) Time Source support" | |
| help | |
| Say Y here to enable support for IBM EXA Cyclone time source. | |
| If you're unsure, answer N. | |
| config IOSAPIC | |
| bool | |
| depends on !IA64_HP_SIM | |
| default y | |
| config FORCE_MAX_ZONEORDER | |
| int "MAX_ORDER (11 - 17)" if !HUGETLB_PAGE | |
| range 11 17 if !HUGETLB_PAGE | |
| default "17" if HUGETLB_PAGE | |
| default "11" | |
| config SMP | |
| bool "Symmetric multi-processing support" | |
| help | |
| 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 SMP-HOWTO available at | |
| <http://www.tldp.org/docs.html#howto>. | |
| If you don't know what to do here, say N. | |
| config NR_CPUS | |
| int "Maximum number of CPUs (2-4096)" | |
| range 2 4096 | |
| depends on SMP | |
| default "4096" | |
| help | |
| 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. | |
| config HOTPLUG_CPU | |
| bool "Support for hot-pluggable CPUs" | |
| depends on SMP | |
| default n | |
| ---help--- | |
| 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. | |
| config ARCH_ENABLE_MEMORY_HOTPLUG | |
| def_bool y | |
| config ARCH_ENABLE_MEMORY_HOTREMOVE | |
| def_bool y | |
| config SCHED_SMT | |
| bool "SMT scheduler support" | |
| depends on SMP | |
| help | |
| 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. | |
| config PERMIT_BSP_REMOVE | |
| bool "Support removal of Bootstrap Processor" | |
| depends on HOTPLUG_CPU | |
| default n | |
| ---help--- | |
| Say Y here if your platform SAL will support removal of BSP with HOTPLUG_CPU | |
| support. | |
| config FORCE_CPEI_RETARGET | |
| bool "Force assumption that CPEI can be re-targeted" | |
| depends on PERMIT_BSP_REMOVE | |
| default n | |
| ---help--- | |
| Say Y if you need to force the assumption that CPEI can be re-targeted to | |
| any cpu in the system. This hint is available via ACPI 3.0 specifications. | |
| Tiger4 systems are capable of re-directing CPEI to any CPU other than BSP. | |
| This option it useful to enable this feature on older BIOS's as well. | |
| You can also enable this by using boot command line option force_cpei=1. | |
| config ARCH_SELECT_MEMORY_MODEL | |
| def_bool y | |
| config ARCH_DISCONTIGMEM_ENABLE | |
| def_bool y | |
| help | |
| 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 <file:Documentation/vm/numa.rst> for more. | |
| config ARCH_FLATMEM_ENABLE | |
| def_bool y | |
| config ARCH_SPARSEMEM_ENABLE | |
| def_bool y | |
| depends on ARCH_DISCONTIGMEM_ENABLE | |
| select SPARSEMEM_VMEMMAP_ENABLE | |
| config ARCH_DISCONTIGMEM_DEFAULT | |
| def_bool y if (IA64_SGI_SN2 || IA64_GENERIC || IA64_HP_ZX1 || IA64_HP_ZX1_SWIOTLB) | |
| depends on ARCH_DISCONTIGMEM_ENABLE | |
| config NUMA | |
| bool "NUMA support" | |
| depends on !IA64_HP_SIM && !FLATMEM | |
| default y if IA64_SGI_SN2 | |
| select ACPI_NUMA if ACPI | |
| help | |
| 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. | |
| config NODES_SHIFT | |
| int "Max num nodes shift(3-10)" | |
| range 3 10 | |
| default "10" | |
| depends on NEED_MULTIPLE_NODES | |
| help | |
| This option specifies the maximum number of nodes in your SSI system. | |
| MAX_NUMNODES will be 2^(This value). | |
| If in doubt, use the default. | |
| # VIRTUAL_MEM_MAP and FLAT_NODE_MEM_MAP are functionally equivalent. | |
| # VIRTUAL_MEM_MAP has been retained for historical reasons. | |
| config VIRTUAL_MEM_MAP | |
| bool "Virtual mem map" | |
| depends on !SPARSEMEM | |
| default y if !IA64_HP_SIM | |
| help | |
| 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. | |
| config HOLES_IN_ZONE | |
| bool | |
| default y if VIRTUAL_MEM_MAP | |
| config HAVE_ARCH_EARLY_PFN_TO_NID | |
| def_bool NUMA && SPARSEMEM | |
| config HAVE_ARCH_NODEDATA_EXTENSION | |
| def_bool y | |
| depends on NUMA | |
| config USE_PERCPU_NUMA_NODE_ID | |
| def_bool y | |
| depends on NUMA | |
| config HAVE_MEMORYLESS_NODES | |
| def_bool NUMA | |
| config ARCH_PROC_KCORE_TEXT | |
| def_bool y | |
| depends on PROC_KCORE | |
| config IA64_MCA_RECOVERY | |
| tristate "MCA recovery from errors other than TLB." | |
| config PERFMON | |
| bool "Performance monitor support" | |
| depends on BROKEN | |
| help | |
| 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. | |
| config IA64_PALINFO | |
| tristate "/proc/pal support" | |
| help | |
| 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. | |
| config IA64_MC_ERR_INJECT | |
| tristate "MC error injection support" | |
| help | |
| Adds support for MC error injection. If enabled, the kernel | |
| will provide a sysfs interface for user applications to | |
| call MC error injection PAL procedures to inject various errors. | |
| This is a useful tool for MCA testing. | |
| If you're unsure, do not select this option. | |
| config SGI_SN | |
| def_bool y if (IA64_SGI_SN2 || IA64_GENERIC) | |
| config IA64_ESI | |
| bool "ESI (Extensible SAL Interface) support" | |
| help | |
| If you say Y here, support is built into the kernel to | |
| make ESI calls. ESI calls are used to support vendor-specific | |
| firmware extensions, such as the ability to inject memory-errors | |
| for test-purposes. If you're unsure, say N. | |
| config IA64_HP_AML_NFW | |
| bool "Support ACPI AML calls to native firmware" | |
| help | |
| This driver installs a global ACPI Operation Region handler for | |
| region 0xA1. AML methods can use this OpRegion to call arbitrary | |
| native firmware functions. The driver installs the OpRegion | |
| handler if there is an HPQ5001 device or if the user supplies | |
| the "force" module parameter, e.g., with the "aml_nfw.force" | |
| kernel command line option. | |
| source "drivers/sn/Kconfig" | |
| config KEXEC | |
| bool "kexec system call" | |
| depends on !IA64_HP_SIM && (!SMP || HOTPLUG_CPU) | |
| select KEXEC_CORE | |
| help | |
| kexec is a system call that implements the ability to shutdown your | |
| current kernel, and to start another kernel. It is like a reboot | |
| but it is independent of the system firmware. And like a reboot | |
| you can start any kernel with it, not just Linux. | |
| The name comes from the similarity to the exec system call. | |
| It is an ongoing process to be certain the hardware in a machine | |
| is properly shutdown, so do not be surprised if this code does not | |
| initially work for you. As of this writing the exact hardware | |
| interface is strongly in flux, so no good recommendation can be | |
| made. | |
| config CRASH_DUMP | |
| bool "kernel crash dumps" | |
| depends on IA64_MCA_RECOVERY && !IA64_HP_SIM && (!SMP || HOTPLUG_CPU) | |
| help | |
| Generate crash dump after being started by kexec. | |
| source "drivers/firmware/Kconfig" | |
| endmenu | |
| menu "Power management and ACPI options" | |
| source "kernel/power/Kconfig" | |
| source "drivers/acpi/Kconfig" | |
| if PM | |
| menu "CPU Frequency scaling" | |
| source "drivers/cpufreq/Kconfig" | |
| endmenu | |
| endif | |
| endmenu | |
| if !IA64_HP_SIM | |
| menu "Bus options (PCI, PCMCIA)" | |
| config PCI | |
| bool "PCI support" | |
| help | |
| Real IA-64 machines all have PCI/PCI-X/PCI Express busses. Say Y | |
| here unless you are using a simulator without PCI support. | |
| config PCI_DOMAINS | |
| def_bool PCI | |
| config PCI_SYSCALL | |
| def_bool PCI | |
| source "drivers/pci/Kconfig" | |
| source "drivers/pcmcia/Kconfig" | |
| endmenu | |
| endif | |
| source "arch/ia64/hp/sim/Kconfig" | |
| config MSPEC | |
| tristate "Memory special operations driver" | |
| depends on IA64 | |
| select IA64_UNCACHED_ALLOCATOR | |
| help | |
| If you have an ia64 and you want to enable memory special | |
| operations support (formerly known as fetchop), say Y here, | |
| otherwise say N. |