mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-23 19:14:30 +08:00
63703f37aa
ZONE_[DMA|DMA32] configs have duplicate definitions on platforms that subscribe to them. Instead, just make them generic options which can be selected on applicable platforms. Also only x86/arm64 architectures could enable both ZONE_DMA and ZONE_DMA32 if EXPERT, add ARCH_HAS_ZONE_DMA_SET to make dma zone configurable and visible on the two architectures. Link: https://lkml.kernel.org/r/20210528074557.17768-1-wangkefeng.wang@huawei.com Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com> Acked-by: Catalin Marinas <catalin.marinas@arm.com> [arm64] Acked-by: Geert Uytterhoeven <geert@linux-m68k.org> [m68k] Acked-by: Mike Rapoport <rppt@linux.ibm.com> Acked-by: Palmer Dabbelt <palmerdabbelt@google.com> [RISC-V] Acked-by: Michal Simek <michal.simek@xilinx.com> [microblaze] Acked-by: Michael Ellerman <mpe@ellerman.id.au> [powerpc] Cc: Catalin Marinas <catalin.marinas@arm.com> Cc: Will Deacon <will@kernel.org> Cc: Geert Uytterhoeven <geert@linux-m68k.org> Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de> Cc: "David S. Miller" <davem@davemloft.net> Cc: Ingo Molnar <mingo@redhat.com> Cc: Borislav Petkov <bp@alien8.de> Cc: Richard Henderson <rth@twiddle.net> Cc: Russell King <linux@armlinux.org.uk> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
504 lines
13 KiB
Plaintext
504 lines
13 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0-only
|
|
config 64BIT
|
|
bool "64-bit kernel" if "$(ARCH)" = "sparc"
|
|
default "$(ARCH)" = "sparc64"
|
|
help
|
|
SPARC is a family of RISC microprocessors designed and marketed by
|
|
Sun Microsystems, incorporated. They are very widely found in Sun
|
|
workstations and clones.
|
|
|
|
Say yes to build a 64-bit kernel - formerly known as sparc64
|
|
Say no to build a 32-bit kernel - formerly known as sparc
|
|
|
|
config SPARC
|
|
bool
|
|
default y
|
|
select ARCH_MIGHT_HAVE_PC_PARPORT if SPARC64 && PCI
|
|
select ARCH_MIGHT_HAVE_PC_SERIO
|
|
select DMA_OPS
|
|
select OF
|
|
select OF_PROMTREE
|
|
select HAVE_ASM_MODVERSIONS
|
|
select HAVE_IDE
|
|
select HAVE_ARCH_KGDB if !SMP || SPARC64
|
|
select HAVE_ARCH_TRACEHOOK
|
|
select HAVE_ARCH_SECCOMP if SPARC64
|
|
select HAVE_EXIT_THREAD
|
|
select HAVE_PCI
|
|
select SYSCTL_EXCEPTION_TRACE
|
|
select RTC_CLASS
|
|
select RTC_DRV_M48T59
|
|
select RTC_SYSTOHC
|
|
select HAVE_ARCH_JUMP_LABEL if SPARC64
|
|
select GENERIC_IRQ_SHOW
|
|
select ARCH_WANT_IPC_PARSE_VERSION
|
|
select GENERIC_PCI_IOMAP
|
|
select HAVE_NMI_WATCHDOG if SPARC64
|
|
select HAVE_CBPF_JIT if SPARC32
|
|
select HAVE_EBPF_JIT if SPARC64
|
|
select HAVE_DEBUG_BUGVERBOSE
|
|
select GENERIC_SMP_IDLE_THREAD
|
|
select GENERIC_STRNCPY_FROM_USER
|
|
select GENERIC_STRNLEN_USER
|
|
select MODULES_USE_ELF_RELA
|
|
select PCI_SYSCALL if PCI
|
|
select PCI_MSI_ARCH_FALLBACKS if PCI_MSI
|
|
select ODD_RT_SIGACTION
|
|
select OLD_SIGSUSPEND
|
|
select CPU_NO_EFFICIENT_FFS
|
|
select LOCKDEP_SMALL if LOCKDEP
|
|
select NEED_DMA_MAP_STATE
|
|
select NEED_SG_DMA_LENGTH
|
|
select SET_FS
|
|
|
|
config SPARC32
|
|
def_bool !64BIT
|
|
select ARCH_32BIT_OFF_T
|
|
select ARCH_HAS_SYNC_DMA_FOR_CPU
|
|
select GENERIC_ATOMIC64
|
|
select CLZ_TAB
|
|
select HAVE_UID16
|
|
select OLD_SIGACTION
|
|
select ZONE_DMA
|
|
|
|
config SPARC64
|
|
def_bool 64BIT
|
|
select HAVE_FUNCTION_TRACER
|
|
select HAVE_FUNCTION_GRAPH_TRACER
|
|
select HAVE_KRETPROBES
|
|
select HAVE_KPROBES
|
|
select MMU_GATHER_RCU_TABLE_FREE if SMP
|
|
select HAVE_ARCH_TRANSPARENT_HUGEPAGE
|
|
select HAVE_DYNAMIC_FTRACE
|
|
select HAVE_FTRACE_MCOUNT_RECORD
|
|
select HAVE_SYSCALL_TRACEPOINTS
|
|
select HAVE_CONTEXT_TRACKING
|
|
select HAVE_TIF_NOHZ
|
|
select HAVE_DEBUG_KMEMLEAK
|
|
select IOMMU_HELPER
|
|
select SPARSE_IRQ
|
|
select RTC_DRV_CMOS
|
|
select RTC_DRV_BQ4802
|
|
select RTC_DRV_SUN4V
|
|
select RTC_DRV_STARFIRE
|
|
select HAVE_PERF_EVENTS
|
|
select PERF_USE_VMALLOC
|
|
select ARCH_HAVE_NMI_SAFE_CMPXCHG
|
|
select HAVE_C_RECORDMCOUNT
|
|
select HAVE_ARCH_AUDITSYSCALL
|
|
select ARCH_SUPPORTS_ATOMIC_RMW
|
|
select ARCH_SUPPORTS_DEBUG_PAGEALLOC
|
|
select HAVE_NMI
|
|
select HAVE_REGS_AND_STACK_ACCESS_API
|
|
select ARCH_USE_QUEUED_RWLOCKS
|
|
select ARCH_USE_QUEUED_SPINLOCKS
|
|
select GENERIC_TIME_VSYSCALL
|
|
select ARCH_CLOCKSOURCE_DATA
|
|
select ARCH_HAS_PTE_SPECIAL
|
|
select PCI_DOMAINS if PCI
|
|
select ARCH_HAS_GIGANTIC_PAGE
|
|
select HAVE_SOFTIRQ_ON_OWN_STACK
|
|
|
|
config ARCH_PROC_KCORE_TEXT
|
|
def_bool y
|
|
|
|
config CPU_BIG_ENDIAN
|
|
def_bool y
|
|
|
|
config ARCH_ATU
|
|
bool
|
|
default y if SPARC64
|
|
|
|
config STACKTRACE_SUPPORT
|
|
bool
|
|
default y if SPARC64
|
|
|
|
config LOCKDEP_SUPPORT
|
|
bool
|
|
default y if SPARC64
|
|
|
|
config ARCH_HIBERNATION_POSSIBLE
|
|
def_bool y if SPARC64
|
|
|
|
config AUDIT_ARCH
|
|
bool
|
|
default y
|
|
|
|
config HAVE_SETUP_PER_CPU_AREA
|
|
def_bool y if SPARC64
|
|
|
|
config NEED_PER_CPU_EMBED_FIRST_CHUNK
|
|
def_bool y if SPARC64
|
|
|
|
config NEED_PER_CPU_PAGE_FIRST_CHUNK
|
|
def_bool y if SPARC64
|
|
|
|
config MMU
|
|
bool
|
|
default y
|
|
|
|
config HIGHMEM
|
|
bool
|
|
default y if SPARC32
|
|
select KMAP_LOCAL
|
|
|
|
config GENERIC_ISA_DMA
|
|
bool
|
|
default y if SPARC32
|
|
|
|
config PGTABLE_LEVELS
|
|
default 4 if 64BIT
|
|
default 3
|
|
|
|
config ARCH_SUPPORTS_UPROBES
|
|
def_bool y if SPARC64
|
|
|
|
menu "Processor type and features"
|
|
|
|
config SMP
|
|
bool "Symmetric multi-processing support"
|
|
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.
|
|
|
|
People using multiprocessor machines who say Y here should also say
|
|
Y to "Enhanced Real Time Clock Support", below. The "Advanced Power
|
|
Management" code will be disabled if you say Y here.
|
|
|
|
See also <file:Documentation/admin-guide/lockup-watchdogs.rst> and 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"
|
|
depends on SMP
|
|
range 2 32 if SPARC32
|
|
range 2 4096 if SPARC64
|
|
default 32 if SPARC32
|
|
default 4096 if SPARC64
|
|
|
|
source "kernel/Kconfig.hz"
|
|
|
|
config GENERIC_HWEIGHT
|
|
bool
|
|
default y
|
|
|
|
config GENERIC_CALIBRATE_DELAY
|
|
bool
|
|
default y
|
|
|
|
config ARCH_MAY_HAVE_PC_FDC
|
|
bool
|
|
default y
|
|
|
|
config EMULATED_CMPXCHG
|
|
bool
|
|
default y if SPARC32
|
|
help
|
|
Sparc32 does not have a CAS instruction like sparc64. cmpxchg()
|
|
is emulated, and therefore it is not completely atomic.
|
|
|
|
# Makefile helpers
|
|
config SPARC32_SMP
|
|
bool
|
|
default y
|
|
depends on SPARC32 && SMP
|
|
|
|
config SPARC64_SMP
|
|
bool
|
|
default y
|
|
depends on SPARC64 && SMP
|
|
|
|
config EARLYFB
|
|
bool "Support for early boot text console"
|
|
default y
|
|
depends on SPARC64
|
|
help
|
|
Say Y here to enable a faster early framebuffer boot console.
|
|
|
|
config HOTPLUG_CPU
|
|
bool "Support for hot-pluggable CPUs"
|
|
depends on SPARC64 && SMP
|
|
help
|
|
Say Y here to experiment with turning CPUs off and on. CPUs
|
|
can be controlled through /sys/devices/system/cpu/cpu#.
|
|
Say N if you want to disable CPU hotplug.
|
|
|
|
if SPARC64
|
|
source "drivers/cpufreq/Kconfig"
|
|
endif
|
|
|
|
config US3_MC
|
|
tristate "UltraSPARC-III Memory Controller driver"
|
|
depends on SPARC64
|
|
default y
|
|
help
|
|
This adds a driver for the UltraSPARC-III memory controller.
|
|
Loading this driver allows exact mnemonic strings to be
|
|
printed in the event of a memory error, so that the faulty DIMM
|
|
on the motherboard can be matched to the error.
|
|
|
|
If in doubt, say Y, as this information can be very useful.
|
|
|
|
# Global things across all Sun machines.
|
|
config GENERIC_LOCKBREAK
|
|
bool
|
|
default y
|
|
depends on SPARC64 && SMP && PREEMPTION
|
|
|
|
config NUMA
|
|
bool "NUMA support"
|
|
depends on SPARC64 && SMP
|
|
|
|
config NODES_SHIFT
|
|
int "Maximum NUMA Nodes (as a power of 2)"
|
|
range 4 5 if SPARC64
|
|
default "5"
|
|
depends on NUMA
|
|
help
|
|
Specify the maximum number of NUMA Nodes available on the target
|
|
system. Increases memory reserved to accommodate various tables.
|
|
|
|
config ARCH_SPARSEMEM_ENABLE
|
|
def_bool y if SPARC64
|
|
select SPARSEMEM_VMEMMAP_ENABLE
|
|
|
|
config ARCH_SPARSEMEM_DEFAULT
|
|
def_bool y if SPARC64
|
|
|
|
config FORCE_MAX_ZONEORDER
|
|
int "Maximum zone order"
|
|
default "13"
|
|
help
|
|
The kernel memory allocator divides physically contiguous memory
|
|
blocks into "zones", where each zone is a power of two number of
|
|
pages. This option selects the largest power of two that the kernel
|
|
keeps in the memory allocator. If you need to allocate very large
|
|
blocks of physically contiguous memory, then you may need to
|
|
increase this value.
|
|
|
|
This config option is actually maximum order plus one. For example,
|
|
a value of 13 means that the largest free memory block is 2^12 pages.
|
|
|
|
if SPARC64
|
|
source "kernel/power/Kconfig"
|
|
endif
|
|
|
|
config SCHED_SMT
|
|
bool "SMT (Hyperthreading) scheduler support"
|
|
depends on SPARC64 && SMP
|
|
default y
|
|
help
|
|
SMT scheduler support improves the CPU scheduler's decision making
|
|
when dealing with SPARC cpus at a cost of slightly increased overhead
|
|
in some places. If unsure say N here.
|
|
|
|
config SCHED_MC
|
|
bool "Multi-core scheduler support"
|
|
depends on SPARC64 && SMP
|
|
default y
|
|
help
|
|
Multi-core scheduler support improves the CPU scheduler's decision
|
|
making when dealing with multi-core CPU chips at a cost of slightly
|
|
increased overhead in some places. If unsure say N here.
|
|
|
|
config CMDLINE_BOOL
|
|
bool "Default bootloader kernel arguments"
|
|
depends on SPARC64
|
|
|
|
config CMDLINE
|
|
string "Initial kernel command string"
|
|
depends on CMDLINE_BOOL
|
|
default "console=ttyS0,9600 root=/dev/sda1"
|
|
help
|
|
Say Y here if you want to be able to pass default arguments to
|
|
the kernel. This will be overridden by the bootloader, if you
|
|
use one (such as SILO). This is most useful if you want to boot
|
|
a kernel from TFTP, and want default options to be available
|
|
with having them passed on the command line.
|
|
|
|
NOTE: This option WILL override the PROM bootargs setting!
|
|
|
|
config SUN_PM
|
|
bool
|
|
default y if SPARC32
|
|
help
|
|
Enable power management and CPU standby features on supported
|
|
SPARC platforms.
|
|
|
|
config SPARC_LED
|
|
tristate "Sun4m LED driver"
|
|
depends on SPARC32
|
|
help
|
|
This driver toggles the front-panel LED on sun4m systems
|
|
in a user-specifiable manner. Its state can be probed
|
|
by reading /proc/led and its blinking mode can be changed
|
|
via writes to /proc/led
|
|
|
|
config SERIAL_CONSOLE
|
|
bool
|
|
depends on SPARC32
|
|
default y
|
|
help
|
|
If you say Y here, it will be possible to use a serial port as the
|
|
system console (the system console is the device which receives all
|
|
kernel messages and warnings and which allows logins in single user
|
|
mode). This could be useful if some terminal or printer is connected
|
|
to that serial port.
|
|
|
|
Even if you say Y here, the currently visible virtual console
|
|
(/dev/tty0) will still be used as the system console by default, but
|
|
you can alter that using a kernel command line option such as
|
|
"console=ttyS1". (Try "man bootparam" or see the documentation of
|
|
your boot loader (silo) about how to pass options to the kernel at
|
|
boot time.)
|
|
|
|
If you don't have a graphics card installed and you say Y here, the
|
|
kernel will automatically use the first serial line, /dev/ttyS0, as
|
|
system console.
|
|
|
|
If unsure, say N.
|
|
|
|
config SPARC_LEON
|
|
bool "Sparc Leon processor family"
|
|
depends on SPARC32
|
|
select USB_EHCI_BIG_ENDIAN_MMIO
|
|
select USB_EHCI_BIG_ENDIAN_DESC
|
|
select USB_UHCI_BIG_ENDIAN_MMIO
|
|
select USB_UHCI_BIG_ENDIAN_DESC
|
|
help
|
|
If you say Y here if you are running on a SPARC-LEON processor.
|
|
The LEON processor is a synthesizable VHDL model of the
|
|
SPARC-v8 standard. LEON is part of the GRLIB collection of
|
|
IP cores that are distributed under GPL. GRLIB can be downloaded
|
|
from www.gaisler.com. You can download a sparc-linux cross-compilation
|
|
toolchain at www.gaisler.com.
|
|
|
|
if SPARC_LEON
|
|
menu "U-Boot options"
|
|
|
|
config UBOOT_LOAD_ADDR
|
|
hex "uImage Load Address"
|
|
default 0x40004000
|
|
help
|
|
U-Boot kernel load address, the address in physical address space
|
|
where u-boot will place the Linux kernel before booting it.
|
|
This address is normally the base address of main memory + 0x4000.
|
|
|
|
config UBOOT_FLASH_ADDR
|
|
hex "uImage.o Load Address"
|
|
default 0x00080000
|
|
help
|
|
Optional setting only affecting the uImage.o ELF-image used to
|
|
download the uImage file to the target using a ELF-loader other than
|
|
U-Boot. It may for example be used to download an uImage to FLASH with
|
|
the GRMON utility before even starting u-boot.
|
|
|
|
config UBOOT_ENTRY_ADDR
|
|
hex "uImage Entry Address"
|
|
default 0xf0004000
|
|
help
|
|
Do not change this unless you know what you're doing. This is
|
|
hardcoded by the SPARC32 and LEON port.
|
|
|
|
This is the virtual address u-boot jumps to when booting the Linux
|
|
Kernel.
|
|
|
|
endmenu
|
|
endif
|
|
|
|
endmenu
|
|
|
|
menu "Bus options (PCI etc.)"
|
|
config SBUS
|
|
bool
|
|
default y
|
|
|
|
config SBUSCHAR
|
|
bool
|
|
default y
|
|
|
|
config SUN_LDOMS
|
|
bool "Sun Logical Domains support"
|
|
depends on SPARC64
|
|
help
|
|
Say Y here is you want to support virtual devices via
|
|
Logical Domains.
|
|
|
|
config PCIC_PCI
|
|
bool
|
|
depends on PCI && SPARC32 && !SPARC_LEON
|
|
default y
|
|
|
|
config LEON_PCI
|
|
bool
|
|
depends on PCI && SPARC_LEON
|
|
default y
|
|
|
|
config SPARC_GRPCI1
|
|
bool "GRPCI Host Bridge Support"
|
|
depends on LEON_PCI
|
|
default y
|
|
help
|
|
Say Y here to include the GRPCI Host Bridge Driver. The GRPCI
|
|
PCI host controller is typically found in GRLIB SPARC32/LEON
|
|
systems. The driver has one property (all_pci_errors) controlled
|
|
from the bootloader that makes the GRPCI to generate interrupts
|
|
on detected PCI Parity and System errors.
|
|
|
|
config SPARC_GRPCI2
|
|
bool "GRPCI2 Host Bridge Support"
|
|
depends on LEON_PCI
|
|
default y
|
|
help
|
|
Say Y here to include the GRPCI2 Host Bridge Driver.
|
|
|
|
config SUN_OPENPROMFS
|
|
tristate "Openprom tree appears in /proc/openprom"
|
|
help
|
|
If you say Y, the OpenPROM device tree will be available as a
|
|
virtual file system, which you can mount to /proc/openprom by "mount
|
|
-t openpromfs none /proc/openprom".
|
|
|
|
To compile the /proc/openprom support as a module, choose M here: the
|
|
module will be called openpromfs.
|
|
|
|
Only choose N if you know in advance that you will not need to modify
|
|
OpenPROM settings on the running system.
|
|
|
|
# Makefile helpers
|
|
config SPARC64_PCI
|
|
bool
|
|
default y
|
|
depends on SPARC64 && PCI
|
|
|
|
config SPARC64_PCI_MSI
|
|
bool
|
|
default y
|
|
depends on SPARC64_PCI && PCI_MSI
|
|
|
|
endmenu
|
|
|
|
config COMPAT
|
|
bool
|
|
depends on SPARC64
|
|
default y
|
|
select HAVE_UID16
|
|
select ARCH_WANT_OLD_COMPAT_IPC
|
|
select COMPAT_OLD_SIGACTION
|
|
|
|
config SYSVIPC_COMPAT
|
|
bool
|
|
depends on COMPAT && SYSVIPC
|
|
default y
|
|
|
|
source "drivers/sbus/char/Kconfig"
|