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