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