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