1# SPDX-License-Identifier: GPL-2.0 2config ALPHA 3 bool 4 default y 5 select GENERIC_ENTRY 6 select HAVE_SYSCALL_TRACEPOINTS 7 select ARCH_32BIT_USTAT_F_TINODE 8 select ARCH_HAS_CURRENT_STACK_POINTER 9 select ARCH_HAS_DEBUG_VM_PGTABLE 10 select ARCH_HAS_DMA_OPS if PCI 11 select ARCH_HAS_FAST_MULTIPLIER 12 select ARCH_HAS_GCOV_PROFILE_ALL 13 select ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE 14 select ARCH_HAS_PTE_SPECIAL 15 select ARCH_HAS_UBSAN 16 select ARCH_MIGHT_HAVE_PC_PARPORT 17 select ARCH_MIGHT_HAVE_PC_SERIO 18 select ARCH_MODULE_NEEDS_WEAK_PER_CPU if SMP 19 select ARCH_NO_PREEMPT 20 select ARCH_NO_SG_CHAIN 21 select ARCH_SUPPORTS_ATOMIC_RMW 22 select ARCH_SUPPORTS_HUGETLBFS 23 select ARCH_SUPPORTS_INT128 if CC_HAS_INT128 24 select ARCH_SUPPORTS_PAGE_TABLE_CHECK 25 select ARCH_USE_CMPXCHG_LOCKREF 26 select ARCH_USE_MEMTEST 27 select FORCE_PCI 28 select PCI_DOMAINS if PCI 29 select PCI_SYSCALL if PCI 30 select HAVE_ARCH_COMPILER_H 31 select HAVE_ASM_MODVERSIONS 32 select HAVE_DEBUG_KMEMLEAK 33 select HAVE_GUP_FAST 34 select HAVE_KERNEL_BZIP2 35 select HAVE_KERNEL_GZIP 36 select HAVE_KERNEL_LZ4 37 select HAVE_KERNEL_LZMA 38 select HAVE_KERNEL_LZO 39 select HAVE_KERNEL_XZ 40 select HAVE_KERNEL_ZSTD 41 select HAVE_PAGE_SIZE_8KB 42 select HAVE_PCSPKR_PLATFORM 43 select HAVE_PERF_EVENTS 44 select HAVE_PERF_REGS 45 select HAVE_PERF_USER_STACK_DUMP 46 select NEED_DMA_MAP_STATE 47 select NEED_SG_DMA_LENGTH 48 select GENERIC_IRQ_PROBE 49 select GENERIC_PCI_IOMAP 50 select AUTO_IRQ_AFFINITY if SMP 51 select GENERIC_IRQ_SHOW 52 select ARCH_WANT_IRQS_OFF_ACTIVATE_MM 53 select ARCH_WANT_IPC_PARSE_VERSION 54 select ARCH_WANT_LD_ORPHAN_WARN 55 select ARCH_HAVE_NMI_SAFE_CMPXCHG 56 select AUDIT_ARCH 57 select EDAC_SUPPORT 58 select GENERIC_CPU_VULNERABILITIES 59 select GENERIC_SMP_IDLE_THREAD 60 select HAS_IOPORT 61 select HAVE_ARCH_AUDITSYSCALL 62 select HAVE_ARCH_SECCOMP 63 select HAVE_ARCH_SECCOMP_FILTER 64 select HAVE_ARCH_THREAD_STRUCT_WHITELIST 65 select HAVE_ARCH_TRACEHOOK 66 select HAVE_MOD_ARCH_SPECIFIC 67 select LOCK_MM_AND_FIND_VMA 68 select MODULES_USE_ELF_RELA 69 select ODD_RT_SIGACTION 70 select OLD_SIGSUSPEND 71 select ARCH_STACKWALK 72 select CPU_NO_EFFICIENT_FFS if !ALPHA_EV67 73 select MMU_GATHER_NO_RANGE 74 select MMU_GATHER_RCU_TABLE_FREE 75 select SPARSE_IRQ 76 select SPARSEMEM_EXTREME if SPARSEMEM 77 select SYSCTL_EXCEPTION_TRACE 78 select ZONE_DMA 79 select TRACE_IRQFLAGS_SUPPORT 80 select ARCH_WANT_FRAME_POINTERS 81 help 82 The Alpha is a 64-bit general-purpose processor designed and 83 marketed by the Digital Equipment Corporation of blessed memory, 84 now Hewlett-Packard. The Alpha Linux project has a home page at 85 <http://www.alphalinux.org/>. 86 87config 64BIT 88 def_bool y 89 90config MMU 91 bool 92 default y 93 94config ARCH_HAS_ILOG2_U32 95 bool 96 default n 97 98config ARCH_HAS_ILOG2_U64 99 bool 100 default n 101 102config GENERIC_CALIBRATE_DELAY 103 bool 104 default y 105 106config GENERIC_ISA_DMA 107 bool 108 default y 109 110config PGTABLE_LEVELS 111 int 112 default 3 113 114config AUDIT_ARCH 115 bool 116 117config STACKTRACE_SUPPORT 118 def_bool y 119 120config LOCKDEP_SUPPORT 121 def_bool y 122 123menu "System setup" 124 125choice 126 prompt "Alpha system type" 127 default ALPHA_GENERIC 128 help 129 This is the system type of your hardware. A "generic" kernel will 130 run on any supported Alpha system. However, if you configure a 131 kernel for your specific system, it will be faster and smaller. 132 Only EV56 (21164A) and later CPUs are supported. 133 134 To find out what type of Alpha system you have, see the system and 135 motherboard lists at 136 <https://alphalinux.org/wiki/hardware:systems> and 137 <https://alphalinux.org/wiki/hardware:motherboards>. In summary: 138 139 Alcor/Alpha-XLT AlphaStation 500, Alpha XL 366, 433 140 DP264 DP264, UP2000(+), DS10, DS10L, DS20, DS20E, 141 ES40, XP900, XP1000 142 Eiger Eiger (OEM) 143 LX164 AlphaPC164-LX 144 Marvel AlphaServer ES47, ES80, GS1280 145 Miata Personal Workstation 433/500/600 a/au 146 Mikasa AlphaServer 1000 147 Nautilus UP1000, UP1100, UP1500 148 Noritake AlphaServer 1000A, 800, AlphaStation 600A, 149 Digital Server 3300 150 PC164 AlphaPC164 151 Rawhide AlphaServer 1200, 4000, 4100, 152 Digital Server 5300, 7300 153 Ruffian RPX164-2, AlphaPC164-UX, AlphaPC164-BX 154 RX164 AlphaPC164-RX 155 SX164 AlphaPC164-SX 156 Sable AlphaServer 2000, 2100 157 Shark AlphaServer DS20L, API NetWorks CS20 158 Takara Takara (OEM) 159 Titan AlphaServer DS15, DS25, ES45, TS202c 160 Wildfire AlphaServer GS80, GS160, GS320 161 162 If you don't know what to do, choose "generic". 163 164config ALPHA_GENERIC 165 bool "Generic" 166 depends on TTY 167 select HAVE_EISA 168 help 169 A generic kernel will run on all supported Alpha hardware. 170 171config ALPHA_ALCOR 172 bool "Alcor/Alpha-XLT" 173 select HAVE_EISA 174 help 175 For systems using the Digital ALCOR chipset: 5 chips (4, 64-bit data 176 slices (Data Switch, DSW) - 208-pin PQFP and 1 control (Control, I/O 177 Address, CIA) - a 383 pin plastic PGA). It provides a DRAM 178 controller (256-bit memory bus) and a PCI interface. It also does 179 all the work required to support an external Bcache and to maintain 180 memory coherence when a PCI device DMAs into (or out of) memory. 181 It is used by the AlphaStation 500 and the Alpha XL 366 and 433. 182 183 See <https://alphalinux.org/wiki/hardware:systems:alcor>. 184 185config ALPHA_DP264 186 bool "DP264" 187 help 188 Various 21264 systems with the tsunami core logic chipset. 189 API NetWorks: 264DP, UP2000(+); 190 Compaq: DS10, DS10L, XP900, XP1000, DS20, DS20E, ES40. 191 192 See: 193 <https://alphalinux.org/wiki/hardware:systems:webbrick> 194 <https://alphalinux.org/wiki/hardware:systems:goldrush> 195 <https://alphalinux.org/wiki/hardware:systems:clipper> 196 <https://alphalinux.org/wiki/hardware:systems:monet> 197 <https://alphalinux.org/wiki/hardware:motherboards:pc264dp> 198 <https://alphalinux.org/wiki/hardware:motherboards:up2000> 199 200config ALPHA_EIGER 201 bool "Eiger" 202 help 203 Apparently an obscure OEM single-board computer based on the 204 Typhoon/Tsunami chipset family. Information on it is scanty. 205 206 See <https://alphalinux.org/wiki/hardware:motherboards:eiger>. 207 208config ALPHA_LX164 209 bool "LX164" 210 help 211 AlphaPC164-LX, a 21164A-based single-board computer using the 212 Pyxis chipset. 213 214 See <https://alphalinux.org/wiki/hardware:motherboards:pc164lx>. 215 216config ALPHA_MARVEL 217 bool "Marvel" 218 help 219 AlphaServer ES47 / ES80 / GS1280 based on EV7. 220 221 See <https://alphalinux.org/wiki/hardware:systems:marvel>. 222 223config ALPHA_MIATA 224 bool "Miata" 225 select HAVE_EISA 226 help 227 The Digital Personal Workstation (PWS 433a, 433au, 500a, 500au, 228 600a, or 600au). 229 230 See <https://alphalinux.org/wiki/hardware:systems:miata>. 231 232config ALPHA_MIKASA 233 bool "Mikasa" 234 help 235 AlphaServer 1000-based Alpha systems. 236 237 See <https://alphalinux.org/wiki/hardware:systems:mikasa>. 238 239config ALPHA_NAUTILUS 240 bool "Nautilus" 241 help 242 UP1000, UP1100 and UP1500 systems based on the AMD 751 or 761 243 chipset. 244 245 See: 246 <https://alphalinux.org/wiki/hardware:motherboards:up1000> 247 <https://alphalinux.org/wiki/hardware:motherboards:up1100> 248 <https://alphalinux.org/wiki/hardware:motherboards:up1500> 249 250config ALPHA_NORITAKE 251 bool "Noritake" 252 select HAVE_EISA 253 help 254 AlphaServer 1000A, AlphaServer 800, AlphaStation 600A and 255 Digital Server 3300 systems. 256 257 See <https://alphalinux.org/wiki/hardware:systems:noritake>. 258 259config ALPHA_PC164 260 bool "PC164" 261 help 262 AlphaPC164, a 21164A-based single-board computer using the CIA 263 chipset. 264 265 See <https://alphalinux.org/wiki/hardware:motherboards:pc164>. 266 267config ALPHA_RAWHIDE 268 bool "Rawhide" 269 select HAVE_EISA 270 help 271 AlphaServer 1200, 4000 and 4100 and Digital Server 5300 and 7300 272 machines. 273 274 See <https://alphalinux.org/wiki/hardware:systems:rawhide>. 275 276config ALPHA_RUFFIAN 277 bool "Ruffian" 278 help 279 DeskStation RPX164-2, AlphaPC164-UX and AlphaPC164-BX boards. 280 They have no SRM console and can only boot Linux through MILO. 281 282 See <https://alphalinux.org/wiki/hardware:motherboards:pc164ux>. 283 284config ALPHA_RX164 285 bool "RX164" 286 help 287 AlphaPC164-RX, a 21164PC-based single-board computer using the 288 Polaris chipset. It has no SRM console and can only boot Linux 289 through MILO. 290 291 See <https://alphalinux.org/wiki/hardware:motherboards:pc164rx>. 292 293config ALPHA_SX164 294 bool "SX164" 295 help 296 AlphaPC164-SX, a 21164PC-based single-board computer using the 297 Pyxis chipset. 298 299 See <https://alphalinux.org/wiki/hardware:motherboards:pc164sx>. 300 301config ALPHA_SABLE 302 bool "Sable" 303 select HAVE_EISA 304 help 305 Digital AlphaServer 2000 and 2100-based systems. 306 307 See <https://alphalinux.org/wiki/hardware:systems:sable>. 308 309config ALPHA_SHARK 310 bool "Shark" 311 help 312 AlphaServer DS20L and API NetWorks CS20 systems based on the 313 Tsunami chipset. 314 315 See <https://alphalinux.org/wiki/hardware:systems:shark>. 316 317config ALPHA_TAKARA 318 bool "Takara" 319 help 320 Alpha 21164-based OEM single-board computer. 321 322 See <https://alphalinux.org/wiki/hardware:motherboards:takara>. 323 324config ALPHA_TITAN 325 bool "Titan" 326 help 327 AlphaServer DS15, DS25, ES45 and TS202c based on EV68 and the 328 Titan chipset. 329 330 See <https://alphalinux.org/wiki/hardware:systems:titan>. 331 332config ALPHA_WILDFIRE 333 bool "Wildfire" 334 help 335 AlphaServer GS80, GS160 and GS320 SMP based on the EV67 or EV68 336 core. 337 338 See <https://alphalinux.org/wiki/hardware:systems:wildfire>. 339 340endchoice 341 342# clear all implied options (don't want default values for those): 343# Most of these machines have ISA slots; not exactly sure which don't, 344# and this doesn't activate hordes of code, so do it always. 345config ISA 346 bool 347 default y 348 help 349 Find out whether you have ISA slots on your motherboard. ISA is the 350 name of a bus system, i.e. the way the CPU talks to the other stuff 351 inside your box. Other bus systems are PCI, EISA, MicroChannel 352 (MCA) or VESA. ISA is an older system, now being displaced by PCI; 353 newer boards don't support it. If you have ISA, say Y, otherwise N. 354 355config ISA_DMA_API 356 bool 357 default y 358 359config ALPHA_CIA 360 bool 361 depends on ALPHA_MIATA || ALPHA_LX164 || ALPHA_SX164 || ALPHA_RUFFIAN || ALPHA_NORITAKE || ALPHA_MIKASA || ALPHA_PC164 || ALPHA_TAKARA || ALPHA_ALCOR 362 default y 363 364config ALPHA_EV56 365 bool 366 default y if ALPHA_ALCOR || ALPHA_RX164 || ALPHA_MIATA || ALPHA_LX164 || ALPHA_SX164 || ALPHA_RUFFIAN || ALPHA_PC164 || ALPHA_TAKARA || ALPHA_NORITAKE || ALPHA_MIKASA || ALPHA_RAWHIDE || ALPHA_SABLE 367 368config ALPHA_T2 369 bool 370 depends on ALPHA_SABLE 371 default y 372 373config ALPHA_PYXIS 374 bool 375 depends on ALPHA_MIATA || ALPHA_LX164 || ALPHA_SX164 || ALPHA_RUFFIAN 376 default y 377 378config ALPHA_EV6 379 bool 380 depends on ALPHA_NAUTILUS || ALPHA_WILDFIRE || ALPHA_TITAN || ALPHA_SHARK || ALPHA_DP264 || ALPHA_EIGER || ALPHA_MARVEL 381 default y 382 383config ALPHA_TSUNAMI 384 bool 385 depends on ALPHA_SHARK || ALPHA_DP264 || ALPHA_EIGER 386 default y 387 388config ALPHA_EV67 389 bool "EV67 (or later) CPU (speed > 600MHz)?" if ALPHA_DP264 || ALPHA_EIGER 390 default y if ALPHA_NAUTILUS || ALPHA_WILDFIRE || ALPHA_TITAN || ALPHA_SHARK || ALPHA_MARVEL 391 help 392 Is this a machine based on the EV67 core? If in doubt, select N here 393 and the machine will be treated as an EV6. 394 395config ALPHA_MCPCIA 396 bool 397 depends on ALPHA_RAWHIDE 398 default y 399 400config ALPHA_POLARIS 401 bool 402 depends on ALPHA_RX164 403 default y 404 405config ALPHA_IRONGATE 406 bool 407 depends on ALPHA_NAUTILUS 408 default y 409 410config GENERIC_HWEIGHT 411 bool 412 default y if !ALPHA_EV67 413 414config ALPHA_BROKEN_IRQ_MASK 415 bool 416 depends on ALPHA_GENERIC || ALPHA_PC164 417 default y 418 419config VGA_HOSE 420 bool 421 depends on VGA_CONSOLE && (ALPHA_GENERIC || ALPHA_TITAN || ALPHA_MARVEL || ALPHA_TSUNAMI) 422 default y 423 help 424 Support VGA on an arbitrary hose; needed for several platforms 425 which always have multiple hoses, and whose consoles support it. 426 427 428config ALPHA_QEMU 429 bool "Run under QEMU emulation" 430 depends on !ALPHA_GENERIC 431 help 432 Assume the presence of special features supported by QEMU PALcode 433 that reduce the overhead of system emulation. 434 435 Generic kernels will auto-detect QEMU. But when building a 436 system-specific kernel, the assumption is that we want to 437 eliminate as many runtime tests as possible. 438 439 If unsure, say N. 440 441 442config ALPHA_SRM 443 bool "Use SRM as bootloader" if ALPHA_PC164 || ALPHA_TAKARA || ALPHA_ALCOR || ALPHA_MIATA || ALPHA_LX164 || ALPHA_SX164 || ALPHA_NAUTILUS 444 depends on TTY 445 default y if ALPHA_MIKASA || ALPHA_SABLE || ALPHA_NORITAKE || ALPHA_DP264 || ALPHA_RAWHIDE || ALPHA_EIGER || ALPHA_WILDFIRE || ALPHA_TITAN || ALPHA_SHARK || ALPHA_MARVEL 446 help 447 There are two different types of booting firmware on Alphas: SRM, 448 which is command line driven, and ARC, which uses menus and arrow 449 keys. 450 451 The usual way to load Linux on an Alpha machine is to use MILO 452 (a bootloader that lets you pass command line parameters to the 453 kernel just like lilo does for the x86 architecture) which can be 454 loaded either from ARC or can be installed directly as a permanent 455 firmware replacement from floppy (which requires changing a certain 456 jumper on the motherboard). If you want to do either of these, say N 457 here. If MILO doesn't work on your system, you can bypass it 458 altogether and boot Linux directly from an SRM console; say Y here 459 in order to do that. 460 461 If unsure, say N. 462 463config ARCH_MAY_HAVE_PC_FDC 464 def_bool y 465 466config SMP 467 bool "Symmetric multi-processing support" 468 depends on ALPHA_SABLE || ALPHA_RAWHIDE || ALPHA_DP264 || ALPHA_WILDFIRE || ALPHA_TITAN || ALPHA_GENERIC || ALPHA_SHARK || ALPHA_MARVEL 469 help 470 This enables support for systems with more than one CPU. If you have 471 a system with only one CPU, say N. If you have a system with more 472 than one CPU, say Y. 473 474 If you say N here, the kernel will run on uni- and multiprocessor 475 machines, but will use only one CPU of a multiprocessor machine. If 476 you say Y here, the kernel will run on many, but not all, 477 uniprocessor machines. On a uniprocessor machine, the kernel 478 will run faster if you say N here. 479 480 See also the SMP-HOWTO available at 481 <https://www.tldp.org/docs.html#howto>. 482 483 If you don't know what to do here, say N. 484 485config NR_CPUS 486 int "Maximum number of CPUs (2-32)" 487 range 2 32 488 depends on SMP 489 default "32" if ALPHA_GENERIC || ALPHA_MARVEL || ALPHA_WILDFIRE 490 default "4" 491 help 492 The kernel supports at most 32 CPUs. Only Marvel and Wildfire 493 systems have more than 4. 494 495config ARCH_SPARSEMEM_ENABLE 496 bool "Sparse Memory Support" 497 help 498 Say Y to support efficient handling of discontiguous physical memory, 499 for systems that have huge holes in the physical address space. 500 501config ALPHA_WTINT 502 bool "Use WTINT" if ALPHA_SRM || ALPHA_GENERIC 503 default y if ALPHA_QEMU 504 default n if ALPHA_EV56 505 default n if !ALPHA_SRM && !ALPHA_GENERIC 506 default y if SMP 507 help 508 The Wait for Interrupt (WTINT) PALcall attempts to place the CPU 509 to sleep until the next interrupt. This may reduce the power 510 consumed, and the heat produced by the computer. However, it has 511 the side effect of making the cycle counter unreliable as a timing 512 device across the sleep. 513 514 For emulation under QEMU, definitely say Y here, as we have other 515 mechanisms for measuring time than the cycle counter. 516 517 For EV56 systems, or for systems running MILO, sleep mode is not 518 supported so you might as well say N here. 519 520 For SMP systems we cannot use the cycle counter for timing anyway, 521 so you might as well say Y here. 522 523 If unsure, say N. 524 525# LARGE_VMALLOC is racy, if you *really* need it then fix it first 526config ALPHA_LARGE_VMALLOC 527 bool 528 help 529 Process creation and other aspects of virtual memory management can 530 be streamlined if we restrict the kernel to one PGD for all vmalloc 531 allocations. This equates to about 8GB. 532 533 Under normal circumstances, this is so far and above what is needed 534 as to be laughable. However, there are certain applications (such 535 as benchmark-grade in-kernel web serving) that can make use of as 536 much vmalloc space as is available. 537 538 Say N unless you know you need gobs and gobs of vmalloc space. 539 540config VERBOSE_MCHECK 541 bool "Verbose Machine Checks" 542 543config VERBOSE_MCHECK_ON 544 int "Verbose Printing Mode (0=off, 1=on, 2=all)" 545 depends on VERBOSE_MCHECK 546 default 1 547 help 548 This option allows the default printing mode to be set, and then 549 possibly overridden by a boot command argument. 550 551 For example, if one wanted the option of printing verbose 552 machine checks, but wanted the default to be as if verbose 553 machine check printing was turned off, then one would choose 554 the printing mode to be 0. Then, upon reboot, one could add 555 the boot command line "verbose_mcheck=1" to get the normal 556 verbose machine check printing, or "verbose_mcheck=2" to get 557 the maximum information available. 558 559 Take the default (1) unless you want more control or more info. 560 561choice 562 prompt "Timer interrupt frequency (HZ)?" 563 default HZ_128 if ALPHA_QEMU 564 default HZ_1200 if ALPHA_RAWHIDE 565 default HZ_1024 566 help 567 The frequency at which timer interrupts occur. A high frequency 568 minimizes latency, whereas a low frequency minimizes overhead of 569 process accounting. The later effect is especially significant 570 when being run under QEMU. 571 572 Note that some Alpha hardware cannot change the interrupt frequency 573 of the timer. If unsure, say 1024 (or 1200 for Rawhide). 574 575 config HZ_32 576 bool "32 Hz" 577 config HZ_64 578 bool "64 Hz" 579 config HZ_128 580 bool "128 Hz" 581 config HZ_256 582 bool "256 Hz" 583 config HZ_1024 584 bool "1024 Hz" 585 config HZ_1200 586 bool "1200 Hz" 587endchoice 588 589config HZ 590 int 591 default 32 if HZ_32 592 default 64 if HZ_64 593 default 128 if HZ_128 594 default 256 if HZ_256 595 default 1200 if HZ_1200 596 default 1024 597 598config SRM_ENV 599 tristate "SRM environment through procfs" 600 depends on PROC_FS 601 help 602 If you enable this option, a subdirectory inside /proc called 603 /proc/srm_environment will give you access to the all important 604 SRM environment variables (those which have a name) and also 605 to all others (by their internal number). 606 607 SRM is something like a BIOS for Alpha machines. There are some 608 other such BIOSes, like AlphaBIOS, which this driver cannot 609 support (hey, that's not SRM!). 610 611 Despite the fact that this driver doesn't work on all Alphas (but 612 only on those which have SRM as their firmware), it's save to 613 build it even if your particular machine doesn't know about SRM 614 (or if you intend to compile a generic kernel). It will simply 615 not create those subdirectory in /proc (and give you some warning, 616 of course). 617 618 This driver is also available as a module and will be called 619 srm_env then. 620 621endmenu 622 623# DUMMY_CONSOLE may be defined in drivers/video/console/Kconfig 624# but we also need it if VGA_HOSE is set 625config DUMMY_CONSOLE 626 bool 627 depends on VGA_HOSE 628 default y 629