Merge tag 'powerpc-5.14-6' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc...
[linux-2.6-microblaze.git] / arch / sparc / Kconfig
1 # SPDX-License-Identifier: GPL-2.0-only
2 config 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
13 config 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 GENERIC_STRNCPY_FROM_USER
41         select GENERIC_STRNLEN_USER
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 SET_FS
52
53 config SPARC32
54         def_bool !64BIT
55         select ARCH_32BIT_OFF_T
56         select ARCH_HAS_SYNC_DMA_FOR_CPU
57         select GENERIC_ATOMIC64
58         select CLZ_TAB
59         select HAVE_UID16
60         select OLD_SIGACTION
61         select ZONE_DMA
62
63 config SPARC64
64         def_bool 64BIT
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
101 config ARCH_PROC_KCORE_TEXT
102         def_bool y
103
104 config CPU_BIG_ENDIAN
105         def_bool y
106
107 config ARCH_ATU
108         bool
109         default y if SPARC64
110
111 config STACKTRACE_SUPPORT
112         bool
113         default y if SPARC64
114
115 config LOCKDEP_SUPPORT
116         bool
117         default y if SPARC64
118
119 config ARCH_HIBERNATION_POSSIBLE
120         def_bool y if SPARC64
121
122 config AUDIT_ARCH
123         bool
124         default y
125
126 config HAVE_SETUP_PER_CPU_AREA
127         def_bool y if SPARC64
128
129 config NEED_PER_CPU_EMBED_FIRST_CHUNK
130         def_bool y if SPARC64
131
132 config NEED_PER_CPU_PAGE_FIRST_CHUNK
133         def_bool y if SPARC64
134
135 config MMU
136         bool
137         default y
138
139 config HIGHMEM
140         bool
141         default y if SPARC32
142         select KMAP_LOCAL
143
144 config GENERIC_ISA_DMA
145         bool
146         default y if SPARC32
147
148 config PGTABLE_LEVELS
149         default 4 if 64BIT
150         default 3
151
152 config ARCH_SUPPORTS_UPROBES
153         def_bool y if SPARC64
154
155 menu "Processor type and features"
156
157 config SMP
158         bool "Symmetric multi-processing support"
159         help
160           This enables support for systems with more than one CPU. If you have
161           a system with only one CPU, say N. If you have a system with more
162           than one CPU, say Y.
163
164           If you say N here, the kernel will run on uni- and multiprocessor
165           machines, but will use only one CPU of a multiprocessor machine. If
166           you say Y here, the kernel will run on many, but not all,
167           uniprocessor machines. On a uniprocessor machine, the kernel
168           will run faster if you say N here.
169
170           People using multiprocessor machines who say Y here should also say
171           Y to "Enhanced Real Time Clock Support", below. The "Advanced Power
172           Management" code will be disabled if you say Y here.
173
174           See also <file:Documentation/admin-guide/lockup-watchdogs.rst> and the SMP-HOWTO
175           available at <https://www.tldp.org/docs.html#howto>.
176
177           If you don't know what to do here, say N.
178
179 config NR_CPUS
180         int "Maximum number of CPUs"
181         depends on SMP
182         range 2 32 if SPARC32
183         range 2 4096 if SPARC64
184         default 32 if SPARC32
185         default 4096 if SPARC64
186
187 source "kernel/Kconfig.hz"
188
189 config GENERIC_HWEIGHT
190         bool
191         default y
192
193 config GENERIC_CALIBRATE_DELAY
194         bool
195         default y
196
197 config ARCH_MAY_HAVE_PC_FDC
198         bool
199         default y
200
201 config EMULATED_CMPXCHG
202         bool
203         default y if SPARC32
204         help
205           Sparc32 does not have a CAS instruction like sparc64. cmpxchg()
206           is emulated, and therefore it is not completely atomic.
207
208 # Makefile helpers
209 config SPARC32_SMP
210         bool
211         default y
212         depends on SPARC32 && SMP
213
214 config SPARC64_SMP
215         bool
216         default y
217         depends on SPARC64 && SMP
218
219 config EARLYFB
220         bool "Support for early boot text console"
221         default y
222         depends on SPARC64
223         help
224           Say Y here to enable a faster early framebuffer boot console.
225
226 config 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
234 if SPARC64
235 source "drivers/cpufreq/Kconfig"
236 endif
237
238 config 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.
251 config GENERIC_LOCKBREAK
252         bool
253         default y
254         depends on SPARC64 && SMP && PREEMPTION
255
256 config NUMA
257         bool "NUMA support"
258         depends on SPARC64 && SMP
259
260 config 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
269 config ARCH_SPARSEMEM_ENABLE
270         def_bool y if SPARC64
271         select SPARSEMEM_VMEMMAP_ENABLE
272
273 config ARCH_SPARSEMEM_DEFAULT
274         def_bool y if SPARC64
275
276 config FORCE_MAX_ZONEORDER
277         int "Maximum zone order"
278         default "13"
279         help
280           The kernel memory allocator divides physically contiguous memory
281           blocks into "zones", where each zone is a power of two number of
282           pages.  This option selects the largest power of two that the kernel
283           keeps in the memory allocator.  If you need to allocate very large
284           blocks of physically contiguous memory, then you may need to
285           increase this value.
286
287           This config option is actually maximum order plus one. For example,
288           a value of 13 means that the largest free memory block is 2^12 pages.
289
290 if SPARC64
291 source "kernel/power/Kconfig"
292 endif
293
294 config SCHED_SMT
295         bool "SMT (Hyperthreading) scheduler support"
296         depends on SPARC64 && SMP
297         default y
298         help
299           SMT scheduler support improves the CPU scheduler's decision making
300           when dealing with SPARC cpus at a cost of slightly increased overhead
301           in some places. If unsure say N here.
302
303 config SCHED_MC
304         bool "Multi-core scheduler support"
305         depends on SPARC64 && SMP
306         default y
307         help
308           Multi-core scheduler support improves the CPU scheduler's decision
309           making when dealing with multi-core CPU chips at a cost of slightly
310           increased overhead in some places. If unsure say N here.
311
312 config CMDLINE_BOOL
313         bool "Default bootloader kernel arguments"
314         depends on SPARC64
315
316 config CMDLINE
317         string "Initial kernel command string"
318         depends on CMDLINE_BOOL
319         default "console=ttyS0,9600 root=/dev/sda1"
320         help
321           Say Y here if you want to be able to pass default arguments to
322           the kernel. This will be overridden by the bootloader, if you
323           use one (such as SILO). This is most useful if you want to boot
324           a kernel from TFTP, and want default options to be available
325           with having them passed on the command line.
326
327           NOTE: This option WILL override the PROM bootargs setting!
328
329 config SUN_PM
330         bool
331         default y if SPARC32
332         help
333           Enable power management and CPU standby features on supported
334           SPARC platforms.
335
336 config SPARC_LED
337         tristate "Sun4m LED driver"
338         depends on SPARC32
339         help
340           This driver toggles the front-panel LED on sun4m systems
341           in a user-specifiable manner.  Its state can be probed
342           by reading /proc/led and its blinking mode can be changed
343           via writes to /proc/led
344
345 config SERIAL_CONSOLE
346         bool
347         depends on SPARC32
348         default y
349         help
350           If you say Y here, it will be possible to use a serial port as the
351           system console (the system console is the device which receives all
352           kernel messages and warnings and which allows logins in single user
353           mode). This could be useful if some terminal or printer is connected
354           to that serial port.
355
356           Even if you say Y here, the currently visible virtual console
357           (/dev/tty0) will still be used as the system console by default, but
358           you can alter that using a kernel command line option such as
359           "console=ttyS1". (Try "man bootparam" or see the documentation of
360           your boot loader (silo) about how to pass options to the kernel at
361           boot time.)
362
363           If you don't have a graphics card installed and you say Y here, the
364           kernel will automatically use the first serial line, /dev/ttyS0, as
365           system console.
366
367           If unsure, say N.
368
369 config SPARC_LEON
370         bool "Sparc Leon processor family"
371         depends on SPARC32
372         select USB_EHCI_BIG_ENDIAN_MMIO
373         select USB_EHCI_BIG_ENDIAN_DESC
374         select USB_UHCI_BIG_ENDIAN_MMIO
375         select USB_UHCI_BIG_ENDIAN_DESC
376         help
377           If you say Y here if you are running on a SPARC-LEON processor.
378           The LEON processor is a synthesizable VHDL model of the
379           SPARC-v8 standard. LEON is  part of the GRLIB collection of
380           IP cores that are distributed under GPL. GRLIB can be downloaded
381           from www.gaisler.com. You can download a sparc-linux cross-compilation
382           toolchain at www.gaisler.com.
383
384 if SPARC_LEON
385 menu "U-Boot options"
386
387 config UBOOT_LOAD_ADDR
388         hex "uImage Load Address"
389         default 0x40004000
390         help
391          U-Boot kernel load address, the address in physical address space
392          where u-boot will place the Linux kernel before booting it.
393          This address is normally the base address of main memory + 0x4000.
394
395 config UBOOT_FLASH_ADDR
396         hex "uImage.o Load Address"
397         default 0x00080000
398         help
399          Optional setting only affecting the uImage.o ELF-image used to
400          download the uImage file to the target using a ELF-loader other than
401          U-Boot. It may for example be used to download an uImage to FLASH with
402          the GRMON utility before even starting u-boot.
403
404 config UBOOT_ENTRY_ADDR
405         hex "uImage Entry Address"
406         default 0xf0004000
407         help
408          Do not change this unless you know what you're doing. This is
409          hardcoded by the SPARC32 and LEON port.
410
411          This is the virtual address u-boot jumps to when booting the Linux
412          Kernel.
413
414 endmenu
415 endif
416
417 endmenu
418
419 menu "Bus options (PCI etc.)"
420 config SBUS
421         bool
422         default y
423
424 config SBUSCHAR
425         bool
426         default y
427
428 config SUN_LDOMS
429         bool "Sun Logical Domains support"
430         depends on SPARC64
431         help
432           Say Y here is you want to support virtual devices via
433           Logical Domains.
434
435 config PCIC_PCI
436         bool
437         depends on PCI && SPARC32 && !SPARC_LEON
438         default y
439
440 config LEON_PCI
441         bool
442         depends on PCI && SPARC_LEON
443         default y
444
445 config SPARC_GRPCI1
446         bool "GRPCI Host Bridge Support"
447         depends on LEON_PCI
448         default y
449         help
450           Say Y here to include the GRPCI Host Bridge Driver. The GRPCI
451           PCI host controller is typically found in GRLIB SPARC32/LEON
452           systems. The driver has one property (all_pci_errors) controlled
453           from the bootloader that makes the GRPCI to generate interrupts
454           on detected PCI Parity and System errors.
455
456 config SPARC_GRPCI2
457         bool "GRPCI2 Host Bridge Support"
458         depends on LEON_PCI
459         default y
460         help
461           Say Y here to include the GRPCI2 Host Bridge Driver.
462
463 config SUN_OPENPROMFS
464         tristate "Openprom tree appears in /proc/openprom"
465         help
466           If you say Y, the OpenPROM device tree will be available as a
467           virtual file system, which you can mount to /proc/openprom by "mount
468           -t openpromfs none /proc/openprom".
469
470           To compile the /proc/openprom support as a module, choose M here: the
471           module will be called openpromfs.
472
473           Only choose N if you know in advance that you will not need to modify
474           OpenPROM settings on the running system.
475
476 # Makefile helpers
477 config SPARC64_PCI
478         bool
479         default y
480         depends on SPARC64 && PCI
481
482 config SPARC64_PCI_MSI
483         bool
484         default y
485         depends on SPARC64_PCI && PCI_MSI
486
487 endmenu
488
489 config COMPAT
490         bool
491         depends on SPARC64
492         default y
493         select HAVE_UID16
494         select ARCH_WANT_OLD_COMPAT_IPC
495         select COMPAT_OLD_SIGACTION
496
497 config SYSVIPC_COMPAT
498         bool
499         depends on COMPAT && SYSVIPC
500         default y
501
502 source "drivers/sbus/char/Kconfig"