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