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