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