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