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