sh: remove old CMT driver
[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_TIMER_CMT
466         bool "CMT timer driver"
467         depends on SYS_SUPPORTS_CMT
468         default y
469         select GENERIC_CLOCKEVENTS
470         select GENERIC_TIME
471         help
472           This enables build of the CMT timer driver.
473
474 config SH_MTU2
475         bool "MTU2 timer support"
476         depends on CPU_SH2A && !GENERIC_TIME
477         default y
478         help
479           This enables the use of the MTU2 as the system timer.
480
481 config SH_TIMER_IRQ
482         int
483         default "28" if CPU_SUBTYPE_SH7780 || CPU_SUBTYPE_SH7785 || \
484                         CPU_SUBTYPE_SH7763
485         default "86" if CPU_SUBTYPE_SH7619
486         default "140" if CPU_SUBTYPE_SH7206
487         default "142" if CPU_SUBTYPE_SH7203 && SH_CMT
488         default "153" if CPU_SUBTYPE_SH7203 && SH_MTU2
489         default "238" if CPU_SUBTYPE_MXG
490         default "16"
491
492 config SH_PCLK_FREQ
493         int "Peripheral clock frequency (in Hz)"
494         default "27000000" if CPU_SUBTYPE_SH7343
495         default "31250000" if CPU_SUBTYPE_SH7619
496         default "32000000" if CPU_SUBTYPE_SH7722
497         default "33333333" if CPU_SUBTYPE_SH7770 || CPU_SUBTYPE_SH7723 || \
498                               CPU_SUBTYPE_SH7760 || CPU_SUBTYPE_SH7705 || \
499                               CPU_SUBTYPE_SH7203 || CPU_SUBTYPE_SH7206 || \
500                               CPU_SUBTYPE_SH7263 || CPU_SUBTYPE_MXG    || \
501                               CPU_SUBTYPE_SH7786
502         default "41666666" if CPU_SUBTYPE_SH7724
503         default "60000000" if CPU_SUBTYPE_SH7751 || CPU_SUBTYPE_SH7751R
504         default "66000000" if CPU_SUBTYPE_SH4_202
505         default "50000000"
506         help
507           This option is used to specify the peripheral clock frequency.
508           This is necessary for determining the reference clock value on
509           platforms lacking an RTC.
510
511 config SH_CLK_MD
512         int "CPU Mode Pin Setting"
513         depends on CPU_SH2
514         default 6 if CPU_SUBTYPE_SH7206
515         default 5 if CPU_SUBTYPE_SH7619
516         default 0
517         help
518           MD2 - MD0 pin setting.
519
520 source "kernel/time/Kconfig"
521
522 endmenu
523
524 menu "CPU Frequency scaling"
525
526 source "drivers/cpufreq/Kconfig"
527
528 config SH_CPU_FREQ
529         tristate "SuperH CPU Frequency driver"
530         depends on CPU_FREQ
531         select CPU_FREQ_TABLE
532         help
533           This adds the cpufreq driver for SuperH. Any CPU that supports
534           clock rate rounding through the clock framework can use this
535           driver. While it will make the kernel slightly larger, this is
536           harmless for CPUs that don't support rate rounding. The driver
537           will also generate a notice in the boot log before disabling
538           itself if the CPU in question is not capable of rate rounding.
539
540           For details, take a look at <file:Documentation/cpu-freq>.
541
542           If unsure, say N.
543
544 endmenu
545
546 source "arch/sh/drivers/Kconfig"
547
548 endmenu
549
550 menu "Kernel features"
551
552 source kernel/Kconfig.hz
553
554 config KEXEC
555         bool "kexec system call (EXPERIMENTAL)"
556         depends on SUPERH32 && EXPERIMENTAL && MMU
557         help
558           kexec is a system call that implements the ability to shutdown your
559           current kernel, and to start another kernel.  It is like a reboot
560           but it is independent of the system firmware.  And like a reboot
561           you can start any kernel with it, not just Linux.
562
563           The name comes from the similarity to the exec system call.
564
565           It is an ongoing process to be certain the hardware in a machine
566           is properly shutdown, so do not be surprised if this code does not
567           initially work for you.  It may help to enable device hotplugging
568           support.  As of this writing the exact hardware interface is
569           strongly in flux, so no good recommendation can be made.
570
571 config CRASH_DUMP
572         bool "kernel crash dumps (EXPERIMENTAL)"
573         depends on SUPERH32 && EXPERIMENTAL
574         help
575           Generate crash dump after being started by kexec.
576           This should be normally only set in special crash dump kernels
577           which are loaded in the main kernel with kexec-tools into
578           a specially reserved region and then later executed after
579           a crash by kdump/kexec. The crash dump kernel must be compiled
580           to a memory address not used by the main kernel using
581           MEMORY_START.
582
583           For more details see Documentation/kdump/kdump.txt
584
585 config KEXEC_JUMP
586         bool "kexec jump (EXPERIMENTAL)"
587         depends on SUPERH32 && KEXEC && HIBERNATION && EXPERIMENTAL
588         help
589           Jump between original kernel and kexeced kernel and invoke
590           code via KEXEC
591
592 config SECCOMP
593         bool "Enable seccomp to safely compute untrusted bytecode"
594         depends on PROC_FS
595         help
596           This kernel feature is useful for number crunching applications
597           that may need to compute untrusted bytecode during their
598           execution. By using pipes or other transports made available to
599           the process as file descriptors supporting the read/write
600           syscalls, it's possible to isolate those applications in
601           their own address space using seccomp. Once seccomp is
602           enabled via prctl, it cannot be disabled and the task is only
603           allowed to execute a few safe syscalls defined by each seccomp
604           mode.
605
606           If unsure, say N.
607
608 config SMP
609         bool "Symmetric multi-processing support"
610         depends on SYS_SUPPORTS_SMP
611         select USE_GENERIC_SMP_HELPERS
612         ---help---
613           This enables support for systems with more than one CPU. If you have
614           a system with only one CPU, like most personal computers, say N. If
615           you have a system with more than one CPU, say Y.
616
617           If you say N here, the kernel will run on single and multiprocessor
618           machines, but will use only one CPU of a multiprocessor machine. If
619           you say Y here, the kernel will run on many, but not all,
620           singleprocessor machines. On a singleprocessor machine, the kernel
621           will run faster if you say N here.
622
623           People using multiprocessor machines who say Y here should also say
624           Y to "Enhanced Real Time Clock Support", below.
625
626           See also <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO
627           available at <http://www.tldp.org/docs.html#howto>.
628
629           If you don't know what to do here, say N.
630
631 config NR_CPUS
632         int "Maximum number of CPUs (2-32)"
633         range 2 32
634         depends on SMP
635         default "4" if CPU_SHX3
636         default "2"
637         help
638           This allows you to specify the maximum number of CPUs which this
639           kernel will support.  The maximum supported value is 32 and the
640           minimum value which makes sense is 2.
641
642           This is purely to save memory - each supported CPU adds
643           approximately eight kilobytes to the kernel image.
644
645 source "kernel/Kconfig.preempt"
646
647 config GUSA
648         def_bool y
649         depends on !SMP && SUPERH32
650         help
651           This enables support for gUSA (general UserSpace Atomicity).
652           This is the default implementation for both UP and non-ll/sc
653           CPUs, and is used by the libc, amongst others.
654
655           For additional information, design information can be found 
656           in <http://lc.linux.or.jp/lc2002/papers/niibe0919p.pdf>.
657
658           This should only be disabled for special cases where alternate
659           atomicity implementations exist.
660
661 config GUSA_RB
662         bool "Implement atomic operations by roll-back (gRB) (EXPERIMENTAL)"
663         depends on GUSA && CPU_SH3 || (CPU_SH4 && !CPU_SH4A)
664         help
665           Enabling this option will allow the kernel to implement some
666           atomic operations using a software implementation of load-locked/
667           store-conditional (LLSC). On machines which do not have hardware
668           LLSC, this should be more efficient than the other alternative of
669           disabling interrupts around the atomic sequence.
670
671 endmenu
672
673 menu "Boot options"
674
675 config ZERO_PAGE_OFFSET
676         hex "Zero page offset"
677         default "0x00004000" if SH_SH03
678         default "0x00010000" if PAGE_SIZE_64KB
679         default "0x00002000" if PAGE_SIZE_8KB
680         default "0x00001000"
681         help
682           This sets the default offset of zero page.
683
684 config BOOT_LINK_OFFSET
685         hex "Link address offset for booting"
686         default "0x00800000"
687         help
688           This option allows you to set the link address offset of the zImage.
689           This can be useful if you are on a board which has a small amount of
690           memory.
691
692 config UBC_WAKEUP
693         bool "Wakeup UBC on startup"
694         depends on CPU_SH4 && !CPU_SH4A
695         help
696           Selecting this option will wakeup the User Break Controller (UBC) on
697           startup. Although the UBC is left in an awake state when the processor
698           comes up, some boot loaders misbehave by putting the UBC to sleep in a
699           power saving state, which causes issues with things like ptrace().
700
701           If unsure, say N.
702
703 config CMDLINE_BOOL
704         bool "Default bootloader kernel arguments"
705
706 config CMDLINE
707         string "Initial kernel command string"
708         depends on CMDLINE_BOOL
709         default "console=ttySC1,115200"
710
711 endmenu
712
713 menu "Bus options"
714
715 config SUPERHYWAY
716         tristate "SuperHyway Bus support"
717         depends on CPU_SUBTYPE_SH4_202
718
719 config MAPLE
720         bool "Maple Bus support"
721         depends on SH_DREAMCAST
722         help
723          The Maple Bus is SEGA's serial communication bus for peripherals
724          on the Dreamcast. Without this bus support you won't be able to
725          get your Dreamcast keyboard etc to work, so most users
726          probably want to say 'Y' here, unless you are only using the
727          Dreamcast with a serial line terminal or a remote network
728          connection.
729
730 source "arch/sh/drivers/pci/Kconfig"
731
732 source "drivers/pci/pcie/Kconfig"
733
734 source "drivers/pci/Kconfig"
735
736 source "drivers/pcmcia/Kconfig"
737
738 source "drivers/pci/hotplug/Kconfig"
739
740 endmenu
741
742 menu "Executable file formats"
743
744 source "fs/Kconfig.binfmt"
745
746 endmenu
747
748 menu "Power management options (EXPERIMENTAL)"
749 depends on EXPERIMENTAL
750
751 source "kernel/power/Kconfig"
752
753 source "drivers/cpuidle/Kconfig"
754
755 endmenu
756
757 source "net/Kconfig"
758
759 source "drivers/Kconfig"
760
761 source "fs/Kconfig"
762
763 source "arch/sh/Kconfig.debug"
764
765 source "security/Kconfig"
766
767 source "crypto/Kconfig"
768
769 source "lib/Kconfig"