| # 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_HAS_CC_CAN_LINK | |
| select ARCH_HAS_CPU_CACHE_ALIASING | |
| select ARCH_HAS_DMA_OPS | |
| select ARCH_MIGHT_HAVE_PC_PARPORT if SPARC64 && PCI | |
| select ARCH_MIGHT_HAVE_PC_SERIO | |
| 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 HAS_IOPORT | |
| select HAVE_HARDLOCKUP_DETECTOR_SPARC64 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 GENERIC_LIB_CMPDI2 | |
| select GENERIC_LIB_UCMPDI2 | |
| select HAVE_UID16 | |
| select HAVE_PAGE_SIZE_4KB | |
| 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 HAVE_ARCH_TLB_REMOVE_TABLE if SMP | |
| select MMU_GATHER_MERGE_VMAS | |
| select MMU_GATHER_NO_FLUSH_CACHE | |
| select HAVE_ARCH_TRANSPARENT_HUGEPAGE | |
| select HAVE_DYNAMIC_FTRACE | |
| select HAVE_PAGE_SIZE_8KB | |
| 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 ARCH_SUPPORTS_HUGETLBFS | |
| select HAVE_NMI | |
| select HAVE_REGS_AND_STACK_ACCESS_API | |
| select ARCH_USE_QUEUED_RWLOCKS | |
| select ARCH_USE_QUEUED_SPINLOCKS | |
| 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 | |
| select ARCH_SUPPORTS_SCHED_SMT if SMP | |
| select ARCH_SUPPORTS_SCHED_MC if SMP | |
| select ARCH_HAS_LAZY_MMU_MODE | |
| select HAVE_GENERIC_VDSO | |
| select GENERIC_GETTIMEOFDAY | |
| config ARCH_PROC_KCORE_TEXT | |
| def_bool y | |
| config CPU_BIG_ENDIAN | |
| def_bool y | |
| 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 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 | |
| select FONT_SUN8x16 | |
| select FONT_SUPPORT | |
| 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 "Order of maximal physically contiguous allocations" | |
| default "12" | |
| help | |
| The kernel page allocator limits the size of maximal physically | |
| contiguous allocations. The limit is called MAX_PAGE_ORDER and it | |
| defines the maximal power of two of number of pages that can be | |
| allocated as a single contiguous block. This option allows | |
| overriding the default setting when ability to allocate very | |
| large blocks of physically contiguous memory is required. | |
| Don't change if unsure. | |
| if SPARC64 || COMPILE_TEST | |
| source "kernel/power/Kconfig" | |
| endif | |
| 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 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 | |
| depends on !LD_IS_LLD | |
| default y | |
| select HAVE_UID16 | |
| select ARCH_WANT_OLD_COMPAT_IPC | |
| select COMPAT_OLD_SIGACTION | |
| config ARCH_CC_CAN_LINK | |
| bool | |
| default $(cc_can_link_user,-m64) if 64BIT | |
| default $(cc_can_link_user,-m32) | |
| config ARCH_USERFLAGS | |
| string | |
| default "-m64" if 64BIT | |
| default "-m32" | |
| source "drivers/sbus/char/Kconfig" |