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