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