Merge branch 'sparc-perf-events-fixes-for-linus' of git://git.kernel.org/pub/scm...
[linux-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 choice
225         prompt "Kernel page size" if SPARC64
226         default SPARC64_PAGE_SIZE_8KB
227
228 config SPARC64_PAGE_SIZE_8KB
229         bool "8KB"
230         help
231           This lets you select the page size of the kernel.
232
233           8KB and 64KB work quite well, since SPARC ELF sections
234           provide for up to 64KB alignment.
235
236           If you don't know what to do, choose 8KB.
237
238 config SPARC64_PAGE_SIZE_64KB
239         bool "64KB"
240
241 endchoice
242
243 config SECCOMP
244         bool "Enable seccomp to safely compute untrusted bytecode"
245         depends on SPARC64 && PROC_FS
246         default y
247         help
248           This kernel feature is useful for number crunching applications
249           that may need to compute untrusted bytecode during their
250           execution. By using pipes or other transports made available to
251           the process as file descriptors supporting the read/write
252           syscalls, it's possible to isolate those applications in
253           their own address space using seccomp. Once seccomp is
254           enabled via /proc/<pid>/seccomp, it cannot be disabled
255           and the task is only allowed to execute a few safe syscalls
256           defined by each seccomp mode.
257
258           If unsure, say Y. Only embedded should say N here.
259
260 config HOTPLUG_CPU
261         bool "Support for hot-pluggable CPUs"
262         depends on SPARC64 && SMP
263         select HOTPLUG
264         help
265           Say Y here to experiment with turning CPUs off and on.  CPUs
266           can be controlled through /sys/devices/system/cpu/cpu#.
267           Say N if you want to disable CPU hotplug.
268
269 config GENERIC_HARDIRQS
270         bool
271         default y if SPARC64
272
273 source "kernel/time/Kconfig"
274
275 if SPARC64
276 source "drivers/cpufreq/Kconfig"
277
278 config US3_FREQ
279         tristate "UltraSPARC-III CPU Frequency driver"
280         depends on CPU_FREQ
281         select CPU_FREQ_TABLE
282         help
283           This adds the CPUFreq driver for UltraSPARC-III processors.
284
285           For details, take a look at <file:Documentation/cpu-freq>.
286
287           If in doubt, say N.
288
289 config US2E_FREQ
290         tristate "UltraSPARC-IIe CPU Frequency driver"
291         depends on CPU_FREQ
292         select CPU_FREQ_TABLE
293         help
294           This adds the CPUFreq driver for UltraSPARC-IIe processors.
295
296           For details, take a look at <file:Documentation/cpu-freq>.
297
298           If in doubt, say N.
299
300 endif
301
302 config US3_MC
303         tristate "UltraSPARC-III Memory Controller driver"
304         depends on SPARC64
305         default y
306         help
307           This adds a driver for the UltraSPARC-III memory controller.
308           Loading this driver allows exact mnemonic strings to be
309           printed in the event of a memory error, so that the faulty DIMM
310           on the motherboard can be matched to the error.
311
312           If in doubt, say Y, as this information can be very useful.
313
314 # Global things across all Sun machines.
315 config GENERIC_LOCKBREAK
316         bool
317         default y
318         depends on SPARC64 && SMP && PREEMPT
319
320 choice
321         prompt "SPARC64 Huge TLB Page Size"
322         depends on SPARC64 && HUGETLB_PAGE
323         default HUGETLB_PAGE_SIZE_4MB
324
325 config HUGETLB_PAGE_SIZE_4MB
326         bool "4MB"
327
328 config HUGETLB_PAGE_SIZE_512K
329         bool "512K"
330
331 config HUGETLB_PAGE_SIZE_64K
332         depends on !SPARC64_PAGE_SIZE_64KB
333         bool "64K"
334
335 endchoice
336
337 config NUMA
338         bool "NUMA support"
339         depends on SPARC64 && SMP
340
341 config NODES_SHIFT
342         int
343         default "4"
344         depends on NEED_MULTIPLE_NODES
345
346 # Some NUMA nodes have memory ranges that span
347 # other nodes.  Even though a pfn is valid and
348 # between a node's start and end pfns, it may not
349 # reside on that node.  See memmap_init_zone()
350 # for details.
351 config NODES_SPAN_OTHER_NODES
352         def_bool y
353         depends on NEED_MULTIPLE_NODES
354
355 config ARCH_POPULATES_NODE_MAP
356         def_bool y if SPARC64
357
358 config ARCH_SELECT_MEMORY_MODEL
359         def_bool y if SPARC64
360
361 config ARCH_SPARSEMEM_ENABLE
362         def_bool y if SPARC64
363         select SPARSEMEM_VMEMMAP_ENABLE
364
365 config ARCH_SPARSEMEM_DEFAULT
366         def_bool y if SPARC64
367
368 source "mm/Kconfig"
369
370 config SCHED_SMT
371         bool "SMT (Hyperthreading) scheduler support"
372         depends on SPARC64 && SMP
373         default y
374         help
375           SMT scheduler support improves the CPU scheduler's decision making
376           when dealing with SPARC cpus at a cost of slightly increased overhead
377           in some places. If unsure say N here.
378
379 config SCHED_MC
380         bool "Multi-core scheduler support"
381         depends on SPARC64 && SMP
382         default y
383         help
384           Multi-core scheduler support improves the CPU scheduler's decision
385           making when dealing with multi-core CPU chips at a cost of slightly
386           increased overhead in some places. If unsure say N here.
387
388 if SPARC64
389 source "kernel/Kconfig.preempt"
390 endif
391
392 config CMDLINE_BOOL
393         bool "Default bootloader kernel arguments"
394         depends on SPARC64
395
396 config CMDLINE
397         string "Initial kernel command string"
398         depends on CMDLINE_BOOL
399         default "console=ttyS0,9600 root=/dev/sda1"
400         help
401           Say Y here if you want to be able to pass default arguments to
402           the kernel. This will be overridden by the bootloader, if you
403           use one (such as SILO). This is most useful if you want to boot
404           a kernel from TFTP, and want default options to be available
405           with having them passed on the command line.
406
407           NOTE: This option WILL override the PROM bootargs setting!
408
409 config SUN_PM
410         bool
411         default y if SPARC32
412         help
413           Enable power management and CPU standby features on supported
414           SPARC platforms.
415
416 config SPARC_LED
417         tristate "Sun4m LED driver"
418         depends on SPARC32
419         help
420           This driver toggles the front-panel LED on sun4m systems
421           in a user-specifiable manner.  Its state can be probed
422           by reading /proc/led and its blinking mode can be changed
423           via writes to /proc/led
424
425 config SERIAL_CONSOLE
426         bool
427         depends on SPARC32
428         default y
429         ---help---
430           If you say Y here, it will be possible to use a serial port as the
431           system console (the system console is the device which receives all
432           kernel messages and warnings and which allows logins in single user
433           mode). This could be useful if some terminal or printer is connected
434           to that serial port.
435
436           Even if you say Y here, the currently visible virtual console
437           (/dev/tty0) will still be used as the system console by default, but
438           you can alter that using a kernel command line option such as
439           "console=ttyS1". (Try "man bootparam" or see the documentation of
440           your boot loader (silo) about how to pass options to the kernel at
441           boot time.)
442
443           If you don't have a graphics card installed and you say Y here, the
444           kernel will automatically use the first serial line, /dev/ttyS0, as
445           system console.
446
447           If unsure, say N.
448
449 config SPARC_LEON
450         bool "Sparc Leon processor family"
451         depends on SPARC32
452         ---help---
453           If you say Y here if you are running on a SPARC-LEON processor.
454           The LEON processor is a synthesizable VHDL model of the
455           SPARC-v8 standard. LEON is  part of the GRLIB collection of
456           IP cores that are distributed under GPL. GRLIB can be downloaded
457           from www.gaisler.com. You can download a sparc-linux cross-compilation
458           toolchain at www.gaisler.com.
459
460 endmenu
461
462 menu "Bus options (PCI etc.)"
463 config SBUS
464         bool
465         default y
466
467 config SBUSCHAR
468         bool
469         default y
470
471 config SUN_LDOMS
472         bool "Sun Logical Domains support"
473         depends on SPARC64
474         help
475           Say Y here is you want to support virtual devices via
476           Logical Domains.
477
478 config PCI
479         bool "Support for PCI and PS/2 keyboard/mouse"
480         help
481           Find out whether your system includes a PCI bus. PCI is the name of
482           a bus system, i.e. the way the CPU talks to the other stuff inside
483           your box.  If you say Y here, the kernel will include drivers and
484           infrastructure code to support PCI bus devices.
485
486           CONFIG_PCI is needed for all JavaStation's (including MrCoffee),
487           CP-1200, JavaEngine-1, Corona, Red October, and Serengeti SGSC.
488           All of these platforms are extremely obscure, so say N if unsure.
489
490 config PCI_DOMAINS
491         def_bool PCI if SPARC64
492
493 config PCI_SYSCALL
494         def_bool PCI
495
496 source "drivers/pci/Kconfig"
497
498 source "drivers/pcmcia/Kconfig"
499
500 config SUN_OPENPROMFS
501         tristate "Openprom tree appears in /proc/openprom"
502         help
503           If you say Y, the OpenPROM device tree will be available as a
504           virtual file system, which you can mount to /proc/openprom by "mount
505           -t openpromfs none /proc/openprom".
506
507           To compile the /proc/openprom support as a module, choose M here: the
508           module will be called openpromfs.
509
510           Only choose N if you know in advance that you will not need to modify
511           OpenPROM settings on the running system.
512
513 # Makefile helpers
514 config SPARC32_PCI
515         bool
516         default y
517         depends on SPARC32 && PCI
518
519 config SPARC64_PCI
520         bool
521         default y
522         depends on SPARC64 && PCI
523
524 endmenu
525
526 menu "Executable file formats"
527
528 source "fs/Kconfig.binfmt"
529
530 config COMPAT
531         bool
532         depends on SPARC64
533         default y
534         select COMPAT_BINFMT_ELF
535
536 config SYSVIPC_COMPAT
537         bool
538         depends on COMPAT && SYSVIPC
539         default y
540
541 endmenu
542
543 source "net/Kconfig"
544
545 source "drivers/Kconfig"
546
547 source "drivers/sbus/char/Kconfig"
548
549 source "fs/Kconfig"
550
551 source "arch/sparc/Kconfig.debug"
552
553 source "security/Kconfig"
554
555 source "crypto/Kconfig"
556
557 source "lib/Kconfig"