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