1# SPDX-License-Identifier: GPL-2.0 2config PGTABLE_LEVELS 3 int "Page Table Levels" if !IA64_PAGE_SIZE_64KB 4 range 3 4 if !IA64_PAGE_SIZE_64KB 5 default 3 6 7menu "Processor type and features" 8 9config IA64 10 bool 11 select ARCH_HAS_DMA_MARK_CLEAN 12 select ARCH_HAS_STRNCPY_FROM_USER 13 select ARCH_HAS_STRNLEN_USER 14 select ARCH_MIGHT_HAVE_PC_PARPORT 15 select ARCH_MIGHT_HAVE_PC_SERIO 16 select ACPI 17 select ACPI_NUMA if NUMA 18 select ARCH_ENABLE_MEMORY_HOTPLUG 19 select ARCH_ENABLE_MEMORY_HOTREMOVE 20 select ARCH_SUPPORTS_ACPI 21 select ACPI_SYSTEM_POWER_STATES_SUPPORT if ACPI 22 select ARCH_MIGHT_HAVE_ACPI_PDC if ACPI 23 select FORCE_PCI 24 select PCI_DOMAINS if PCI 25 select PCI_MSI 26 select PCI_SYSCALL if PCI 27 select HAVE_ASM_MODVERSIONS 28 select HAVE_UNSTABLE_SCHED_CLOCK 29 select HAVE_EXIT_THREAD 30 select HAVE_KPROBES 31 select HAVE_KRETPROBES 32 select HAVE_FTRACE_MCOUNT_RECORD 33 select HAVE_DYNAMIC_FTRACE if (!ITANIUM) 34 select HAVE_FUNCTION_TRACER 35 select HAVE_SETUP_PER_CPU_AREA 36 select TTY 37 select HAVE_ARCH_TRACEHOOK 38 select HAVE_VIRT_CPU_ACCOUNTING 39 select HUGETLB_PAGE_SIZE_VARIABLE if HUGETLB_PAGE 40 select VIRT_TO_BUS 41 select GENERIC_IRQ_PROBE 42 select GENERIC_PENDING_IRQ if SMP 43 select GENERIC_IRQ_SHOW 44 select GENERIC_IRQ_LEGACY 45 select ARCH_HAVE_NMI_SAFE_CMPXCHG 46 select GENERIC_IOMAP 47 select GENERIC_SMP_IDLE_THREAD 48 select ARCH_TASK_STRUCT_ON_STACK 49 select ARCH_TASK_STRUCT_ALLOCATOR 50 select ARCH_THREAD_STACK_ALLOCATOR 51 select ARCH_CLOCKSOURCE_DATA 52 select GENERIC_TIME_VSYSCALL 53 select LEGACY_TIMER_TICK 54 select SWIOTLB 55 select SYSCTL_ARCH_UNALIGN_NO_WARN 56 select HAVE_MOD_ARCH_SPECIFIC 57 select MODULES_USE_ELF_RELA 58 select ARCH_USE_CMPXCHG_LOCKREF 59 select HAVE_ARCH_AUDITSYSCALL 60 select NEED_DMA_MAP_STATE 61 select NEED_SG_DMA_LENGTH 62 select NUMA if !FLATMEM 63 select PCI_MSI_ARCH_FALLBACKS if PCI_MSI 64 select ZONE_DMA32 65 default y 66 help 67 The Itanium Processor Family is Intel's 64-bit successor to 68 the 32-bit X86 line. The IA-64 Linux project has a home 69 page at <http://www.linuxia64.org/> and a mailing list at 70 <linux-ia64@vger.kernel.org>. 71 72config 64BIT 73 bool 74 select ATA_NONSTANDARD if ATA 75 default y 76 77config MMU 78 bool 79 default y 80 81config STACKTRACE_SUPPORT 82 def_bool y 83 84config GENERIC_LOCKBREAK 85 def_bool n 86 87config GENERIC_CALIBRATE_DELAY 88 bool 89 default y 90 91config DMI 92 bool 93 default y 94 select DMI_SCAN_MACHINE_NON_EFI_FALLBACK 95 96config EFI 97 bool 98 select UCS2_STRING 99 default y 100 101config SCHED_OMIT_FRAME_POINTER 102 bool 103 default y 104 105config IA64_UNCACHED_ALLOCATOR 106 bool 107 select GENERIC_ALLOCATOR 108 109config ARCH_USES_PG_UNCACHED 110 def_bool y 111 depends on IA64_UNCACHED_ALLOCATOR 112 113config AUDIT_ARCH 114 bool 115 default y 116 117choice 118 prompt "Processor type" 119 default ITANIUM 120 121config ITANIUM 122 bool "Itanium" 123 help 124 Select your IA-64 processor type. The default is Itanium. 125 This choice is safe for all IA-64 systems, but may not perform 126 optimally on systems with, say, Itanium 2 or newer processors. 127 128config MCKINLEY 129 bool "Itanium 2" 130 help 131 Select this to configure for an Itanium 2 (McKinley) processor. 132 133endchoice 134 135choice 136 prompt "Kernel page size" 137 default IA64_PAGE_SIZE_16KB 138 139config IA64_PAGE_SIZE_4KB 140 bool "4KB" 141 help 142 This lets you select the page size of the kernel. For best IA-64 143 performance, a page size of 8KB or 16KB is recommended. For best 144 IA-32 compatibility, a page size of 4KB should be selected (the vast 145 majority of IA-32 binaries work perfectly fine with a larger page 146 size). For Itanium 2 or newer systems, a page size of 64KB can also 147 be selected. 148 149 4KB For best IA-32 compatibility 150 8KB For best IA-64 performance 151 16KB For best IA-64 performance 152 64KB Requires Itanium 2 or newer processor. 153 154 If you don't know what to do, choose 16KB. 155 156config IA64_PAGE_SIZE_8KB 157 bool "8KB" 158 159config IA64_PAGE_SIZE_16KB 160 bool "16KB" 161 162config IA64_PAGE_SIZE_64KB 163 depends on !ITANIUM 164 bool "64KB" 165 166endchoice 167 168source "kernel/Kconfig.hz" 169 170config IA64_BRL_EMU 171 bool 172 depends on ITANIUM 173 default y 174 175# align cache-sensitive data to 128 bytes 176config IA64_L1_CACHE_SHIFT 177 int 178 default "7" if MCKINLEY 179 default "6" if ITANIUM 180 181config IA64_SGI_UV 182 bool "SGI-UV support" 183 help 184 Selecting this option will add specific support for running on SGI 185 UV based systems. If you have an SGI UV system or are building a 186 distro kernel, select this option. 187 188config IA64_HP_SBA_IOMMU 189 bool "HP SBA IOMMU support" 190 select DMA_OPS 191 default y 192 help 193 Say Y here to add support for the SBA IOMMU found on HP zx1 and 194 sx1000 systems. If you're unsure, answer Y. 195 196config IA64_CYCLONE 197 bool "Cyclone (EXA) Time Source support" 198 help 199 Say Y here to enable support for IBM EXA Cyclone time source. 200 If you're unsure, answer N. 201 202config FORCE_MAX_ZONEORDER 203 int "MAX_ORDER (11 - 17)" if !HUGETLB_PAGE 204 range 11 17 if !HUGETLB_PAGE 205 default "17" if HUGETLB_PAGE 206 default "11" 207 208config SMP 209 bool "Symmetric multi-processing support" 210 help 211 This enables support for systems with more than one CPU. If you have 212 a system with only one CPU, say N. If you have a system with more 213 than one CPU, say Y. 214 215 If you say N here, the kernel will run on single and multiprocessor 216 systems, but will use only one CPU of a multiprocessor system. If 217 you say Y here, the kernel will run on many, but not all, 218 single processor systems. On a single processor system, the kernel 219 will run faster if you say N here. 220 221 See also the SMP-HOWTO available at 222 <http://www.tldp.org/docs.html#howto>. 223 224 If you don't know what to do here, say N. 225 226config NR_CPUS 227 int "Maximum number of CPUs (2-4096)" 228 range 2 4096 229 depends on SMP 230 default "4096" 231 help 232 You should set this to the number of CPUs in your system, but 233 keep in mind that a kernel compiled for, e.g., 2 CPUs will boot but 234 only use 2 CPUs on a >2 CPU system. Setting this to a value larger 235 than 64 will cause the use of a CPU mask array, causing a small 236 performance hit. 237 238config HOTPLUG_CPU 239 bool "Support for hot-pluggable CPUs" 240 depends on SMP 241 default n 242 help 243 Say Y here to experiment with turning CPUs off and on. CPUs 244 can be controlled through /sys/devices/system/cpu/cpu#. 245 Say N if you want to disable CPU hotplug. 246 247config SCHED_SMT 248 bool "SMT scheduler support" 249 depends on SMP 250 help 251 Improves the CPU scheduler's decision making when dealing with 252 Intel IA64 chips with MultiThreading at a cost of slightly increased 253 overhead in some places. If unsure say N here. 254 255config PERMIT_BSP_REMOVE 256 bool "Support removal of Bootstrap Processor" 257 depends on HOTPLUG_CPU 258 default n 259 help 260 Say Y here if your platform SAL will support removal of BSP with HOTPLUG_CPU 261 support. 262 263config FORCE_CPEI_RETARGET 264 bool "Force assumption that CPEI can be re-targeted" 265 depends on PERMIT_BSP_REMOVE 266 default n 267 help 268 Say Y if you need to force the assumption that CPEI can be re-targeted to 269 any cpu in the system. This hint is available via ACPI 3.0 specifications. 270 Tiger4 systems are capable of re-directing CPEI to any CPU other than BSP. 271 This option it useful to enable this feature on older BIOS's as well. 272 You can also enable this by using boot command line option force_cpei=1. 273 274config ARCH_SELECT_MEMORY_MODEL 275 def_bool y 276 277config ARCH_FLATMEM_ENABLE 278 def_bool y 279 280config ARCH_SPARSEMEM_ENABLE 281 def_bool y 282 select SPARSEMEM_VMEMMAP_ENABLE 283 284config ARCH_SPARSEMEM_DEFAULT 285 def_bool y 286 depends on ARCH_SPARSEMEM_ENABLE 287 288config NUMA 289 bool "NUMA support" 290 depends on !FLATMEM 291 select SMP 292 select USE_PERCPU_NUMA_NODE_ID 293 help 294 Say Y to compile the kernel to support NUMA (Non-Uniform Memory 295 Access). This option is for configuring high-end multiprocessor 296 server systems. If in doubt, say N. 297 298config NODES_SHIFT 299 int "Max num nodes shift(3-10)" 300 range 3 10 301 default "10" 302 depends on NUMA 303 help 304 This option specifies the maximum number of nodes in your SSI system. 305 MAX_NUMNODES will be 2^(This value). 306 If in doubt, use the default. 307 308config HAVE_ARCH_NODEDATA_EXTENSION 309 def_bool y 310 depends on NUMA 311 312config HAVE_MEMORYLESS_NODES 313 def_bool NUMA 314 315config ARCH_PROC_KCORE_TEXT 316 def_bool y 317 depends on PROC_KCORE 318 319config IA64_MCA_RECOVERY 320 bool "MCA recovery from errors other than TLB." 321 322config IA64_PALINFO 323 tristate "/proc/pal support" 324 help 325 If you say Y here, you are able to get PAL (Processor Abstraction 326 Layer) information in /proc/pal. This contains useful information 327 about the processors in your systems, such as cache and TLB sizes 328 and the PAL firmware version in use. 329 330 To use this option, you have to ensure that the "/proc file system 331 support" (CONFIG_PROC_FS) is enabled, too. 332 333config IA64_MC_ERR_INJECT 334 tristate "MC error injection support" 335 help 336 Adds support for MC error injection. If enabled, the kernel 337 will provide a sysfs interface for user applications to 338 call MC error injection PAL procedures to inject various errors. 339 This is a useful tool for MCA testing. 340 341 If you're unsure, do not select this option. 342 343config IA64_ESI 344 bool "ESI (Extensible SAL Interface) support" 345 help 346 If you say Y here, support is built into the kernel to 347 make ESI calls. ESI calls are used to support vendor-specific 348 firmware extensions, such as the ability to inject memory-errors 349 for test-purposes. If you're unsure, say N. 350 351config IA64_HP_AML_NFW 352 bool "Support ACPI AML calls to native firmware" 353 help 354 This driver installs a global ACPI Operation Region handler for 355 region 0xA1. AML methods can use this OpRegion to call arbitrary 356 native firmware functions. The driver installs the OpRegion 357 handler if there is an HPQ5001 device or if the user supplies 358 the "force" module parameter, e.g., with the "aml_nfw.force" 359 kernel command line option. 360 361config KEXEC 362 bool "kexec system call" 363 depends on !SMP || HOTPLUG_CPU 364 select KEXEC_CORE 365 help 366 kexec is a system call that implements the ability to shutdown your 367 current kernel, and to start another kernel. It is like a reboot 368 but it is independent of the system firmware. And like a reboot 369 you can start any kernel with it, not just Linux. 370 371 The name comes from the similarity to the exec system call. 372 373 It is an ongoing process to be certain the hardware in a machine 374 is properly shutdown, so do not be surprised if this code does not 375 initially work for you. As of this writing the exact hardware 376 interface is strongly in flux, so no good recommendation can be 377 made. 378 379config CRASH_DUMP 380 bool "kernel crash dumps" 381 depends on IA64_MCA_RECOVERY && (!SMP || HOTPLUG_CPU) 382 help 383 Generate crash dump after being started by kexec. 384 385endmenu 386 387menu "Power management and ACPI options" 388 389source "kernel/power/Kconfig" 390 391source "drivers/acpi/Kconfig" 392 393if PM 394menu "CPU Frequency scaling" 395source "drivers/cpufreq/Kconfig" 396endmenu 397endif 398 399endmenu 400 401config MSPEC 402 tristate "Memory special operations driver" 403 depends on IA64 404 select IA64_UNCACHED_ALLOCATOR 405 help 406 If you have an ia64 and you want to enable memory special 407 operations support (formerly known as fetchop), say Y here, 408 otherwise say N. 409