Merge branch 'for-2.6.30' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie...
[linux-2.6] / arch / sh / Kconfig
1 #
2 # For a description of the syntax of this configuration file,
3 # see Documentation/kbuild/kconfig-language.txt.
4 #
5
6 mainmenu "Linux/SuperH Kernel Configuration"
7
8 config SUPERH
9         def_bool y
10         select EMBEDDED
11         select HAVE_CLK
12         select HAVE_IDE
13         select HAVE_OPROFILE
14         select HAVE_GENERIC_DMA_COHERENT
15         select HAVE_IOREMAP_PROT if MMU
16         select HAVE_ARCH_TRACEHOOK
17         help
18           The SuperH is a RISC processor targeted for use in embedded systems
19           and consumer electronics; it was also used in the Sega Dreamcast
20           gaming console.  The SuperH port has a home page at
21           <http://www.linux-sh.org/>.
22
23 config SUPERH32
24         def_bool !SUPERH64
25         select HAVE_KPROBES
26         select HAVE_KRETPROBES
27         select HAVE_FUNCTION_TRACER
28         select HAVE_FTRACE_MCOUNT_RECORD
29         select HAVE_DYNAMIC_FTRACE
30         select HAVE_ARCH_KGDB
31         select ARCH_HIBERNATION_POSSIBLE if MMU
32
33 config SUPERH64
34         def_bool y if CPU_SH5
35
36 config ARCH_DEFCONFIG
37         string
38         default "arch/sh/configs/shx3_defconfig" if SUPERH32
39         default "arch/sh/configs/cayman_defconfig" if SUPERH64
40
41 config RWSEM_GENERIC_SPINLOCK
42         def_bool y
43
44 config RWSEM_XCHGADD_ALGORITHM
45         bool
46
47 config GENERIC_BUG
48         def_bool y
49         depends on BUG && SUPERH32
50
51 config GENERIC_FIND_NEXT_BIT
52         def_bool y
53
54 config GENERIC_HWEIGHT
55         def_bool y
56
57 config GENERIC_HARDIRQS
58         def_bool y
59
60 config GENERIC_HARDIRQS_NO__DO_IRQ
61         def_bool y
62
63 config GENERIC_IRQ_PROBE
64         def_bool y
65
66 config GENERIC_GPIO
67         def_bool n
68
69 config GENERIC_CALIBRATE_DELAY
70         bool
71
72 config GENERIC_IOMAP
73         bool
74
75 config GENERIC_TIME
76         def_bool n
77
78 config GENERIC_CLOCKEVENTS
79         def_bool n
80
81 config GENERIC_CLOCKEVENTS_BROADCAST
82         bool
83
84 config GENERIC_LOCKBREAK
85         def_bool y
86         depends on SMP && PREEMPT
87
88 config SYS_SUPPORTS_PM
89         bool
90         depends on !SMP
91
92 config ARCH_SUSPEND_POSSIBLE
93         def_bool n
94
95 config ARCH_HIBERNATION_POSSIBLE
96         def_bool n
97
98 config SYS_SUPPORTS_APM_EMULATION
99         bool
100         select ARCH_SUSPEND_POSSIBLE
101
102 config SYS_SUPPORTS_SMP
103         bool
104
105 config SYS_SUPPORTS_NUMA
106         bool
107
108 config SYS_SUPPORTS_PCI
109         bool
110
111 config SYS_SUPPORTS_CMT
112         bool
113
114 config STACKTRACE_SUPPORT
115         def_bool y
116
117 config LOCKDEP_SUPPORT
118         def_bool y
119
120 config HAVE_LATENCYTOP_SUPPORT
121         def_bool y
122         depends on !SMP
123
124 config ARCH_HAS_ILOG2_U32
125         def_bool n
126
127 config ARCH_HAS_ILOG2_U64
128         def_bool n
129
130 config ARCH_NO_VIRT_TO_BUS
131         def_bool y
132
133 config ARCH_HAS_DEFAULT_IDLE
134         def_bool y
135
136 config IO_TRAPPED
137         bool
138
139 source "init/Kconfig"
140
141 source "kernel/Kconfig.freezer"
142
143 menu "System type"
144
145 #
146 # Processor families
147 #
148 config CPU_SH2
149         bool
150
151 config CPU_SH2A
152         bool
153         select CPU_SH2
154
155 config CPU_SH3
156         bool
157         select CPU_HAS_INTEVT
158         select CPU_HAS_SR_RB
159
160 config CPU_SH4
161         bool
162         select CPU_HAS_INTEVT
163         select CPU_HAS_SR_RB
164         select CPU_HAS_PTEA if !CPU_SH4A || CPU_SHX2
165         select CPU_HAS_FPU if !CPU_SH4AL_DSP
166
167 config CPU_SH4A
168         bool
169         select CPU_SH4
170
171 config CPU_SH4AL_DSP
172         bool
173         select CPU_SH4A
174         select CPU_HAS_DSP
175
176 config CPU_SH5
177         bool
178         select CPU_HAS_FPU
179
180 config CPU_SHX2
181         bool
182
183 config CPU_SHX3
184         bool
185
186 config ARCH_SHMOBILE
187         bool
188         select ARCH_SUSPEND_POSSIBLE
189
190 choice
191         prompt "Processor sub-type selection"
192
193 #
194 # Processor subtypes
195 #
196
197 # SH-2 Processor Support
198
199 config CPU_SUBTYPE_SH7619
200         bool "Support SH7619 processor"
201         select CPU_SH2
202         select SYS_SUPPORTS_CMT
203
204 # SH-2A Processor Support
205
206 config CPU_SUBTYPE_SH7201
207         bool "Support SH7201 processor"
208         select CPU_SH2A
209         select CPU_HAS_FPU
210  
211 config CPU_SUBTYPE_SH7203
212         bool "Support SH7203 processor"
213         select CPU_SH2A
214         select CPU_HAS_FPU
215         select SYS_SUPPORTS_CMT
216
217 config CPU_SUBTYPE_SH7206
218         bool "Support SH7206 processor"
219         select CPU_SH2A
220         select SYS_SUPPORTS_CMT
221
222 config CPU_SUBTYPE_SH7263
223         bool "Support SH7263 processor"
224         select CPU_SH2A
225         select CPU_HAS_FPU
226         select SYS_SUPPORTS_CMT
227
228 config CPU_SUBTYPE_MXG
229         bool "Support MX-G processor"
230         select CPU_SH2A
231         help
232           Select MX-G if running on an R8A03022BG part.
233
234 # SH-3 Processor Support
235
236 config CPU_SUBTYPE_SH7705
237         bool "Support SH7705 processor"
238         select CPU_SH3
239
240 config CPU_SUBTYPE_SH7706
241         bool "Support SH7706 processor"
242         select CPU_SH3
243         help
244           Select SH7706 if you have a 133 Mhz SH-3 HD6417706 CPU.
245
246 config CPU_SUBTYPE_SH7707
247         bool "Support SH7707 processor"
248         select CPU_SH3
249         help
250           Select SH7707 if you have a  60 Mhz SH-3 HD6417707 CPU.
251
252 config CPU_SUBTYPE_SH7708
253         bool "Support SH7708 processor"
254         select CPU_SH3
255         help
256           Select SH7708 if you have a  60 Mhz SH-3 HD6417708S or
257           if you have a 100 Mhz SH-3 HD6417708R CPU.
258
259 config CPU_SUBTYPE_SH7709
260         bool "Support SH7709 processor"
261         select CPU_SH3
262         help
263           Select SH7709 if you have a  80 Mhz SH-3 HD6417709 CPU.
264
265 config CPU_SUBTYPE_SH7710
266         bool "Support SH7710 processor"
267         select CPU_SH3
268         select CPU_HAS_DSP
269         help
270           Select SH7710 if you have a SH3-DSP SH7710 CPU.
271
272 config CPU_SUBTYPE_SH7712
273         bool "Support SH7712 processor"
274         select CPU_SH3
275         select CPU_HAS_DSP
276         help
277           Select SH7712 if you have a SH3-DSP SH7712 CPU.
278
279 config CPU_SUBTYPE_SH7720
280         bool "Support SH7720 processor"
281         select CPU_SH3
282         select CPU_HAS_DSP
283         help
284           Select SH7720 if you have a SH3-DSP SH7720 CPU.
285
286 config CPU_SUBTYPE_SH7721
287         bool "Support SH7721 processor"
288         select CPU_SH3
289         select CPU_HAS_DSP
290         help
291           Select SH7721 if you have a SH3-DSP SH7721 CPU.
292
293 # SH-4 Processor Support
294
295 config CPU_SUBTYPE_SH7750
296         bool "Support SH7750 processor"
297         select CPU_SH4
298         help
299           Select SH7750 if you have a 200 Mhz SH-4 HD6417750 CPU.
300
301 config CPU_SUBTYPE_SH7091
302         bool "Support SH7091 processor"
303         select CPU_SH4
304         help
305           Select SH7091 if you have an SH-4 based Sega device (such as
306           the Dreamcast, Naomi, and Naomi 2).
307
308 config CPU_SUBTYPE_SH7750R
309         bool "Support SH7750R processor"
310         select CPU_SH4
311
312 config CPU_SUBTYPE_SH7750S
313         bool "Support SH7750S processor"
314         select CPU_SH4
315
316 config CPU_SUBTYPE_SH7751
317         bool "Support SH7751 processor"
318         select CPU_SH4
319         help
320           Select SH7751 if you have a 166 Mhz SH-4 HD6417751 CPU,
321           or if you have a HD6417751R CPU.
322
323 config CPU_SUBTYPE_SH7751R
324         bool "Support SH7751R processor"
325         select CPU_SH4
326
327 config CPU_SUBTYPE_SH7760
328         bool "Support SH7760 processor"
329         select CPU_SH4
330
331 config CPU_SUBTYPE_SH4_202
332         bool "Support SH4-202 processor"
333         select CPU_SH4
334
335 # SH-4A Processor Support
336
337 config CPU_SUBTYPE_SH7723
338         bool "Support SH7723 processor"
339         select CPU_SH4A
340         select CPU_SHX2
341         select ARCH_SHMOBILE
342         select ARCH_SPARSEMEM_ENABLE
343         select SYS_SUPPORTS_CMT
344         help
345           Select SH7723 if you have an SH-MobileR2 CPU.
346
347 config CPU_SUBTYPE_SH7763
348         bool "Support SH7763 processor"
349         select CPU_SH4A
350         help
351           Select SH7763 if you have a SH4A SH7763(R5S77631) CPU.
352
353 config CPU_SUBTYPE_SH7770
354         bool "Support SH7770 processor"
355         select CPU_SH4A
356
357 config CPU_SUBTYPE_SH7780
358         bool "Support SH7780 processor"
359         select CPU_SH4A
360
361 config CPU_SUBTYPE_SH7785
362         bool "Support SH7785 processor"
363         select CPU_SH4A
364         select CPU_SHX2
365         select ARCH_SPARSEMEM_ENABLE
366         select SYS_SUPPORTS_NUMA
367
368 config CPU_SUBTYPE_SH7786
369         bool "Support SH7786 processor"
370         select CPU_SH4A
371         select CPU_SHX3
372         select CPU_HAS_PTEAEX
373         select ARCH_SPARSEMEM_ENABLE
374         select SYS_SUPPORTS_NUMA
375
376 config CPU_SUBTYPE_SHX3
377         bool "Support SH-X3 processor"
378         select CPU_SH4A
379         select CPU_SHX3
380         select ARCH_SPARSEMEM_ENABLE
381         select SYS_SUPPORTS_NUMA
382         select SYS_SUPPORTS_SMP
383         select GENERIC_CLOCKEVENTS_BROADCAST if SMP
384
385 # SH4AL-DSP Processor Support
386
387 config CPU_SUBTYPE_SH7343
388         bool "Support SH7343 processor"
389         select CPU_SH4AL_DSP
390         select ARCH_SHMOBILE
391         select SYS_SUPPORTS_CMT
392
393 config CPU_SUBTYPE_SH7722
394         bool "Support SH7722 processor"
395         select CPU_SH4AL_DSP
396         select CPU_SHX2
397         select ARCH_SHMOBILE
398         select ARCH_SPARSEMEM_ENABLE
399         select SYS_SUPPORTS_NUMA
400         select SYS_SUPPORTS_CMT
401
402 config CPU_SUBTYPE_SH7366
403         bool "Support SH7366 processor"
404         select CPU_SH4AL_DSP
405         select CPU_SHX2
406         select ARCH_SHMOBILE
407         select ARCH_SPARSEMEM_ENABLE
408         select SYS_SUPPORTS_NUMA
409         select SYS_SUPPORTS_CMT
410
411 # SH-5 Processor Support
412
413 config CPU_SUBTYPE_SH5_101
414         bool "Support SH5-101 processor"
415         select CPU_SH5
416
417 config CPU_SUBTYPE_SH5_103
418         bool "Support SH5-103 processor"
419         select CPU_SH5
420
421 endchoice
422
423 source "arch/sh/mm/Kconfig"
424  
425 source "arch/sh/Kconfig.cpu"
426
427 source "arch/sh/boards/Kconfig"
428
429 menu "Timer and clock configuration"
430
431 config SH_TMU
432         bool "TMU timer support"
433         depends on CPU_SH3 || CPU_SH4
434         default y
435         select GENERIC_TIME
436         select GENERIC_CLOCKEVENTS
437         help
438           This enables the use of the TMU as the system timer.
439
440 config SH_CMT
441         bool "CMT timer support"
442         depends on SYS_SUPPORTS_CMT && CPU_SH2
443         default y
444         help
445           This enables the use of the CMT as the system timer.
446
447 #
448 # Support for the new-style CMT driver. This will replace SH_CMT
449 # once its other dependencies are merged.
450 #
451 config SH_TIMER_CMT
452         bool "CMT clockevents driver"
453         depends on SYS_SUPPORTS_CMT && !SH_CMT
454         select GENERIC_CLOCKEVENTS
455
456 config SH_MTU2
457         bool "MTU2 timer support"
458         depends on CPU_SH2A
459         default y
460         help
461           This enables the use of the MTU2 as the system timer.
462
463 config SH_TIMER_IRQ
464         int
465         default "28" if CPU_SUBTYPE_SH7780 || CPU_SUBTYPE_SH7785 || \
466                         CPU_SUBTYPE_SH7763
467         default "86" if CPU_SUBTYPE_SH7619
468         default "140" if CPU_SUBTYPE_SH7206
469         default "142" if CPU_SUBTYPE_SH7203 && SH_CMT
470         default "153" if CPU_SUBTYPE_SH7203 && SH_MTU2
471         default "238" if CPU_SUBTYPE_MXG
472         default "16"
473
474 config SH_PCLK_FREQ
475         int "Peripheral clock frequency (in Hz)"
476         default "27000000" if CPU_SUBTYPE_SH7343
477         default "31250000" if CPU_SUBTYPE_SH7619
478         default "32000000" if CPU_SUBTYPE_SH7722
479         default "33333333" if CPU_SUBTYPE_SH7770 || CPU_SUBTYPE_SH7723 || \
480                               CPU_SUBTYPE_SH7760 || CPU_SUBTYPE_SH7705 || \
481                               CPU_SUBTYPE_SH7203 || CPU_SUBTYPE_SH7206 || \
482                               CPU_SUBTYPE_SH7263 || CPU_SUBTYPE_MXG    || \
483                               CPU_SUBTYPE_SH7786
484         default "60000000" if CPU_SUBTYPE_SH7751 || CPU_SUBTYPE_SH7751R
485         default "66000000" if CPU_SUBTYPE_SH4_202
486         default "50000000"
487         help
488           This option is used to specify the peripheral clock frequency.
489           This is necessary for determining the reference clock value on
490           platforms lacking an RTC.
491
492 config SH_CLK_MD
493         int "CPU Mode Pin Setting"
494         depends on CPU_SH2
495         default 6 if CPU_SUBTYPE_SH7206
496         default 5 if CPU_SUBTYPE_SH7619
497         default 0
498         help
499           MD2 - MD0 pin setting.
500
501 source "kernel/time/Kconfig"
502
503 endmenu
504
505 menu "CPU Frequency scaling"
506
507 source "drivers/cpufreq/Kconfig"
508
509 config SH_CPU_FREQ
510         tristate "SuperH CPU Frequency driver"
511         depends on CPU_FREQ
512         select CPU_FREQ_TABLE
513         help
514           This adds the cpufreq driver for SuperH. Any CPU that supports
515           clock rate rounding through the clock framework can use this
516           driver. While it will make the kernel slightly larger, this is
517           harmless for CPUs that don't support rate rounding. The driver
518           will also generate a notice in the boot log before disabling
519           itself if the CPU in question is not capable of rate rounding.
520
521           For details, take a look at <file:Documentation/cpu-freq>.
522
523           If unsure, say N.
524
525 endmenu
526
527 source "arch/sh/drivers/Kconfig"
528
529 endmenu
530
531 menu "Kernel features"
532
533 source kernel/Kconfig.hz
534
535 config KEXEC
536         bool "kexec system call (EXPERIMENTAL)"
537         depends on SUPERH32 && EXPERIMENTAL && MMU
538         help
539           kexec is a system call that implements the ability to shutdown your
540           current kernel, and to start another kernel.  It is like a reboot
541           but it is independent of the system firmware.  And like a reboot
542           you can start any kernel with it, not just Linux.
543
544           The name comes from the similarity to the exec system call.
545
546           It is an ongoing process to be certain the hardware in a machine
547           is properly shutdown, so do not be surprised if this code does not
548           initially work for you.  It may help to enable device hotplugging
549           support.  As of this writing the exact hardware interface is
550           strongly in flux, so no good recommendation can be made.
551
552 config CRASH_DUMP
553         bool "kernel crash dumps (EXPERIMENTAL)"
554         depends on SUPERH32 && EXPERIMENTAL
555         help
556           Generate crash dump after being started by kexec.
557           This should be normally only set in special crash dump kernels
558           which are loaded in the main kernel with kexec-tools into
559           a specially reserved region and then later executed after
560           a crash by kdump/kexec. The crash dump kernel must be compiled
561           to a memory address not used by the main kernel using
562           MEMORY_START.
563
564           For more details see Documentation/kdump/kdump.txt
565
566 config KEXEC_JUMP
567         bool "kexec jump (EXPERIMENTAL)"
568         depends on SUPERH32 && KEXEC && HIBERNATION && EXPERIMENTAL
569         help
570           Jump between original kernel and kexeced kernel and invoke
571           code via KEXEC
572
573 config SECCOMP
574         bool "Enable seccomp to safely compute untrusted bytecode"
575         depends on PROC_FS
576         help
577           This kernel feature is useful for number crunching applications
578           that may need to compute untrusted bytecode during their
579           execution. By using pipes or other transports made available to
580           the process as file descriptors supporting the read/write
581           syscalls, it's possible to isolate those applications in
582           their own address space using seccomp. Once seccomp is
583           enabled via prctl, it cannot be disabled and the task is only
584           allowed to execute a few safe syscalls defined by each seccomp
585           mode.
586
587           If unsure, say N.
588
589 config SMP
590         bool "Symmetric multi-processing support"
591         depends on SYS_SUPPORTS_SMP
592         select USE_GENERIC_SMP_HELPERS
593         ---help---
594           This enables support for systems with more than one CPU. If you have
595           a system with only one CPU, like most personal computers, say N. If
596           you have a system with more than one CPU, say Y.
597
598           If you say N here, the kernel will run on single and multiprocessor
599           machines, but will use only one CPU of a multiprocessor machine. If
600           you say Y here, the kernel will run on many, but not all,
601           singleprocessor machines. On a singleprocessor machine, the kernel
602           will run faster if you say N here.
603
604           People using multiprocessor machines who say Y here should also say
605           Y to "Enhanced Real Time Clock Support", below.
606
607           See also <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO
608           available at <http://www.tldp.org/docs.html#howto>.
609
610           If you don't know what to do here, say N.
611
612 config NR_CPUS
613         int "Maximum number of CPUs (2-32)"
614         range 2 32
615         depends on SMP
616         default "4" if CPU_SHX3
617         default "2"
618         help
619           This allows you to specify the maximum number of CPUs which this
620           kernel will support.  The maximum supported value is 32 and the
621           minimum value which makes sense is 2.
622
623           This is purely to save memory - each supported CPU adds
624           approximately eight kilobytes to the kernel image.
625
626 source "kernel/Kconfig.preempt"
627
628 config GUSA
629         def_bool y
630         depends on !SMP && SUPERH32
631         help
632           This enables support for gUSA (general UserSpace Atomicity).
633           This is the default implementation for both UP and non-ll/sc
634           CPUs, and is used by the libc, amongst others.
635
636           For additional information, design information can be found 
637           in <http://lc.linux.or.jp/lc2002/papers/niibe0919p.pdf>.
638
639           This should only be disabled for special cases where alternate
640           atomicity implementations exist.
641
642 config GUSA_RB
643         bool "Implement atomic operations by roll-back (gRB) (EXPERIMENTAL)"
644         depends on GUSA && CPU_SH3 || (CPU_SH4 && !CPU_SH4A)
645         help
646           Enabling this option will allow the kernel to implement some
647           atomic operations using a software implementation of load-locked/
648           store-conditional (LLSC). On machines which do not have hardware
649           LLSC, this should be more efficient than the other alternative of
650           disabling interrupts around the atomic sequence.
651
652 endmenu
653
654 menu "Boot options"
655
656 config ZERO_PAGE_OFFSET
657         hex "Zero page offset"
658         default "0x00004000" if SH_SH03
659         default "0x00010000" if PAGE_SIZE_64KB
660         default "0x00002000" if PAGE_SIZE_8KB
661         default "0x00001000"
662         help
663           This sets the default offset of zero page.
664
665 config BOOT_LINK_OFFSET
666         hex "Link address offset for booting"
667         default "0x00800000"
668         help
669           This option allows you to set the link address offset of the zImage.
670           This can be useful if you are on a board which has a small amount of
671           memory.
672
673 config UBC_WAKEUP
674         bool "Wakeup UBC on startup"
675         depends on CPU_SH4 && !CPU_SH4A
676         help
677           Selecting this option will wakeup the User Break Controller (UBC) on
678           startup. Although the UBC is left in an awake state when the processor
679           comes up, some boot loaders misbehave by putting the UBC to sleep in a
680           power saving state, which causes issues with things like ptrace().
681
682           If unsure, say N.
683
684 config CMDLINE_BOOL
685         bool "Default bootloader kernel arguments"
686
687 config CMDLINE
688         string "Initial kernel command string"
689         depends on CMDLINE_BOOL
690         default "console=ttySC1,115200"
691
692 endmenu
693
694 menu "Bus options"
695
696 config SUPERHYWAY
697         tristate "SuperHyway Bus support"
698         depends on CPU_SUBTYPE_SH4_202
699
700 config MAPLE
701         bool "Maple Bus support"
702         depends on SH_DREAMCAST
703         help
704          The Maple Bus is SEGA's serial communication bus for peripherals
705          on the Dreamcast. Without this bus support you won't be able to
706          get your Dreamcast keyboard etc to work, so most users
707          probably want to say 'Y' here, unless you are only using the
708          Dreamcast with a serial line terminal or a remote network
709          connection.
710
711 source "arch/sh/drivers/pci/Kconfig"
712
713 source "drivers/pci/pcie/Kconfig"
714
715 source "drivers/pci/Kconfig"
716
717 source "drivers/pcmcia/Kconfig"
718
719 source "drivers/pci/hotplug/Kconfig"
720
721 endmenu
722
723 menu "Executable file formats"
724
725 source "fs/Kconfig.binfmt"
726
727 endmenu
728
729 menu "Power management options (EXPERIMENTAL)"
730 depends on EXPERIMENTAL
731
732 source "kernel/power/Kconfig"
733
734 source "drivers/cpuidle/Kconfig"
735
736 endmenu
737
738 source "net/Kconfig"
739
740 source "drivers/Kconfig"
741
742 source "fs/Kconfig"
743
744 source "arch/sh/Kconfig.debug"
745
746 source "security/Kconfig"
747
748 source "crypto/Kconfig"
749
750 source "lib/Kconfig"