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