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 select SMP 315 help 316 Say Y to compile the kernel to support NUMA (Non-Uniform Memory 317 Access). This option is for configuring high-end multiprocessor 318 server systems. If in doubt, say N. 319 320config NODES_SHIFT 321 int "Max num nodes shift(3-10)" 322 range 3 10 323 default "10" 324 depends on NEED_MULTIPLE_NODES 325 help 326 This option specifies the maximum number of nodes in your SSI system. 327 MAX_NUMNODES will be 2^(This value). 328 If in doubt, use the default. 329 330# VIRTUAL_MEM_MAP and FLAT_NODE_MEM_MAP are functionally equivalent. 331# VIRTUAL_MEM_MAP has been retained for historical reasons. 332config VIRTUAL_MEM_MAP 333 bool "Virtual mem map" 334 depends on !SPARSEMEM 335 default y 336 help 337 Say Y to compile the kernel with support for a virtual mem map. 338 This code also only takes effect if a memory hole of greater than 339 1 Gb is found during boot. You must turn this option on if you 340 require the DISCONTIGMEM option for your machine. If you are 341 unsure, say Y. 342 343config HOLES_IN_ZONE 344 bool 345 default y if VIRTUAL_MEM_MAP 346 347config HAVE_ARCH_EARLY_PFN_TO_NID 348 def_bool NUMA && SPARSEMEM 349 350config HAVE_ARCH_NODEDATA_EXTENSION 351 def_bool y 352 depends on NUMA 353 354config USE_PERCPU_NUMA_NODE_ID 355 def_bool y 356 depends on NUMA 357 358config HAVE_MEMORYLESS_NODES 359 def_bool NUMA 360 361config ARCH_PROC_KCORE_TEXT 362 def_bool y 363 depends on PROC_KCORE 364 365config IA64_MCA_RECOVERY 366 tristate "MCA recovery from errors other than TLB." 367 368config PERFMON 369 bool "Performance monitor support" 370 depends on BROKEN 371 help 372 Selects whether support for the IA-64 performance monitor hardware 373 is included in the kernel. This makes some kernel data-structures a 374 little bigger and slows down execution a bit, but it is generally 375 a good idea to turn this on. If you're unsure, say Y. 376 377config IA64_PALINFO 378 tristate "/proc/pal support" 379 help 380 If you say Y here, you are able to get PAL (Processor Abstraction 381 Layer) information in /proc/pal. This contains useful information 382 about the processors in your systems, such as cache and TLB sizes 383 and the PAL firmware version in use. 384 385 To use this option, you have to ensure that the "/proc file system 386 support" (CONFIG_PROC_FS) is enabled, too. 387 388config IA64_MC_ERR_INJECT 389 tristate "MC error injection support" 390 help 391 Adds support for MC error injection. If enabled, the kernel 392 will provide a sysfs interface for user applications to 393 call MC error injection PAL procedures to inject various errors. 394 This is a useful tool for MCA testing. 395 396 If you're unsure, do not select this option. 397 398config IA64_ESI 399 bool "ESI (Extensible SAL Interface) support" 400 help 401 If you say Y here, support is built into the kernel to 402 make ESI calls. ESI calls are used to support vendor-specific 403 firmware extensions, such as the ability to inject memory-errors 404 for test-purposes. If you're unsure, say N. 405 406config IA64_HP_AML_NFW 407 bool "Support ACPI AML calls to native firmware" 408 help 409 This driver installs a global ACPI Operation Region handler for 410 region 0xA1. AML methods can use this OpRegion to call arbitrary 411 native firmware functions. The driver installs the OpRegion 412 handler if there is an HPQ5001 device or if the user supplies 413 the "force" module parameter, e.g., with the "aml_nfw.force" 414 kernel command line option. 415 416config KEXEC 417 bool "kexec system call" 418 depends on !SMP || HOTPLUG_CPU 419 select KEXEC_CORE 420 help 421 kexec is a system call that implements the ability to shutdown your 422 current kernel, and to start another kernel. It is like a reboot 423 but it is independent of the system firmware. And like a reboot 424 you can start any kernel with it, not just Linux. 425 426 The name comes from the similarity to the exec system call. 427 428 It is an ongoing process to be certain the hardware in a machine 429 is properly shutdown, so do not be surprised if this code does not 430 initially work for you. As of this writing the exact hardware 431 interface is strongly in flux, so no good recommendation can be 432 made. 433 434config CRASH_DUMP 435 bool "kernel crash dumps" 436 depends on IA64_MCA_RECOVERY && (!SMP || HOTPLUG_CPU) 437 help 438 Generate crash dump after being started by kexec. 439 440source "drivers/firmware/Kconfig" 441 442endmenu 443 444menu "Power management and ACPI options" 445 446source "kernel/power/Kconfig" 447 448source "drivers/acpi/Kconfig" 449 450if PM 451menu "CPU Frequency scaling" 452source "drivers/cpufreq/Kconfig" 453endmenu 454endif 455 456endmenu 457 458config MSPEC 459 tristate "Memory special operations driver" 460 depends on IA64 461 select IA64_UNCACHED_ALLOCATOR 462 help 463 If you have an ia64 and you want to enable memory special 464 operations support (formerly known as fetchop), say Y here, 465 otherwise say N. 466