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