| # SPDX-License-Identifier: GPL-2.0 |
| config ALPHA |
| bool |
| default y |
| select ARCH_32BIT_USTAT_F_TINODE |
| select ARCH_HAS_CURRENT_STACK_POINTER |
| select ARCH_MIGHT_HAVE_PC_PARPORT |
| select ARCH_MIGHT_HAVE_PC_SERIO |
| select ARCH_NO_PREEMPT |
| select ARCH_NO_SG_CHAIN |
| select ARCH_USE_CMPXCHG_LOCKREF |
| select DMA_OPS if PCI |
| select FORCE_PCI |
| select PCI_DOMAINS if PCI |
| select PCI_SYSCALL if PCI |
| select HAVE_ASM_MODVERSIONS |
| select HAVE_PAGE_SIZE_8KB |
| select HAVE_PCSPKR_PLATFORM |
| select HAVE_PERF_EVENTS |
| select NEED_DMA_MAP_STATE |
| select NEED_SG_DMA_LENGTH |
| select GENERIC_IRQ_PROBE |
| select GENERIC_PCI_IOMAP |
| select AUTO_IRQ_AFFINITY if SMP |
| select GENERIC_IRQ_SHOW |
| select ARCH_WANT_IPC_PARSE_VERSION |
| select ARCH_HAVE_NMI_SAFE_CMPXCHG |
| select AUDIT_ARCH |
| select GENERIC_CPU_VULNERABILITIES |
| select GENERIC_SMP_IDLE_THREAD |
| select HAS_IOPORT |
| select HAVE_ARCH_AUDITSYSCALL |
| select HAVE_MOD_ARCH_SPECIFIC |
| select LOCK_MM_AND_FIND_VMA |
| select MODULES_USE_ELF_RELA |
| select ODD_RT_SIGACTION |
| select OLD_SIGSUSPEND |
| select CPU_NO_EFFICIENT_FFS if !ALPHA_EV67 |
| select MMU_GATHER_NO_RANGE |
| select SPARSEMEM_EXTREME if SPARSEMEM |
| select ZONE_DMA |
| help |
| The Alpha is a 64-bit general-purpose processor designed and |
| marketed by the Digital Equipment Corporation of blessed memory, |
| now Hewlett-Packard. The Alpha Linux project has a home page at |
| <http://www.alphalinux.org/>. |
| |
| config 64BIT |
| def_bool y |
| |
| config MMU |
| bool |
| default y |
| |
| config ARCH_HAS_ILOG2_U32 |
| bool |
| default n |
| |
| config ARCH_HAS_ILOG2_U64 |
| bool |
| default n |
| |
| config GENERIC_CALIBRATE_DELAY |
| bool |
| default y |
| |
| config GENERIC_ISA_DMA |
| bool |
| default y |
| |
| config PGTABLE_LEVELS |
| int |
| default 3 |
| |
| config AUDIT_ARCH |
| bool |
| |
| menu "System setup" |
| |
| choice |
| prompt "Alpha system type" |
| default ALPHA_GENERIC |
| help |
| This is the system type of your hardware. A "generic" kernel will |
| run on any supported Alpha system. However, if you configure a |
| kernel for your specific system, it will be faster and smaller. |
| |
| To find out what type of Alpha system you have, you may want to |
| check out the Linux/Alpha FAQ, accessible on the WWW from |
| <http://www.alphalinux.org/>. In summary: |
| |
| Alcor/Alpha-XLT AS 600, AS 500, XL-300, XL-366 |
| DP264 DP264 / DS20 / ES40 / DS10 / DS10L |
| LX164 AlphaPC164-LX |
| Miata Personal Workstation 433/500/600 a/au |
| Marvel AlphaServer ES47 / ES80 / GS1280 |
| Mikasa AS 1000 |
| Noritake AS 1000A, AS 600A, AS 800 |
| PC164 AlphaPC164 |
| Rawhide AS 1200, AS 4000, AS 4100 |
| Ruffian RPX164-2, AlphaPC164-UX, AlphaPC164-BX |
| SX164 AlphaPC164-SX |
| Sable AS 2000, AS 2100 |
| Shark DS 20L |
| Takara Takara (OEM) |
| Titan AlphaServer ES45 / DS25 / DS15 |
| Wildfire AlphaServer GS 40/80/160/320 |
| |
| If you don't know what to do, choose "generic". |
| |
| config ALPHA_GENERIC |
| bool "Generic" |
| depends on TTY |
| select HAVE_EISA |
| help |
| A generic kernel will run on all supported Alpha hardware. |
| |
| config ALPHA_ALCOR |
| bool "Alcor/Alpha-XLT" |
| select HAVE_EISA |
| help |
| For systems using the Digital ALCOR chipset: 5 chips (4, 64-bit data |
| slices (Data Switch, DSW) - 208-pin PQFP and 1 control (Control, I/O |
| Address, CIA) - a 383 pin plastic PGA). It provides a DRAM |
| controller (256-bit memory bus) and a PCI interface. It also does |
| all the work required to support an external Bcache and to maintain |
| memory coherence when a PCI device DMAs into (or out of) memory. |
| |
| config ALPHA_DP264 |
| bool "DP264" |
| help |
| Various 21264 systems with the tsunami core logic chipset. |
| API Networks: 264DP, UP2000(+), CS20; |
| Compaq: DS10(E,L), XP900, XP1000, DS20(E), ES40. |
| |
| config ALPHA_EIGER |
| bool "Eiger" |
| help |
| Apparently an obscure OEM single-board computer based on the |
| Typhoon/Tsunami chipset family. Information on it is scanty. |
| |
| config ALPHA_LX164 |
| bool "LX164" |
| help |
| A technical overview of this board is available at |
| <http://www.unix-ag.org/Linux-Alpha/Architectures/LX164.html>. |
| |
| config ALPHA_MARVEL |
| bool "Marvel" |
| help |
| AlphaServer ES47 / ES80 / GS1280 based on EV7. |
| |
| config ALPHA_MIATA |
| bool "Miata" |
| select HAVE_EISA |
| help |
| The Digital PersonalWorkStation (PWS 433a, 433au, 500a, 500au, 600a, |
| or 600au). |
| |
| config ALPHA_MIKASA |
| bool "Mikasa" |
| help |
| AlphaServer 1000-based Alpha systems. |
| |
| config ALPHA_NAUTILUS |
| bool "Nautilus" |
| help |
| Alpha systems based on the AMD 751 & ALI 1543C chipsets. |
| |
| config ALPHA_NORITAKE |
| bool "Noritake" |
| select HAVE_EISA |
| help |
| AlphaServer 1000A, AlphaServer 600A, and AlphaServer 800-based |
| systems. |
| |
| config ALPHA_PC164 |
| bool "PC164" |
| |
| config ALPHA_RAWHIDE |
| bool "Rawhide" |
| select HAVE_EISA |
| help |
| AlphaServer 1200, AlphaServer 4000 and AlphaServer 4100 machines. |
| See HOWTO at |
| <http://www.alphalinux.org/docs/rawhide/4100_install.shtml>. |
| |
| config ALPHA_RUFFIAN |
| bool "Ruffian" |
| help |
| Samsung APC164UX. There is a page on known problems and workarounds |
| at <http://www.alphalinux.org/faq/FAQ-11.html>. |
| |
| config ALPHA_RX164 |
| bool "RX164" |
| |
| config ALPHA_SX164 |
| bool "SX164" |
| |
| config ALPHA_SABLE |
| bool "Sable" |
| select HAVE_EISA |
| help |
| Digital AlphaServer 2000 and 2100-based systems. |
| |
| config ALPHA_SHARK |
| bool "Shark" |
| |
| config ALPHA_TAKARA |
| bool "Takara" |
| help |
| Alpha 11164-based OEM single-board computer. |
| |
| config ALPHA_TITAN |
| bool "Titan" |
| help |
| AlphaServer ES45/DS25 SMP based on EV68 and Titan chipset. |
| |
| config ALPHA_WILDFIRE |
| bool "Wildfire" |
| help |
| AlphaServer GS 40/80/160/320 SMP based on the EV67 core. |
| |
| endchoice |
| |
| # clear all implied options (don't want default values for those): |
| # Most of these machines have ISA slots; not exactly sure which don't, |
| # and this doesn't activate hordes of code, so do it always. |
| config ISA |
| bool |
| default y |
| help |
| Find out whether you have ISA slots on your motherboard. ISA is the |
| name of a bus system, i.e. the way the CPU talks to the other stuff |
| inside your box. Other bus systems are PCI, EISA, MicroChannel |
| (MCA) or VESA. ISA is an older system, now being displaced by PCI; |
| newer boards don't support it. If you have ISA, say Y, otherwise N. |
| |
| config ISA_DMA_API |
| bool |
| default y |
| |
| config ALPHA_CIA |
| bool |
| depends on ALPHA_MIATA || ALPHA_LX164 || ALPHA_SX164 || ALPHA_RUFFIAN || ALPHA_NORITAKE || ALPHA_MIKASA || ALPHA_PC164 || ALPHA_TAKARA || ALPHA_ALCOR |
| default y |
| |
| config ALPHA_EV56 |
| bool |
| 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 |
| |
| config ALPHA_T2 |
| bool |
| depends on ALPHA_SABLE |
| default y |
| |
| config ALPHA_PYXIS |
| bool |
| depends on ALPHA_MIATA || ALPHA_LX164 || ALPHA_SX164 || ALPHA_RUFFIAN |
| default y |
| |
| config ALPHA_EV6 |
| bool |
| depends on ALPHA_NAUTILUS || ALPHA_WILDFIRE || ALPHA_TITAN || ALPHA_SHARK || ALPHA_DP264 || ALPHA_EIGER || ALPHA_MARVEL |
| default y |
| |
| config ALPHA_TSUNAMI |
| bool |
| depends on ALPHA_SHARK || ALPHA_DP264 || ALPHA_EIGER |
| default y |
| |
| config ALPHA_EV67 |
| bool "EV67 (or later) CPU (speed > 600MHz)?" if ALPHA_DP264 || ALPHA_EIGER |
| default y if ALPHA_NAUTILUS || ALPHA_WILDFIRE || ALPHA_TITAN || ALPHA_SHARK || ALPHA_MARVEL |
| help |
| Is this a machine based on the EV67 core? If in doubt, select N here |
| and the machine will be treated as an EV6. |
| |
| config ALPHA_MCPCIA |
| bool |
| depends on ALPHA_RAWHIDE |
| default y |
| |
| config ALPHA_POLARIS |
| bool |
| depends on ALPHA_RX164 |
| default y |
| |
| config ALPHA_IRONGATE |
| bool |
| depends on ALPHA_NAUTILUS |
| default y |
| |
| config GENERIC_HWEIGHT |
| bool |
| default y if !ALPHA_EV67 |
| |
| config ALPHA_BROKEN_IRQ_MASK |
| bool |
| depends on ALPHA_GENERIC || ALPHA_PC164 |
| default y |
| |
| config VGA_HOSE |
| bool |
| depends on VGA_CONSOLE && (ALPHA_GENERIC || ALPHA_TITAN || ALPHA_MARVEL || ALPHA_TSUNAMI) |
| default y |
| help |
| Support VGA on an arbitrary hose; needed for several platforms |
| which always have multiple hoses, and whose consoles support it. |
| |
| |
| config ALPHA_QEMU |
| bool "Run under QEMU emulation" |
| depends on !ALPHA_GENERIC |
| help |
| Assume the presence of special features supported by QEMU PALcode |
| that reduce the overhead of system emulation. |
| |
| Generic kernels will auto-detect QEMU. But when building a |
| system-specific kernel, the assumption is that we want to |
| eliminate as many runtime tests as possible. |
| |
| If unsure, say N. |
| |
| |
| config ALPHA_SRM |
| bool "Use SRM as bootloader" if ALPHA_PC164 || ALPHA_TAKARA || ALPHA_ALCOR || ALPHA_MIATA || ALPHA_LX164 || ALPHA_SX164 || ALPHA_NAUTILUS |
| depends on TTY |
| default y if ALPHA_MIKASA || ALPHA_SABLE || ALPHA_NORITAKE || ALPHA_DP264 || ALPHA_RAWHIDE || ALPHA_EIGER || ALPHA_WILDFIRE || ALPHA_TITAN || ALPHA_SHARK || ALPHA_MARVEL |
| help |
| There are two different types of booting firmware on Alphas: SRM, |
| which is command line driven, and ARC, which uses menus and arrow |
| keys. Details about the Linux/Alpha booting process are contained in |
| the Linux/Alpha FAQ, accessible on the WWW from |
| <http://www.alphalinux.org/>. |
| |
| The usual way to load Linux on an Alpha machine is to use MILO |
| (a bootloader that lets you pass command line parameters to the |
| kernel just like lilo does for the x86 architecture) which can be |
| loaded either from ARC or can be installed directly as a permanent |
| firmware replacement from floppy (which requires changing a certain |
| jumper on the motherboard). If you want to do either of these, say N |
| here. If MILO doesn't work on your system (true for Jensen |
| motherboards), you can bypass it altogether and boot Linux directly |
| from an SRM console; say Y here in order to do that. Note that you |
| won't be able to boot from an IDE disk using SRM. |
| |
| If unsure, say N. |
| |
| config ARCH_MAY_HAVE_PC_FDC |
| def_bool y |
| |
| config SMP |
| bool "Symmetric multi-processing support" |
| depends on ALPHA_SABLE || ALPHA_RAWHIDE || ALPHA_DP264 || ALPHA_WILDFIRE || ALPHA_TITAN || ALPHA_GENERIC || ALPHA_SHARK || ALPHA_MARVEL |
| help |
| This enables support for systems with more than one CPU. If you have |
| a system with only one CPU, say N. If you have a system with more |
| than one CPU, say Y. |
| |
| If you say N here, the kernel will run on uni- and multiprocessor |
| machines, but will use only one CPU of a multiprocessor machine. If |
| you say Y here, the kernel will run on many, but not all, |
| uniprocessor machines. On a uniprocessor machine, the kernel |
| will run faster if you say N here. |
| |
| See also the SMP-HOWTO available at |
| <https://www.tldp.org/docs.html#howto>. |
| |
| If you don't know what to do here, say N. |
| |
| config NR_CPUS |
| int "Maximum number of CPUs (2-32)" |
| range 2 32 |
| depends on SMP |
| default "32" if ALPHA_GENERIC || ALPHA_MARVEL |
| default "4" if !ALPHA_GENERIC && !ALPHA_MARVEL |
| help |
| MARVEL support can handle a maximum of 32 CPUs, all the others |
| with working support have a maximum of 4 CPUs. |
| |
| config ARCH_SPARSEMEM_ENABLE |
| bool "Sparse Memory Support" |
| help |
| Say Y to support efficient handling of discontiguous physical memory, |
| for systems that have huge holes in the physical address space. |
| |
| config ALPHA_WTINT |
| bool "Use WTINT" if ALPHA_SRM || ALPHA_GENERIC |
| default y if ALPHA_QEMU |
| default n if ALPHA_EV56 |
| default n if !ALPHA_SRM && !ALPHA_GENERIC |
| default y if SMP |
| help |
| The Wait for Interrupt (WTINT) PALcall attempts to place the CPU |
| to sleep until the next interrupt. This may reduce the power |
| consumed, and the heat produced by the computer. However, it has |
| the side effect of making the cycle counter unreliable as a timing |
| device across the sleep. |
| |
| For emulation under QEMU, definitely say Y here, as we have other |
| mechanisms for measuring time than the cycle counter. |
| |
| For EV4 (but not LCA), EV5 and EV56 systems, or for systems running |
| MILO, sleep mode is not supported so you might as well say N here. |
| |
| For SMP systems we cannot use the cycle counter for timing anyway, |
| so you might as well say Y here. |
| |
| If unsure, say N. |
| |
| # LARGE_VMALLOC is racy, if you *really* need it then fix it first |
| config ALPHA_LARGE_VMALLOC |
| bool |
| help |
| Process creation and other aspects of virtual memory management can |
| be streamlined if we restrict the kernel to one PGD for all vmalloc |
| allocations. This equates to about 8GB. |
| |
| Under normal circumstances, this is so far and above what is needed |
| as to be laughable. However, there are certain applications (such |
| as benchmark-grade in-kernel web serving) that can make use of as |
| much vmalloc space as is available. |
| |
| Say N unless you know you need gobs and gobs of vmalloc space. |
| |
| config VERBOSE_MCHECK |
| bool "Verbose Machine Checks" |
| |
| config VERBOSE_MCHECK_ON |
| int "Verbose Printing Mode (0=off, 1=on, 2=all)" |
| depends on VERBOSE_MCHECK |
| default 1 |
| help |
| This option allows the default printing mode to be set, and then |
| possibly overridden by a boot command argument. |
| |
| For example, if one wanted the option of printing verbose |
| machine checks, but wanted the default to be as if verbose |
| machine check printing was turned off, then one would choose |
| the printing mode to be 0. Then, upon reboot, one could add |
| the boot command line "verbose_mcheck=1" to get the normal |
| verbose machine check printing, or "verbose_mcheck=2" to get |
| the maximum information available. |
| |
| Take the default (1) unless you want more control or more info. |
| |
| choice |
| prompt "Timer interrupt frequency (HZ)?" |
| default HZ_128 if ALPHA_QEMU |
| default HZ_1200 if ALPHA_RAWHIDE |
| default HZ_1024 |
| help |
| The frequency at which timer interrupts occur. A high frequency |
| minimizes latency, whereas a low frequency minimizes overhead of |
| process accounting. The later effect is especially significant |
| when being run under QEMU. |
| |
| Note that some Alpha hardware cannot change the interrupt frequency |
| of the timer. If unsure, say 1024 (or 1200 for Rawhide). |
| |
| config HZ_32 |
| bool "32 Hz" |
| config HZ_64 |
| bool "64 Hz" |
| config HZ_128 |
| bool "128 Hz" |
| config HZ_256 |
| bool "256 Hz" |
| config HZ_1024 |
| bool "1024 Hz" |
| config HZ_1200 |
| bool "1200 Hz" |
| endchoice |
| |
| config HZ |
| int |
| default 32 if HZ_32 |
| default 64 if HZ_64 |
| default 128 if HZ_128 |
| default 256 if HZ_256 |
| default 1200 if HZ_1200 |
| default 1024 |
| |
| config SRM_ENV |
| tristate "SRM environment through procfs" |
| depends on PROC_FS |
| help |
| If you enable this option, a subdirectory inside /proc called |
| /proc/srm_environment will give you access to the all important |
| SRM environment variables (those which have a name) and also |
| to all others (by their internal number). |
| |
| SRM is something like a BIOS for Alpha machines. There are some |
| other such BIOSes, like AlphaBIOS, which this driver cannot |
| support (hey, that's not SRM!). |
| |
| Despite the fact that this driver doesn't work on all Alphas (but |
| only on those which have SRM as their firmware), it's save to |
| build it even if your particular machine doesn't know about SRM |
| (or if you intend to compile a generic kernel). It will simply |
| not create those subdirectory in /proc (and give you some warning, |
| of course). |
| |
| This driver is also available as a module and will be called |
| srm_env then. |
| |
| endmenu |
| |
| # DUMMY_CONSOLE may be defined in drivers/video/console/Kconfig |
| # but we also need it if VGA_HOSE is set |
| config DUMMY_CONSOLE |
| bool |
| depends on VGA_HOSE |
| default y |