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