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