percpu: use dynamic percpu allocator as the default percpu allocator
[firefly-linux-kernel-4.4.55.git] / arch / sparc / Kconfig
1 # For a description of the syntax of this configuration file,
2 # see Documentation/kbuild/kconfig-language.txt.
3 #
4
5 mainmenu "Linux/SPARC Kernel Configuration"
6
7 config 64BIT
8         bool "64-bit kernel" if ARCH = "sparc"
9         default ARCH = "sparc64"
10         help
11           SPARC is a family of RISC microprocessors designed and marketed by
12           Sun Microsystems, incorporated.  They are very widely found in Sun
13           workstations and clones.
14
15           Say yes to build a 64-bit kernel - formerly known as sparc64
16           Say no to build a 32-bit kernel - formerly known as sparc
17
18 config SPARC
19         bool
20         default y
21         select HAVE_IDE
22         select HAVE_OPROFILE
23         select HAVE_ARCH_KGDB if !SMP || SPARC64
24         select HAVE_ARCH_TRACEHOOK
25         select ARCH_WANT_OPTIONAL_GPIOLIB
26         select RTC_CLASS
27         select RTC_DRV_M48T59
28
29 config SPARC32
30         def_bool !64BIT
31
32 config SPARC64
33         def_bool 64BIT
34         select ARCH_SUPPORTS_MSI
35         select HAVE_FUNCTION_TRACER
36         select HAVE_KRETPROBES
37         select HAVE_KPROBES
38         select HAVE_LMB
39         select HAVE_SYSCALL_WRAPPERS
40         select HAVE_DYNAMIC_FTRACE
41         select HAVE_FTRACE_MCOUNT_RECORD
42         select USE_GENERIC_SMP_HELPERS if SMP
43         select RTC_DRV_CMOS
44         select RTC_DRV_BQ4802
45         select RTC_DRV_SUN4V
46         select RTC_DRV_STARFIRE
47
48 config ARCH_DEFCONFIG
49         string
50         default "arch/sparc/configs/sparc32_defconfig" if SPARC32
51         default "arch/sparc/configs/sparc64_defconfig" if SPARC64
52
53 # CONFIG_BITS can be used at source level to get 32/64 bits
54 config BITS
55         int
56         default 32 if SPARC32
57         default 64 if SPARC64
58
59 config GENERIC_TIME
60         bool
61         default y if SPARC64
62
63 config GENERIC_CMOS_UPDATE
64         bool
65         default y if SPARC64
66
67 config GENERIC_CLOCKEVENTS
68         bool
69         default y if SPARC64
70
71 config IOMMU_HELPER
72         bool
73         default y if SPARC64
74
75 config QUICKLIST
76         bool
77         default y if SPARC64
78
79 config STACKTRACE_SUPPORT
80         bool
81         default y if SPARC64
82
83 config LOCKDEP_SUPPORT
84         bool
85         default y if SPARC64
86
87 config HAVE_LATENCYTOP_SUPPORT
88         bool
89         default y if SPARC64
90
91 config AUDIT_ARCH
92         bool
93         default y
94
95 config HAVE_LEGACY_PER_CPU_AREA
96         def_bool y if SPARC64
97
98 config HAVE_SETUP_PER_CPU_AREA
99         def_bool y if SPARC64
100
101 config HAVE_DYNAMIC_PER_CPU_AREA
102         def_bool y if SPARC64
103
104 config GENERIC_HARDIRQS_NO__DO_IRQ
105         bool
106         def_bool y if SPARC64
107
108 config MMU
109         bool
110         default y
111
112 config HIGHMEM
113         bool
114         default y if SPARC32
115
116 config ZONE_DMA
117         bool
118         default y if SPARC32
119
120 config GENERIC_ISA_DMA
121         bool
122         default y if SPARC32
123
124 config GENERIC_GPIO
125         bool
126         help
127           Generic GPIO API support
128
129 config ARCH_NO_VIRT_TO_BUS
130         def_bool y
131
132 config OF
133         def_bool y
134
135 config ARCH_SUPPORTS_DEBUG_PAGEALLOC
136         def_bool y if SPARC64
137
138 source "init/Kconfig"
139
140 source "kernel/Kconfig.freezer"
141
142 menu "Processor type and features"
143
144 config SMP
145         bool "Symmetric multi-processing support (does not work on sun4/sun4c)"
146         ---help---
147           This enables support for systems with more than one CPU. If you have
148           a system with only one CPU, say N. If you have a system with more
149           than one CPU, say Y.
150
151           If you say N here, the kernel will run on single and multiprocessor
152           machines, but will use only one CPU of a multiprocessor machine. If
153           you say Y here, the kernel will run on many, but not all,
154           singleprocessor machines. On a singleprocessor machine, the kernel
155           will run faster if you say N here.
156
157           People using multiprocessor machines who say Y here should also say
158           Y to "Enhanced Real Time Clock Support", below. The "Advanced Power
159           Management" code will be disabled if you say Y here.
160
161           See also <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO
162           available at <http://www.tldp.org/docs.html#howto>.
163
164           If you don't know what to do here, say N.
165
166 config NR_CPUS
167         int "Maximum number of CPUs"
168         depends on SMP
169         range 2 32 if SPARC32
170         range 2 1024 if SPARC64
171         default 32 if SPARC32
172         default 64 if SPARC64
173
174 source kernel/Kconfig.hz
175
176 config RWSEM_GENERIC_SPINLOCK
177         bool
178         default y if SPARC32
179
180 config RWSEM_XCHGADD_ALGORITHM
181         bool
182         default y if SPARC64
183
184 config GENERIC_FIND_NEXT_BIT
185         bool
186         default y
187
188 config GENERIC_HWEIGHT
189         bool
190         default y if !ULTRA_HAS_POPULATION_COUNT
191
192 config GENERIC_CALIBRATE_DELAY
193         bool
194         default y
195
196 config ARCH_MAY_HAVE_PC_FDC
197         bool
198         default y
199
200 config EMULATED_CMPXCHG
201         bool
202         default y if SPARC32
203         help
204           Sparc32 does not have a CAS instruction like sparc64. cmpxchg()
205           is emulated, and therefore it is not completely atomic.
206
207 # Makefile helpers
208 config SPARC32_SMP
209         bool
210         default y
211         depends on SPARC32 && SMP
212
213 config SPARC64_SMP
214         bool
215         default y
216         depends on SPARC64 && SMP
217
218 choice
219         prompt "Kernel page size" if SPARC64
220         default SPARC64_PAGE_SIZE_8KB
221
222 config SPARC64_PAGE_SIZE_8KB
223         bool "8KB"
224         help
225           This lets you select the page size of the kernel.
226
227           8KB and 64KB work quite well, since SPARC ELF sections
228           provide for up to 64KB alignment.
229
230           If you don't know what to do, choose 8KB.
231
232 config SPARC64_PAGE_SIZE_64KB
233         bool "64KB"
234
235 endchoice
236
237 config SECCOMP
238         bool "Enable seccomp to safely compute untrusted bytecode"
239         depends on SPARC64 && PROC_FS
240         default y
241         help
242           This kernel feature is useful for number crunching applications
243           that may need to compute untrusted bytecode during their
244           execution. By using pipes or other transports made available to
245           the process as file descriptors supporting the read/write
246           syscalls, it's possible to isolate those applications in
247           their own address space using seccomp. Once seccomp is
248           enabled via /proc/<pid>/seccomp, it cannot be disabled
249           and the task is only allowed to execute a few safe syscalls
250           defined by each seccomp mode.
251
252           If unsure, say Y. Only embedded should say N here.
253
254 config HOTPLUG_CPU
255         bool "Support for hot-pluggable CPUs"
256         depends on SPARC64 && SMP
257         select HOTPLUG
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 config GENERIC_HARDIRQS
264         bool
265         default y if SPARC64
266
267 source "kernel/time/Kconfig"
268
269 if SPARC64
270 source "drivers/cpufreq/Kconfig"
271
272 config US3_FREQ
273         tristate "UltraSPARC-III CPU Frequency driver"
274         depends on CPU_FREQ
275         select CPU_FREQ_TABLE
276         help
277           This adds the CPUFreq driver for UltraSPARC-III processors.
278
279           For details, take a look at <file:Documentation/cpu-freq>.
280
281           If in doubt, say N.
282
283 config US2E_FREQ
284         tristate "UltraSPARC-IIe CPU Frequency driver"
285         depends on CPU_FREQ
286         select CPU_FREQ_TABLE
287         help
288           This adds the CPUFreq driver for UltraSPARC-IIe processors.
289
290           For details, take a look at <file:Documentation/cpu-freq>.
291
292           If in doubt, say N.
293
294 endif
295
296 config US3_MC
297         tristate "UltraSPARC-III Memory Controller driver"
298         depends on SPARC64
299         default y
300         help
301           This adds a driver for the UltraSPARC-III memory controller.
302           Loading this driver allows exact mnemonic strings to be
303           printed in the event of a memory error, so that the faulty DIMM
304           on the motherboard can be matched to the error.
305
306           If in doubt, say Y, as this information can be very useful.
307
308 # Global things across all Sun machines.
309 config GENERIC_LOCKBREAK
310         bool
311         default y
312         depends on SPARC64 && SMP && PREEMPT
313
314 choice
315         prompt "SPARC64 Huge TLB Page Size"
316         depends on SPARC64 && HUGETLB_PAGE
317         default HUGETLB_PAGE_SIZE_4MB
318
319 config HUGETLB_PAGE_SIZE_4MB
320         bool "4MB"
321
322 config HUGETLB_PAGE_SIZE_512K
323         bool "512K"
324
325 config HUGETLB_PAGE_SIZE_64K
326         depends on !SPARC64_PAGE_SIZE_64KB
327         bool "64K"
328
329 endchoice
330
331 config NUMA
332         bool "NUMA support"
333         depends on SPARC64 && SMP
334
335 config NODES_SHIFT
336         int
337         default "4"
338         depends on NEED_MULTIPLE_NODES
339
340 # Some NUMA nodes have memory ranges that span
341 # other nodes.  Even though a pfn is valid and
342 # between a node's start and end pfns, it may not
343 # reside on that node.  See memmap_init_zone()
344 # for details.
345 config NODES_SPAN_OTHER_NODES
346         def_bool y
347         depends on NEED_MULTIPLE_NODES
348
349 config ARCH_POPULATES_NODE_MAP
350         def_bool y if SPARC64
351
352 config ARCH_SELECT_MEMORY_MODEL
353         def_bool y if SPARC64
354
355 config ARCH_SPARSEMEM_ENABLE
356         def_bool y if SPARC64
357         select SPARSEMEM_VMEMMAP_ENABLE
358
359 config ARCH_SPARSEMEM_DEFAULT
360         def_bool y if SPARC64
361
362 source "mm/Kconfig"
363
364 config SCHED_SMT
365         bool "SMT (Hyperthreading) scheduler support"
366         depends on SPARC64 && SMP
367         default y
368         help
369           SMT scheduler support improves the CPU scheduler's decision making
370           when dealing with SPARC cpus at a cost of slightly increased overhead
371           in some places. If unsure say N here.
372
373 config SCHED_MC
374         bool "Multi-core scheduler support"
375         depends on SPARC64 && SMP
376         default y
377         help
378           Multi-core scheduler support improves the CPU scheduler's decision
379           making when dealing with multi-core CPU chips at a cost of slightly
380           increased overhead in some places. If unsure say N here.
381
382 if SPARC64
383 source "kernel/Kconfig.preempt"
384 endif
385
386 config CMDLINE_BOOL
387         bool "Default bootloader kernel arguments"
388         depends on SPARC64
389
390 config CMDLINE
391         string "Initial kernel command string"
392         depends on CMDLINE_BOOL
393         default "console=ttyS0,9600 root=/dev/sda1"
394         help
395           Say Y here if you want to be able to pass default arguments to
396           the kernel. This will be overridden by the bootloader, if you
397           use one (such as SILO). This is most useful if you want to boot
398           a kernel from TFTP, and want default options to be available
399           with having them passed on the command line.
400
401           NOTE: This option WILL override the PROM bootargs setting!
402
403 config SUN_PM
404         bool
405         default y if SPARC32
406         help
407           Enable power management and CPU standby features on supported
408           SPARC platforms.
409
410 config SPARC_LED
411         tristate "Sun4m LED driver"
412         depends on SPARC32
413         help
414           This driver toggles the front-panel LED on sun4m systems
415           in a user-specifiable manner.  Its state can be probed
416           by reading /proc/led and its blinking mode can be changed
417           via writes to /proc/led
418
419 config SERIAL_CONSOLE
420         bool
421         depends on SPARC32
422         default y
423         ---help---
424           If you say Y here, it will be possible to use a serial port as the
425           system console (the system console is the device which receives all
426           kernel messages and warnings and which allows logins in single user
427           mode). This could be useful if some terminal or printer is connected
428           to that serial port.
429
430           Even if you say Y here, the currently visible virtual console
431           (/dev/tty0) will still be used as the system console by default, but
432           you can alter that using a kernel command line option such as
433           "console=ttyS1". (Try "man bootparam" or see the documentation of
434           your boot loader (silo) about how to pass options to the kernel at
435           boot time.)
436
437           If you don't have a graphics card installed and you say Y here, the
438           kernel will automatically use the first serial line, /dev/ttyS0, as
439           system console.
440
441           If unsure, say N.
442
443 endmenu
444
445 menu "Bus options (PCI etc.)"
446 config SBUS
447         bool
448         default y
449
450 config SBUSCHAR
451         bool
452         default y
453
454 config SUN_LDOMS
455         bool "Sun Logical Domains support"
456         depends on SPARC64
457         help
458           Say Y here is you want to support virtual devices via
459           Logical Domains.
460
461 config PCI
462         bool "Support for PCI and PS/2 keyboard/mouse"
463         help
464           Find out whether your system includes a PCI bus. PCI is the name of
465           a bus system, i.e. the way the CPU talks to the other stuff inside
466           your box.  If you say Y here, the kernel will include drivers and
467           infrastructure code to support PCI bus devices.
468
469           CONFIG_PCI is needed for all JavaStation's (including MrCoffee),
470           CP-1200, JavaEngine-1, Corona, Red October, and Serengeti SGSC.
471           All of these platforms are extremely obscure, so say N if unsure.
472
473 config PCI_DOMAINS
474         def_bool PCI if SPARC64
475
476 config PCI_SYSCALL
477         def_bool PCI
478
479 source "drivers/pci/Kconfig"
480
481 source "drivers/pcmcia/Kconfig"
482
483 config SUN_OPENPROMFS
484         tristate "Openprom tree appears in /proc/openprom"
485         help
486           If you say Y, the OpenPROM device tree will be available as a
487           virtual file system, which you can mount to /proc/openprom by "mount
488           -t openpromfs none /proc/openprom".
489
490           To compile the /proc/openprom support as a module, choose M here: the
491           module will be called openpromfs.
492
493           Only choose N if you know in advance that you will not need to modify
494           OpenPROM settings on the running system.
495
496 # Makefile helpers
497 config SPARC32_PCI
498         bool
499         default y
500         depends on SPARC32 && PCI
501
502 config SPARC64_PCI
503         bool
504         default y
505         depends on SPARC64 && PCI
506
507 endmenu
508
509 menu "Executable file formats"
510
511 source "fs/Kconfig.binfmt"
512
513 config COMPAT
514         bool
515         depends on SPARC64
516         default y
517         select COMPAT_BINFMT_ELF
518
519 config SYSVIPC_COMPAT
520         bool
521         depends on COMPAT && SYSVIPC
522         default y
523
524 endmenu
525
526 source "net/Kconfig"
527
528 source "drivers/Kconfig"
529
530 source "drivers/sbus/char/Kconfig"
531
532 source "fs/Kconfig"
533
534 source "arch/sparc/Kconfig.debug"
535
536 source "security/Kconfig"
537
538 source "crypto/Kconfig"
539
540 source "lib/Kconfig"