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