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