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