496 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			496 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_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 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 TRACE_IRQFLAGS_SUPPORT
 | 
						|
 | 
						|
config SPARC32
 | 
						|
	def_bool !64BIT
 | 
						|
	select ARCH_32BIT_OFF_T
 | 
						|
	select ARCH_HAS_CPU_FINALIZE_INIT if !SMP
 | 
						|
	select ARCH_HAS_SYNC_DMA_FOR_CPU
 | 
						|
	select CLZ_TAB
 | 
						|
	select DMA_DIRECT_REMAP
 | 
						|
	select GENERIC_ATOMIC64
 | 
						|
	select HAVE_UID16
 | 
						|
	select LOCK_MM_AND_FIND_VMA
 | 
						|
	select OLD_SIGACTION
 | 
						|
	select ZONE_DMA
 | 
						|
 | 
						|
config SPARC64
 | 
						|
	def_bool 64BIT
 | 
						|
	select ALTERNATE_USER_ADDRESS_SPACE
 | 
						|
	select HAVE_FUNCTION_TRACER
 | 
						|
	select HAVE_FUNCTION_GRAPH_TRACER
 | 
						|
	select HAVE_KRETPROBES
 | 
						|
	select HAVE_KPROBES
 | 
						|
	select MMU_GATHER_RCU_TABLE_FREE if SMP
 | 
						|
	select MMU_GATHER_MERGE_VMAS
 | 
						|
	select MMU_GATHER_NO_FLUSH_CACHE
 | 
						|
	select HAVE_ARCH_TRANSPARENT_HUGEPAGE
 | 
						|
	select HAVE_DYNAMIC_FTRACE
 | 
						|
	select HAVE_FTRACE_MCOUNT_RECORD
 | 
						|
	select HAVE_SYSCALL_TRACEPOINTS
 | 
						|
	select HAVE_CONTEXT_TRACKING_USER
 | 
						|
	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
 | 
						|
	select HAVE_SETUP_PER_CPU_AREA
 | 
						|
	select NEED_PER_CPU_EMBED_FIRST_CHUNK
 | 
						|
	select NEED_PER_CPU_PAGE_FIRST_CHUNK
 | 
						|
 | 
						|
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 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 ARCH_FORCE_MAX_ORDER
 | 
						|
	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 || COMPILE_TEST
 | 
						|
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
 | 
						|
 | 
						|
source "drivers/sbus/char/Kconfig"
 |