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