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