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