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