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