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