xref: /openbmc/linux/arch/sparc/Kconfig (revision 0a94608f)
1# SPDX-License-Identifier: GPL-2.0-only
2config 64BIT
3	bool "64-bit kernel" if "$(ARCH)" = "sparc"
4	default "$(ARCH)" = "sparc64"
5	help
6	  SPARC is a family of RISC microprocessors designed and marketed by
7	  Sun Microsystems, incorporated.  They are very widely found in Sun
8	  workstations and clones.
9
10	  Say yes to build a 64-bit kernel - formerly known as sparc64
11	  Say no to build a 32-bit kernel - formerly known as sparc
12
13config SPARC
14	bool
15	default y
16	select ARCH_MIGHT_HAVE_PC_PARPORT if SPARC64 && PCI
17	select ARCH_MIGHT_HAVE_PC_SERIO
18	select DMA_OPS
19	select OF
20	select OF_PROMTREE
21	select HAVE_ASM_MODVERSIONS
22	select HAVE_ARCH_KGDB if !SMP || SPARC64
23	select HAVE_ARCH_TRACEHOOK
24	select HAVE_ARCH_SECCOMP if SPARC64
25	select HAVE_EXIT_THREAD
26	select HAVE_PCI
27	select SYSCTL_EXCEPTION_TRACE
28	select RTC_CLASS
29	select RTC_DRV_M48T59
30	select RTC_SYSTOHC
31	select HAVE_ARCH_JUMP_LABEL if SPARC64
32	select GENERIC_IRQ_SHOW
33	select ARCH_WANT_IPC_PARSE_VERSION
34	select GENERIC_PCI_IOMAP
35	select HAVE_NMI_WATCHDOG if SPARC64
36	select HAVE_CBPF_JIT if SPARC32
37	select HAVE_EBPF_JIT if SPARC64
38	select HAVE_DEBUG_BUGVERBOSE
39	select GENERIC_SMP_IDLE_THREAD
40	select MODULES_USE_ELF_RELA
41	select PCI_SYSCALL if PCI
42	select PCI_MSI_ARCH_FALLBACKS if PCI_MSI
43	select ODD_RT_SIGACTION
44	select OLD_SIGSUSPEND
45	select CPU_NO_EFFICIENT_FFS
46	select LOCKDEP_SMALL if LOCKDEP
47	select NEED_DMA_MAP_STATE
48	select NEED_SG_DMA_LENGTH
49	select TRACE_IRQFLAGS_SUPPORT
50
51config SPARC32
52	def_bool !64BIT
53	select ARCH_32BIT_OFF_T
54	select ARCH_HAS_SYNC_DMA_FOR_CPU
55	select CLZ_TAB
56	select DMA_DIRECT_REMAP
57	select GENERIC_ATOMIC64
58	select HAVE_UID16
59	select OLD_SIGACTION
60	select ZONE_DMA
61
62config SPARC64
63	def_bool 64BIT
64	select ALTERNATE_USER_ADDRESS_SPACE
65	select HAVE_FUNCTION_TRACER
66	select HAVE_FUNCTION_GRAPH_TRACER
67	select HAVE_KRETPROBES
68	select HAVE_KPROBES
69	select MMU_GATHER_RCU_TABLE_FREE if SMP
70	select HAVE_ARCH_TRANSPARENT_HUGEPAGE
71	select HAVE_DYNAMIC_FTRACE
72	select HAVE_FTRACE_MCOUNT_RECORD
73	select HAVE_SYSCALL_TRACEPOINTS
74	select HAVE_CONTEXT_TRACKING
75	select HAVE_TIF_NOHZ
76	select HAVE_DEBUG_KMEMLEAK
77	select IOMMU_HELPER
78	select SPARSE_IRQ
79	select RTC_DRV_CMOS
80	select RTC_DRV_BQ4802
81	select RTC_DRV_SUN4V
82	select RTC_DRV_STARFIRE
83	select HAVE_PERF_EVENTS
84	select PERF_USE_VMALLOC
85	select ARCH_HAVE_NMI_SAFE_CMPXCHG
86	select HAVE_C_RECORDMCOUNT
87	select HAVE_ARCH_AUDITSYSCALL
88	select ARCH_SUPPORTS_ATOMIC_RMW
89	select ARCH_SUPPORTS_DEBUG_PAGEALLOC
90	select HAVE_NMI
91	select HAVE_REGS_AND_STACK_ACCESS_API
92	select ARCH_USE_QUEUED_RWLOCKS
93	select ARCH_USE_QUEUED_SPINLOCKS
94	select GENERIC_TIME_VSYSCALL
95	select ARCH_CLOCKSOURCE_DATA
96	select ARCH_HAS_PTE_SPECIAL
97	select PCI_DOMAINS if PCI
98	select ARCH_HAS_GIGANTIC_PAGE
99	select HAVE_SOFTIRQ_ON_OWN_STACK
100	select HAVE_SETUP_PER_CPU_AREA
101	select NEED_PER_CPU_EMBED_FIRST_CHUNK
102	select NEED_PER_CPU_PAGE_FIRST_CHUNK
103
104config ARCH_PROC_KCORE_TEXT
105	def_bool y
106
107config CPU_BIG_ENDIAN
108	def_bool y
109
110config ARCH_ATU
111	bool
112	default y if SPARC64
113
114config STACKTRACE_SUPPORT
115	bool
116	default y if SPARC64
117
118config LOCKDEP_SUPPORT
119	bool
120	default y if SPARC64
121
122config ARCH_HIBERNATION_POSSIBLE
123	def_bool y if SPARC64
124
125config AUDIT_ARCH
126	bool
127	default y
128
129config MMU
130	bool
131	default y
132
133config HIGHMEM
134	bool
135	default y if SPARC32
136	select KMAP_LOCAL
137
138config GENERIC_ISA_DMA
139	bool
140	default y if SPARC32
141
142config PGTABLE_LEVELS
143	default 4 if 64BIT
144	default 3
145
146config ARCH_SUPPORTS_UPROBES
147	def_bool y if SPARC64
148
149menu "Processor type and features"
150
151config SMP
152	bool "Symmetric multi-processing support"
153	help
154	  This enables support for systems with more than one CPU. If you have
155	  a system with only one CPU, say N. If you have a system with more
156	  than one CPU, say Y.
157
158	  If you say N here, the kernel will run on uni- and multiprocessor
159	  machines, but will use only one CPU of a multiprocessor machine. If
160	  you say Y here, the kernel will run on many, but not all,
161	  uniprocessor machines. On a uniprocessor machine, the kernel
162	  will run faster if you say N here.
163
164	  People using multiprocessor machines who say Y here should also say
165	  Y to "Enhanced Real Time Clock Support", below. The "Advanced Power
166	  Management" code will be disabled if you say Y here.
167
168	  See also <file:Documentation/admin-guide/lockup-watchdogs.rst> and the SMP-HOWTO
169	  available at <https://www.tldp.org/docs.html#howto>.
170
171	  If you don't know what to do here, say N.
172
173config NR_CPUS
174	int "Maximum number of CPUs"
175	depends on SMP
176	range 2 32 if SPARC32
177	range 2 4096 if SPARC64
178	default 32 if SPARC32
179	default 4096 if SPARC64
180
181source "kernel/Kconfig.hz"
182
183config GENERIC_HWEIGHT
184	bool
185	default y
186
187config GENERIC_CALIBRATE_DELAY
188	bool
189	default y
190
191config ARCH_MAY_HAVE_PC_FDC
192	bool
193	default y
194
195config EMULATED_CMPXCHG
196	bool
197	default y if SPARC32
198	help
199	  Sparc32 does not have a CAS instruction like sparc64. cmpxchg()
200	  is emulated, and therefore it is not completely atomic.
201
202# Makefile helpers
203config SPARC32_SMP
204	bool
205	default y
206	depends on SPARC32 && SMP
207
208config SPARC64_SMP
209	bool
210	default y
211	depends on SPARC64 && SMP
212
213config EARLYFB
214	bool "Support for early boot text console"
215	default y
216	depends on SPARC64
217	help
218	  Say Y here to enable a faster early framebuffer boot console.
219
220config HOTPLUG_CPU
221	bool "Support for hot-pluggable CPUs"
222	depends on SPARC64 && SMP
223	help
224	  Say Y here to experiment with turning CPUs off and on.  CPUs
225	  can be controlled through /sys/devices/system/cpu/cpu#.
226	  Say N if you want to disable CPU hotplug.
227
228if SPARC64
229source "drivers/cpufreq/Kconfig"
230endif
231
232config US3_MC
233	tristate "UltraSPARC-III Memory Controller driver"
234	depends on SPARC64
235	default y
236	help
237	  This adds a driver for the UltraSPARC-III memory controller.
238	  Loading this driver allows exact mnemonic strings to be
239	  printed in the event of a memory error, so that the faulty DIMM
240	  on the motherboard can be matched to the error.
241
242	  If in doubt, say Y, as this information can be very useful.
243
244# Global things across all Sun machines.
245config GENERIC_LOCKBREAK
246	bool
247	default y
248	depends on SPARC64 && SMP && PREEMPTION
249
250config NUMA
251	bool "NUMA support"
252	depends on SPARC64 && SMP
253
254config NODES_SHIFT
255	int "Maximum NUMA Nodes (as a power of 2)"
256	range 4 5 if SPARC64
257	default "5"
258	depends on NUMA
259	help
260	  Specify the maximum number of NUMA Nodes available on the target
261	  system.  Increases memory reserved to accommodate various tables.
262
263config ARCH_SPARSEMEM_ENABLE
264	def_bool y if SPARC64
265	select SPARSEMEM_VMEMMAP_ENABLE
266
267config ARCH_SPARSEMEM_DEFAULT
268	def_bool y if SPARC64
269
270config FORCE_MAX_ZONEORDER
271	int "Maximum zone order"
272	default "13"
273	help
274	  The kernel memory allocator divides physically contiguous memory
275	  blocks into "zones", where each zone is a power of two number of
276	  pages.  This option selects the largest power of two that the kernel
277	  keeps in the memory allocator.  If you need to allocate very large
278	  blocks of physically contiguous memory, then you may need to
279	  increase this value.
280
281	  This config option is actually maximum order plus one. For example,
282	  a value of 13 means that the largest free memory block is 2^12 pages.
283
284if SPARC64
285source "kernel/power/Kconfig"
286endif
287
288config SCHED_SMT
289	bool "SMT (Hyperthreading) scheduler support"
290	depends on SPARC64 && SMP
291	default y
292	help
293	  SMT scheduler support improves the CPU scheduler's decision making
294	  when dealing with SPARC cpus at a cost of slightly increased overhead
295	  in some places. If unsure say N here.
296
297config SCHED_MC
298	bool "Multi-core scheduler support"
299	depends on SPARC64 && SMP
300	default y
301	help
302	  Multi-core scheduler support improves the CPU scheduler's decision
303	  making when dealing with multi-core CPU chips at a cost of slightly
304	  increased overhead in some places. If unsure say N here.
305
306config CMDLINE_BOOL
307	bool "Default bootloader kernel arguments"
308	depends on SPARC64
309
310config CMDLINE
311	string "Initial kernel command string"
312	depends on CMDLINE_BOOL
313	default "console=ttyS0,9600 root=/dev/sda1"
314	help
315	  Say Y here if you want to be able to pass default arguments to
316	  the kernel. This will be overridden by the bootloader, if you
317	  use one (such as SILO). This is most useful if you want to boot
318	  a kernel from TFTP, and want default options to be available
319	  with having them passed on the command line.
320
321	  NOTE: This option WILL override the PROM bootargs setting!
322
323config SUN_PM
324	bool
325	default y if SPARC32
326	help
327	  Enable power management and CPU standby features on supported
328	  SPARC platforms.
329
330config SPARC_LED
331	tristate "Sun4m LED driver"
332	depends on SPARC32
333	help
334	  This driver toggles the front-panel LED on sun4m systems
335	  in a user-specifiable manner.  Its state can be probed
336	  by reading /proc/led and its blinking mode can be changed
337	  via writes to /proc/led
338
339config SERIAL_CONSOLE
340	bool
341	depends on SPARC32
342	default y
343	help
344	  If you say Y here, it will be possible to use a serial port as the
345	  system console (the system console is the device which receives all
346	  kernel messages and warnings and which allows logins in single user
347	  mode). This could be useful if some terminal or printer is connected
348	  to that serial port.
349
350	  Even if you say Y here, the currently visible virtual console
351	  (/dev/tty0) will still be used as the system console by default, but
352	  you can alter that using a kernel command line option such as
353	  "console=ttyS1". (Try "man bootparam" or see the documentation of
354	  your boot loader (silo) about how to pass options to the kernel at
355	  boot time.)
356
357	  If you don't have a graphics card installed and you say Y here, the
358	  kernel will automatically use the first serial line, /dev/ttyS0, as
359	  system console.
360
361	  If unsure, say N.
362
363config SPARC_LEON
364	bool "Sparc Leon processor family"
365	depends on SPARC32
366	select USB_EHCI_BIG_ENDIAN_MMIO
367	select USB_EHCI_BIG_ENDIAN_DESC
368	select USB_UHCI_BIG_ENDIAN_MMIO
369	select USB_UHCI_BIG_ENDIAN_DESC
370	help
371	  If you say Y here if you are running on a SPARC-LEON processor.
372	  The LEON processor is a synthesizable VHDL model of the
373	  SPARC-v8 standard. LEON is  part of the GRLIB collection of
374	  IP cores that are distributed under GPL. GRLIB can be downloaded
375	  from www.gaisler.com. You can download a sparc-linux cross-compilation
376	  toolchain at www.gaisler.com.
377
378if SPARC_LEON
379menu "U-Boot options"
380
381config UBOOT_LOAD_ADDR
382	hex "uImage Load Address"
383	default 0x40004000
384	help
385	 U-Boot kernel load address, the address in physical address space
386	 where u-boot will place the Linux kernel before booting it.
387	 This address is normally the base address of main memory + 0x4000.
388
389config UBOOT_FLASH_ADDR
390	hex "uImage.o Load Address"
391	default 0x00080000
392	help
393	 Optional setting only affecting the uImage.o ELF-image used to
394	 download the uImage file to the target using a ELF-loader other than
395	 U-Boot. It may for example be used to download an uImage to FLASH with
396	 the GRMON utility before even starting u-boot.
397
398config UBOOT_ENTRY_ADDR
399	hex "uImage Entry Address"
400	default 0xf0004000
401	help
402	 Do not change this unless you know what you're doing. This is
403	 hardcoded by the SPARC32 and LEON port.
404
405	 This is the virtual address u-boot jumps to when booting the Linux
406	 Kernel.
407
408endmenu
409endif
410
411endmenu
412
413menu "Bus options (PCI etc.)"
414config SBUS
415	bool
416	default y
417
418config SBUSCHAR
419	bool
420	default y
421
422config SUN_LDOMS
423	bool "Sun Logical Domains support"
424	depends on SPARC64
425	help
426	  Say Y here is you want to support virtual devices via
427	  Logical Domains.
428
429config PCIC_PCI
430	bool
431	depends on PCI && SPARC32 && !SPARC_LEON
432	default y
433
434config LEON_PCI
435	bool
436	depends on PCI && SPARC_LEON
437	default y
438
439config SPARC_GRPCI1
440	bool "GRPCI Host Bridge Support"
441	depends on LEON_PCI
442	default y
443	help
444	  Say Y here to include the GRPCI Host Bridge Driver. The GRPCI
445	  PCI host controller is typically found in GRLIB SPARC32/LEON
446	  systems. The driver has one property (all_pci_errors) controlled
447	  from the bootloader that makes the GRPCI to generate interrupts
448	  on detected PCI Parity and System errors.
449
450config SPARC_GRPCI2
451	bool "GRPCI2 Host Bridge Support"
452	depends on LEON_PCI
453	default y
454	help
455	  Say Y here to include the GRPCI2 Host Bridge Driver.
456
457config SUN_OPENPROMFS
458	tristate "Openprom tree appears in /proc/openprom"
459	help
460	  If you say Y, the OpenPROM device tree will be available as a
461	  virtual file system, which you can mount to /proc/openprom by "mount
462	  -t openpromfs none /proc/openprom".
463
464	  To compile the /proc/openprom support as a module, choose M here: the
465	  module will be called openpromfs.
466
467	  Only choose N if you know in advance that you will not need to modify
468	  OpenPROM settings on the running system.
469
470# Makefile helpers
471config SPARC64_PCI
472	bool
473	default y
474	depends on SPARC64 && PCI
475
476config SPARC64_PCI_MSI
477	bool
478	default y
479	depends on SPARC64_PCI && PCI_MSI
480
481endmenu
482
483config COMPAT
484	bool
485	depends on SPARC64
486	default y
487	select HAVE_UID16
488	select ARCH_WANT_OLD_COMPAT_IPC
489	select COMPAT_OLD_SIGACTION
490
491config SYSVIPC_COMPAT
492	bool
493	depends on COMPAT && SYSVIPC
494	default y
495
496source "drivers/sbus/char/Kconfig"
497