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