mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2024-12-29 09:13:38 +00:00
de6c85bf91
DMA ops are a helper for architectures and not for drivers to override the DMA implementation. Unfortunately driver authors keep ignoring this. Make the fact more clear by renaming the symbol to ARCH_HAS_DMA_OPS and having the two drivers overriding their dma_ops depend on that. These drivers should probably be marked broken, but we can give them a bit of a grace period for that. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Thomas Gleixner <tglx@linutronix.de> Acked-by: Sakari Ailus <sakari.ailus@linux.intel.com> # for IPU6 Acked-by: Robin Murphy <robin.murphy@arm.com>
516 lines
15 KiB
Plaintext
516 lines
15 KiB
Plaintext
# 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_HAS_DMA_OPS if PCI
|
|
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 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
|