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