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