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