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