Linux 2.6.28-rc5
[cris-mirror.git] / arch / sh / Kconfig
blob80119b3398e7f2acb1f2a1091c247cb8193e947e
2 # For a description of the syntax of this configuration file,
3 # see Documentation/kbuild/kconfig-language.txt.
6 mainmenu "Linux/SuperH Kernel Configuration"
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/>.
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
29 config SUPERH64
30         def_bool y if CPU_SH5
32 config ARCH_DEFCONFIG
33         string
34         default "arch/sh/configs/shx3_defconfig" if SUPERH32
35         default "arch/sh/configs/cayman_defconfig" if SUPERH64
37 config RWSEM_GENERIC_SPINLOCK
38         def_bool y
40 config RWSEM_XCHGADD_ALGORITHM
41         bool
43 config GENERIC_BUG
44         def_bool y
45         depends on BUG && SUPERH32
47 config GENERIC_FIND_NEXT_BIT
48         def_bool y
50 config GENERIC_HWEIGHT
51         def_bool y
53 config GENERIC_HARDIRQS
54         def_bool y
56 config GENERIC_HARDIRQS_NO__DO_IRQ
57         def_bool y
59 config GENERIC_IRQ_PROBE
60         def_bool y
62 config GENERIC_GPIO
63         def_bool n
65 config GENERIC_CALIBRATE_DELAY
66         bool
68 config GENERIC_IOMAP
69         bool
71 config GENERIC_TIME
72         def_bool n
74 config GENERIC_CLOCKEVENTS
75         def_bool n
77 config GENERIC_CLOCKEVENTS_BROADCAST
78         bool
80 config GENERIC_LOCKBREAK
81         def_bool y
82         depends on SMP && PREEMPT
84 config SYS_SUPPORTS_PM
85         bool
87 config SYS_SUPPORTS_APM_EMULATION
88         bool
89         select SYS_SUPPORTS_PM
91 config SYS_SUPPORTS_SMP
92         bool
94 config SYS_SUPPORTS_NUMA
95         bool
97 config SYS_SUPPORTS_PCI
98         bool
100 config STACKTRACE_SUPPORT
101         def_bool y
103 config LOCKDEP_SUPPORT
104         def_bool y
106 config HAVE_LATENCYTOP_SUPPORT
107         def_bool y
108         depends on !SMP
110 config ARCH_HAS_ILOG2_U32
111         def_bool n
113 config ARCH_HAS_ILOG2_U64
114         def_bool n
116 config ARCH_NO_VIRT_TO_BUS
117         def_bool y
119 config IO_TRAPPED
120         bool
122 source "init/Kconfig"
124 source "kernel/Kconfig.freezer"
126 menu "System type"
129 # Processor families
131 config CPU_SH2
132         bool
134 config CPU_SH2A
135         bool
136         select CPU_SH2
138 config CPU_SH3
139         bool
140         select CPU_HAS_INTEVT
141         select CPU_HAS_SR_RB
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
150 config CPU_SH4A
151         bool
152         select CPU_SH4
154 config CPU_SH4AL_DSP
155         bool
156         select CPU_SH4A
157         select CPU_HAS_DSP
159 config CPU_SH5
160         bool
161         select CPU_HAS_FPU
163 config CPU_SHX2
164         bool
166 config CPU_SHX3
167         bool
169 choice
170         prompt "Processor sub-type selection"
173 # Processor subtypes
176 # SH-2 Processor Support
178 config CPU_SUBTYPE_SH7619
179         bool "Support SH7619 processor"
180         select CPU_SH2
182 # SH-2A Processor Support
184 config CPU_SUBTYPE_SH7203
185         bool "Support SH7203 processor"
186         select CPU_SH2A
187         select CPU_HAS_FPU
189 config CPU_SUBTYPE_SH7206
190         bool "Support SH7206 processor"
191         select CPU_SH2A
193 config CPU_SUBTYPE_SH7263
194         bool "Support SH7263 processor"
195         select CPU_SH2A
196         select CPU_HAS_FPU
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.
204 # SH-3 Processor Support
206 config CPU_SUBTYPE_SH7705
207         bool "Support SH7705 processor"
208         select CPU_SH3
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.
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.
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.
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.
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.
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.
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.
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.
263 # SH-4 Processor Support
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.
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).
278 config CPU_SUBTYPE_SH7750R
279         bool "Support SH7750R processor"
280         select CPU_SH4
282 config CPU_SUBTYPE_SH7750S
283         bool "Support SH7750S processor"
284         select CPU_SH4
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.
293 config CPU_SUBTYPE_SH7751R
294         bool "Support SH7751R processor"
295         select CPU_SH4
297 config CPU_SUBTYPE_SH7760
298         bool "Support SH7760 processor"
299         select CPU_SH4
301 config CPU_SUBTYPE_SH4_202
302         bool "Support SH4-202 processor"
303         select CPU_SH4
305 # SH-4A Processor Support
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.
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.
321 config CPU_SUBTYPE_SH7770
322         bool "Support SH7770 processor"
323         select CPU_SH4A
325 config CPU_SUBTYPE_SH7780
326         bool "Support SH7780 processor"
327         select CPU_SH4A
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
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
345 # SH4AL-DSP Processor Support
347 config CPU_SUBTYPE_SH7343
348         bool "Support SH7343 processor"
349         select CPU_SH4AL_DSP
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
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
365 # SH-5 Processor Support
367 config CPU_SUBTYPE_SH5_101
368         bool "Support SH5-101 processor"
369         select CPU_SH5
371 config CPU_SUBTYPE_SH5_103
372         bool "Support SH5-103 processor"
373         select CPU_SH5
375 endchoice
377 source "arch/sh/mm/Kconfig"
379 source "arch/sh/Kconfig.cpu"
381 source "arch/sh/boards/Kconfig"
383 menu "Timer and clock configuration"
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.
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.
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.
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"
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.
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.
444 source "kernel/time/Kconfig"
446 endmenu
448 menu "CPU Frequency scaling"
450 source "drivers/cpufreq/Kconfig"
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.
460           For details, take a look at <file:Documentation/cpu-freq>.
462           If unsure, say N.
464 endmenu
466 source "arch/sh/drivers/Kconfig"
468 endmenu
470 config ISA_DMA_API
471         bool
473 menu "Kernel features"
475 source kernel/Kconfig.hz
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.
486           The name comes from the similarity to the exec system call.
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.
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.
506           For more details see Documentation/kdump/kdump.txt
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.
522           If unsure, say N.
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.
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.
539           People using multiprocessor machines who say Y here should also say
540           Y to "Enhanced Real Time Clock Support", below.
542           See also <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO
543           available at <http://www.tldp.org/docs.html#howto>.
545           If you don't know what to do here, say N.
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.
558           This is purely to save memory - each supported CPU adds
559           approximately eight kilobytes to the kernel image.
561 source "kernel/Kconfig.preempt"
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.
571           For additional information, design information can be found 
572           in <http://lc.linux.or.jp/lc2002/papers/niibe0919p.pdf>.
574           This should only be disabled for special cases where alternate
575           atomicity implementations exist.
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.
587 endmenu
589 menu "Boot options"
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.
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.
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().
617           If unsure, say N.
619 config CMDLINE_BOOL
620         bool "Default bootloader kernel arguments"
622 config CMDLINE
623         string "Initial kernel command string"
624         depends on CMDLINE_BOOL
625         default "console=ttySC1,115200"
627 endmenu
629 menu "Bus options"
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.
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.
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.
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.
659           Say Y here if you are building a kernel for an EISA-based machine.
661           Otherwise, say N.
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.
671 config SBUS
672         bool
674 config SUPERHYWAY
675         tristate "SuperHyway Bus support"
676         depends on CPU_SUBTYPE_SH4_202
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.
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>.
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).
703           If in doubt, select 'N'.
705 choice
706         prompt "Compact Flash Connection Area"
707         depends on CF_ENABLER
708         default CF_AREA6
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.
716           - "Area5" if CompactFlash is connected to Area 5 (0x14000000)
717           - "Area6" if it is connected to Area 6 (0x18000000)
719           "Area6" will work for most boards.
721 config CF_AREA6
722         bool "Area6"
724 endchoice
726 config CF_BASE_ADDR
727         hex
728         depends on CF_ENABLER
729         default "0xb8000000" if CF_AREA6
730         default "0xb4000000" if CF_AREA5
732 source "arch/sh/drivers/pci/Kconfig"
734 source "drivers/pci/Kconfig"
736 source "drivers/pcmcia/Kconfig"
738 source "drivers/pci/hotplug/Kconfig"
740 endmenu
742 menu "Executable file formats"
744 source "fs/Kconfig.binfmt"
746 endmenu
748 menu "Power management options (EXPERIMENTAL)"
749 depends on EXPERIMENTAL && SYS_SUPPORTS_PM
751 config ARCH_SUSPEND_POSSIBLE
752         def_bool y
753         depends on !SMP
755 source kernel/power/Kconfig
757 endmenu
759 source "net/Kconfig"
761 source "drivers/Kconfig"
763 source "fs/Kconfig"
765 source "arch/sh/Kconfig.debug"
767 source "security/Kconfig"
769 source "crypto/Kconfig"
771 source "lib/Kconfig"