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