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