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