arm64/neon: Disable -Wincompatible-pointer-types when building with Clang
[sfrench/cifs-2.6.git] / arch / sparc / Kconfig
1 config 64BIT
2         bool "64-bit kernel" if "$(ARCH)" = "sparc"
3         default "$(ARCH)" = "sparc64"
4         help
5           SPARC is a family of RISC microprocessors designed and marketed by
6           Sun Microsystems, incorporated.  They are very widely found in Sun
7           workstations and clones.
8
9           Say yes to build a 64-bit kernel - formerly known as sparc64
10           Say no to build a 32-bit kernel - formerly known as sparc
11
12 config SPARC
13         bool
14         default y
15         select ARCH_MIGHT_HAVE_PC_PARPORT if SPARC64 && PCI
16         select ARCH_MIGHT_HAVE_PC_SERIO
17         select OF
18         select OF_PROMTREE
19         select HAVE_IDE
20         select HAVE_OPROFILE
21         select HAVE_ARCH_KGDB if !SMP || SPARC64
22         select HAVE_ARCH_TRACEHOOK
23         select HAVE_EXIT_THREAD
24         select HAVE_PCI
25         select SYSCTL_EXCEPTION_TRACE
26         select RTC_CLASS
27         select RTC_DRV_M48T59
28         select RTC_SYSTOHC
29         select HAVE_ARCH_JUMP_LABEL if SPARC64
30         select GENERIC_IRQ_SHOW
31         select ARCH_WANT_IPC_PARSE_VERSION
32         select GENERIC_PCI_IOMAP
33         select HAVE_NMI_WATCHDOG if SPARC64
34         select HAVE_CBPF_JIT if SPARC32
35         select HAVE_EBPF_JIT if SPARC64
36         select HAVE_DEBUG_BUGVERBOSE
37         select GENERIC_SMP_IDLE_THREAD
38         select GENERIC_CLOCKEVENTS
39         select GENERIC_STRNCPY_FROM_USER
40         select GENERIC_STRNLEN_USER
41         select MODULES_USE_ELF_RELA
42         select PCI_SYSCALL if PCI
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
50 config SPARC32
51         def_bool !64BIT
52         select ARCH_HAS_SYNC_DMA_FOR_CPU
53         select GENERIC_ATOMIC64
54         select CLZ_TAB
55         select HAVE_UID16
56         select OLD_SIGACTION
57
58 config SPARC64
59         def_bool 64BIT
60         select HAVE_FUNCTION_TRACER
61         select HAVE_FUNCTION_GRAPH_TRACER
62         select HAVE_KRETPROBES
63         select HAVE_KPROBES
64         select HAVE_RCU_TABLE_FREE if SMP
65         select HAVE_MEMBLOCK_NODE_MAP
66         select HAVE_ARCH_TRANSPARENT_HUGEPAGE
67         select HAVE_DYNAMIC_FTRACE
68         select HAVE_FTRACE_MCOUNT_RECORD
69         select HAVE_SYSCALL_TRACEPOINTS
70         select HAVE_CONTEXT_TRACKING
71         select HAVE_DEBUG_KMEMLEAK
72         select IOMMU_HELPER
73         select SPARSE_IRQ
74         select RTC_DRV_CMOS
75         select RTC_DRV_BQ4802
76         select RTC_DRV_SUN4V
77         select RTC_DRV_STARFIRE
78         select HAVE_PERF_EVENTS
79         select PERF_USE_VMALLOC
80         select IRQ_PREFLOW_FASTEOI
81         select ARCH_HAVE_NMI_SAFE_CMPXCHG
82         select HAVE_C_RECORDMCOUNT
83         select HAVE_ARCH_AUDITSYSCALL
84         select ARCH_SUPPORTS_ATOMIC_RMW
85         select HAVE_NMI
86         select HAVE_REGS_AND_STACK_ACCESS_API
87         select ARCH_USE_QUEUED_RWLOCKS
88         select ARCH_USE_QUEUED_SPINLOCKS
89         select GENERIC_TIME_VSYSCALL
90         select ARCH_CLOCKSOURCE_DATA
91         select ARCH_HAS_PTE_SPECIAL
92         select PCI_DOMAINS if PCI
93
94 config ARCH_DEFCONFIG
95         string
96         default "arch/sparc/configs/sparc32_defconfig" if SPARC32
97         default "arch/sparc/configs/sparc64_defconfig" if SPARC64
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/lockup-watchdogs.txt> 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 RWSEM_GENERIC_SPINLOCK
194         bool
195         default y if SPARC32
196
197 config RWSEM_XCHGADD_ALGORITHM
198         bool
199         default y if SPARC64
200
201 config GENERIC_HWEIGHT
202         bool
203         default y
204
205 config GENERIC_CALIBRATE_DELAY
206         bool
207         default y
208
209 config ARCH_MAY_HAVE_PC_FDC
210         bool
211         default y
212
213 config EMULATED_CMPXCHG
214         bool
215         default y if SPARC32
216         help
217           Sparc32 does not have a CAS instruction like sparc64. cmpxchg()
218           is emulated, and therefore it is not completely atomic.
219
220 # Makefile helpers
221 config SPARC32_SMP
222         bool
223         default y
224         depends on SPARC32 && SMP
225
226 config SPARC64_SMP
227         bool
228         default y
229         depends on SPARC64 && SMP
230
231 config EARLYFB
232         bool "Support for early boot text console"
233         default y
234         depends on SPARC64
235         help
236           Say Y here to enable a faster early framebuffer boot console.
237
238 config SECCOMP
239         bool "Enable seccomp to safely compute untrusted bytecode"
240         depends on SPARC64 && PROC_FS
241         default y
242         help
243           This kernel feature is useful for number crunching applications
244           that may need to compute untrusted bytecode during their
245           execution. By using pipes or other transports made available to
246           the process as file descriptors supporting the read/write
247           syscalls, it's possible to isolate those applications in
248           their own address space using seccomp. Once seccomp is
249           enabled via /proc/<pid>/seccomp, it cannot be disabled
250           and the task is only allowed to execute a few safe syscalls
251           defined by each seccomp mode.
252
253           If unsure, say Y. Only embedded should say N here.
254
255 config HOTPLUG_CPU
256         bool "Support for hot-pluggable CPUs"
257         depends on SPARC64 && SMP
258         help
259           Say Y here to experiment with turning CPUs off and on.  CPUs
260           can be controlled through /sys/devices/system/cpu/cpu#.
261           Say N if you want to disable CPU hotplug.
262
263 if SPARC64
264 source "drivers/cpufreq/Kconfig"
265 endif
266
267 config US3_MC
268         tristate "UltraSPARC-III Memory Controller driver"
269         depends on SPARC64
270         default y
271         help
272           This adds a driver for the UltraSPARC-III memory controller.
273           Loading this driver allows exact mnemonic strings to be
274           printed in the event of a memory error, so that the faulty DIMM
275           on the motherboard can be matched to the error.
276
277           If in doubt, say Y, as this information can be very useful.
278
279 # Global things across all Sun machines.
280 config GENERIC_LOCKBREAK
281         bool
282         default y
283         depends on SPARC64 && SMP && PREEMPT
284
285 config NUMA
286         bool "NUMA support"
287         depends on SPARC64 && SMP
288
289 config NODES_SHIFT
290         int "Maximum NUMA Nodes (as a power of 2)"
291         range 4 5 if SPARC64
292         default "5"
293         depends on NEED_MULTIPLE_NODES
294         help
295           Specify the maximum number of NUMA Nodes available on the target
296           system.  Increases memory reserved to accommodate various tables.
297
298 # Some NUMA nodes have memory ranges that span
299 # other nodes.  Even though a pfn is valid and
300 # between a node's start and end pfns, it may not
301 # reside on that node.  See memmap_init_zone()
302 # for details.
303 config NODES_SPAN_OTHER_NODES
304         def_bool y
305         depends on NEED_MULTIPLE_NODES
306
307 config ARCH_SELECT_MEMORY_MODEL
308         def_bool y if SPARC64
309
310 config ARCH_SPARSEMEM_ENABLE
311         def_bool y if SPARC64
312         select SPARSEMEM_VMEMMAP_ENABLE
313
314 config ARCH_SPARSEMEM_DEFAULT
315         def_bool y if SPARC64
316
317 config FORCE_MAX_ZONEORDER
318         int "Maximum zone order"
319         default "13"
320         help
321           The kernel memory allocator divides physically contiguous memory
322           blocks into "zones", where each zone is a power of two number of
323           pages.  This option selects the largest power of two that the kernel
324           keeps in the memory allocator.  If you need to allocate very large
325           blocks of physically contiguous memory, then you may need to
326           increase this value.
327
328           This config option is actually maximum order plus one. For example,
329           a value of 13 means that the largest free memory block is 2^12 pages.
330
331 if SPARC64
332 source "kernel/power/Kconfig"
333 endif
334
335 config SCHED_SMT
336         bool "SMT (Hyperthreading) scheduler support"
337         depends on SPARC64 && SMP
338         default y
339         help
340           SMT scheduler support improves the CPU scheduler's decision making
341           when dealing with SPARC cpus at a cost of slightly increased overhead
342           in some places. If unsure say N here.
343
344 config SCHED_MC
345         bool "Multi-core scheduler support"
346         depends on SPARC64 && SMP
347         default y
348         help
349           Multi-core scheduler support improves the CPU scheduler's decision
350           making when dealing with multi-core CPU chips at a cost of slightly
351           increased overhead in some places. If unsure say N here.
352
353 config CMDLINE_BOOL
354         bool "Default bootloader kernel arguments"
355         depends on SPARC64
356
357 config CMDLINE
358         string "Initial kernel command string"
359         depends on CMDLINE_BOOL
360         default "console=ttyS0,9600 root=/dev/sda1"
361         help
362           Say Y here if you want to be able to pass default arguments to
363           the kernel. This will be overridden by the bootloader, if you
364           use one (such as SILO). This is most useful if you want to boot
365           a kernel from TFTP, and want default options to be available
366           with having them passed on the command line.
367
368           NOTE: This option WILL override the PROM bootargs setting!
369
370 config SUN_PM
371         bool
372         default y if SPARC32
373         help
374           Enable power management and CPU standby features on supported
375           SPARC platforms.
376
377 config SPARC_LED
378         tristate "Sun4m LED driver"
379         depends on SPARC32
380         help
381           This driver toggles the front-panel LED on sun4m systems
382           in a user-specifiable manner.  Its state can be probed
383           by reading /proc/led and its blinking mode can be changed
384           via writes to /proc/led
385
386 config SERIAL_CONSOLE
387         bool
388         depends on SPARC32
389         default y
390         ---help---
391           If you say Y here, it will be possible to use a serial port as the
392           system console (the system console is the device which receives all
393           kernel messages and warnings and which allows logins in single user
394           mode). This could be useful if some terminal or printer is connected
395           to that serial port.
396
397           Even if you say Y here, the currently visible virtual console
398           (/dev/tty0) will still be used as the system console by default, but
399           you can alter that using a kernel command line option such as
400           "console=ttyS1". (Try "man bootparam" or see the documentation of
401           your boot loader (silo) about how to pass options to the kernel at
402           boot time.)
403
404           If you don't have a graphics card installed and you say Y here, the
405           kernel will automatically use the first serial line, /dev/ttyS0, as
406           system console.
407
408           If unsure, say N.
409
410 config SPARC_LEON
411         bool "Sparc Leon processor family"
412         depends on SPARC32
413         select USB_EHCI_BIG_ENDIAN_MMIO
414         select USB_EHCI_BIG_ENDIAN_DESC
415         select USB_UHCI_BIG_ENDIAN_MMIO
416         select USB_UHCI_BIG_ENDIAN_DESC
417         ---help---
418           If you say Y here if you are running on a SPARC-LEON processor.
419           The LEON processor is a synthesizable VHDL model of the
420           SPARC-v8 standard. LEON is  part of the GRLIB collection of
421           IP cores that are distributed under GPL. GRLIB can be downloaded
422           from www.gaisler.com. You can download a sparc-linux cross-compilation
423           toolchain at www.gaisler.com.
424
425 if SPARC_LEON
426 menu "U-Boot options"
427
428 config UBOOT_LOAD_ADDR
429         hex "uImage Load Address"
430         default 0x40004000
431         ---help---
432          U-Boot kernel load address, the address in physical address space
433          where u-boot will place the Linux kernel before booting it.
434          This address is normally the base address of main memory + 0x4000.
435
436 config UBOOT_FLASH_ADDR
437         hex "uImage.o Load Address"
438         default 0x00080000
439         ---help---
440          Optional setting only affecting the uImage.o ELF-image used to
441          download the uImage file to the target using a ELF-loader other than
442          U-Boot. It may for example be used to download an uImage to FLASH with
443          the GRMON utility before even starting u-boot.
444
445 config UBOOT_ENTRY_ADDR
446         hex "uImage Entry Address"
447         default 0xf0004000
448         ---help---
449          Do not change this unless you know what you're doing. This is
450          hardcoded by the SPARC32 and LEON port.
451
452          This is the virtual address u-boot jumps to when booting the Linux
453          Kernel.
454
455 endmenu
456 endif
457
458 endmenu
459
460 menu "Bus options (PCI etc.)"
461 config SBUS
462         bool
463         default y
464
465 config SBUSCHAR
466         bool
467         default y
468
469 config SUN_LDOMS
470         bool "Sun Logical Domains support"
471         depends on SPARC64
472         help
473           Say Y here is you want to support virtual devices via
474           Logical Domains.
475
476 config PCIC_PCI
477         bool
478         depends on PCI && SPARC32 && !SPARC_LEON
479         default y
480
481 config LEON_PCI
482         bool
483         depends on PCI && SPARC_LEON
484         default y
485
486 config SPARC_GRPCI1
487         bool "GRPCI Host Bridge Support"
488         depends on LEON_PCI
489         default y
490         help
491           Say Y here to include the GRPCI Host Bridge Driver. The GRPCI
492           PCI host controller is typically found in GRLIB SPARC32/LEON
493           systems. The driver has one property (all_pci_errors) controlled
494           from the bootloader that makes the GRPCI to generate interrupts
495           on detected PCI Parity and System errors.
496
497 config SPARC_GRPCI2
498         bool "GRPCI2 Host Bridge Support"
499         depends on LEON_PCI
500         default y
501         help
502           Say Y here to include the GRPCI2 Host Bridge Driver.
503
504 config SUN_OPENPROMFS
505         tristate "Openprom tree appears in /proc/openprom"
506         help
507           If you say Y, the OpenPROM device tree will be available as a
508           virtual file system, which you can mount to /proc/openprom by "mount
509           -t openpromfs none /proc/openprom".
510
511           To compile the /proc/openprom support as a module, choose M here: the
512           module will be called openpromfs.
513
514           Only choose N if you know in advance that you will not need to modify
515           OpenPROM settings on the running system.
516
517 # Makefile helpers
518 config SPARC64_PCI
519         bool
520         default y
521         depends on SPARC64 && PCI
522
523 config SPARC64_PCI_MSI
524         bool
525         default y
526         depends on SPARC64_PCI && PCI_MSI
527
528 endmenu
529
530 config COMPAT
531         bool
532         depends on SPARC64
533         default y
534         select COMPAT_BINFMT_ELF
535         select HAVE_UID16
536         select ARCH_WANT_OLD_COMPAT_IPC
537         select COMPAT_OLD_SIGACTION
538
539 config SYSVIPC_COMPAT
540         bool
541         depends on COMPAT && SYSVIPC
542         default y
543
544 source "drivers/sbus/char/Kconfig"