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