sh: Rework CPU/board dependencies.
[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         bool
10         default y
11         select EMBEDDED
12         help
13           The SuperH is a RISC processor targeted for use in embedded systems
14           and consumer electronics; it was also used in the Sega Dreamcast
15           gaming console.  The SuperH port has a home page at
16           <http://www.linux-sh.org/>.
17
18 config RWSEM_GENERIC_SPINLOCK
19         bool
20         default y
21
22 config RWSEM_XCHGADD_ALGORITHM
23         bool
24
25 config GENERIC_BUG
26         def_bool y
27         depends on BUG
28
29 config GENERIC_FIND_NEXT_BIT
30         bool
31         default y
32
33 config GENERIC_HWEIGHT
34         bool
35         default y
36
37 config GENERIC_HARDIRQS
38         bool
39         default y
40
41 config GENERIC_IRQ_PROBE
42         bool
43         default y
44
45 config GENERIC_CALIBRATE_DELAY
46         bool
47         default y
48
49 config GENERIC_IOMAP
50         bool
51
52 config GENERIC_TIME
53         def_bool n
54
55 config GENERIC_CLOCKEVENTS
56         def_bool n
57
58 config SYS_SUPPORTS_APM_EMULATION
59         bool
60
61 config ARCH_MAY_HAVE_PC_FDC
62         bool
63
64 config STACKTRACE_SUPPORT
65         bool
66         default y
67
68 config LOCKDEP_SUPPORT
69         bool
70         default y
71
72 config ARCH_HAS_ILOG2_U32
73         bool
74         default n
75
76 config ARCH_HAS_ILOG2_U64
77         bool
78         default n
79
80 source "init/Kconfig"
81
82 menu "System type"
83
84 source "arch/sh/mm/Kconfig"
85
86 menu "Processor features"
87
88 choice
89         prompt "Endianess selection" 
90         default CPU_LITTLE_ENDIAN
91         help
92           Some SuperH machines can be configured for either little or big
93           endian byte order. These modes require different kernels.
94
95 config CPU_LITTLE_ENDIAN
96         bool "Little Endian"
97
98 config CPU_BIG_ENDIAN
99         bool "Big Endian"
100
101 endchoice
102
103 config SH_FPU
104         bool "FPU support"
105         depends on !CPU_SH3
106         default y
107         help
108           Selecting this option will enable support for SH processors that
109           have FPU units (ie, SH77xx).
110
111           This option must be set in order to enable the FPU.
112
113 config SH_FPU_EMU
114         bool "FPU emulation support"
115         depends on !SH_FPU && EXPERIMENTAL
116         default n
117         help
118           Selecting this option will enable support for software FPU emulation.
119           Most SH-3 users will want to say Y here, whereas most SH-4 users will
120           want to say N.
121
122 config SH_DSP
123         bool "DSP support"
124         default y if SH4AL_DSP || !CPU_SH4
125         default n
126         help
127           Selecting this option will enable support for SH processors that
128           have DSP units (ie, SH2-DSP, SH3-DSP, and SH4AL-DSP).
129
130           This option must be set in order to enable the DSP.
131
132 config SH_ADC
133         bool "ADC support"
134         depends on CPU_SH3
135         default y
136         help
137           Selecting this option will allow the Linux kernel to use SH3 on-chip
138           ADC module.
139
140           If unsure, say N.
141
142 config SH_STORE_QUEUES
143         bool "Support for Store Queues"
144         depends on CPU_SH4
145         help
146           Selecting this option will enable an in-kernel API for manipulating
147           the store queues integrated in the SH-4 processors.
148
149 config SPECULATIVE_EXECUTION
150         bool "Speculative subroutine return"
151         depends on CPU_SUBTYPE_SH7780 && EXPERIMENTAL
152         help
153           This enables support for a speculative instruction fetch for
154           subroutine return. There are various pitfalls associated with
155           this, as outlined in the SH7780 hardware manual.
156
157           If unsure, say N.
158
159 config CPU_HAS_INTEVT
160         bool
161
162 config CPU_HAS_PINT_IRQ
163         bool
164
165 config CPU_HAS_MASKREG_IRQ
166         bool
167
168 config CPU_HAS_INTC2_IRQ
169         bool
170
171 config CPU_HAS_IPR_IRQ
172         bool
173
174 config CPU_HAS_SR_RB
175         bool "CPU has SR.RB"
176         depends on CPU_SH3 || CPU_SH4
177         default y
178         help
179           This will enable the use of SR.RB register bank usage. Processors
180           that are lacking this bit must have another method in place for
181           accomplishing what is taken care of by the banked registers.
182
183           See <file:Documentation/sh/register-banks.txt> for further
184           information on SR.RB and register banking in the kernel in general.
185
186 config CPU_HAS_PTEA
187         bool
188
189 endmenu
190
191 menu "Board support"
192
193 config SOLUTION_ENGINE
194         bool
195
196 config SH_SOLUTION_ENGINE
197         bool "SolutionEngine"
198         select SOLUTION_ENGINE
199         depends on CPU_SUBTYPE_SH7709 || CPU_SUBTYPE_SH7750
200         help
201           Select SolutionEngine if configuring for a Hitachi SH7709
202           or SH7750 evaluation board.
203
204 config SH_7206_SOLUTION_ENGINE
205         bool "SolutionEngine7206"
206         select SOLUTION_ENGINE
207         depends on CPU_SUBTYPE_SH7206
208         help
209           Select 7206 SolutionEngine if configuring for a Hitachi SH7206
210           evaluation board.
211
212 config SH_7619_SOLUTION_ENGINE
213         bool "SolutionEngine7619"
214         select SOLUTION_ENGINE
215         depends on CPU_SUBTYPE_SH7619
216         help
217           Select 7619 SolutionEngine if configuring for a Hitachi SH7619
218           evaluation board.
219         
220 config SH_7722_SOLUTION_ENGINE
221         bool "SolutionEngine7722"
222         select SOLUTION_ENGINE
223         depends on CPU_SUBTYPE_SH7722
224         help
225           Select 7722 SolutionEngine if configuring for a Hitachi SH772
226           evaluation board.
227
228 config SH_7751_SOLUTION_ENGINE
229         bool "SolutionEngine7751"
230         select SOLUTION_ENGINE
231         depends on CPU_SUBTYPE_SH7751
232         help
233           Select 7751 SolutionEngine if configuring for a Hitachi SH7751
234           evaluation board.
235           
236 config SH_7780_SOLUTION_ENGINE
237         bool "SolutionEngine7780"
238         select SOLUTION_ENGINE
239         depends on CPU_SUBTYPE_SH7780
240         help
241           Select 7780 SolutionEngine if configuring for a Renesas SH7780
242           evaluation board.
243
244 config SH_7300_SOLUTION_ENGINE
245         bool "SolutionEngine7300"
246         select SOLUTION_ENGINE
247         depends on CPU_SUBTYPE_SH7300
248         help
249           Select 7300 SolutionEngine if configuring for a Hitachi
250           SH7300(SH-Mobile V) evaluation board.
251
252 config SH_7343_SOLUTION_ENGINE
253         bool "SolutionEngine7343"
254         select SOLUTION_ENGINE
255         depends on CPU_SUBTYPE_SH7343
256         help
257           Select 7343 SolutionEngine if configuring for a Hitachi
258           SH7343 (SH-Mobile 3AS) evaluation board.
259
260 config SH_73180_SOLUTION_ENGINE
261         bool "SolutionEngine73180"
262         select SOLUTION_ENGINE
263         depends on CPU_SUBTYPE_SH73180
264         help
265           Select 73180 SolutionEngine if configuring for a Hitachi
266           SH73180(SH-Mobile 3) evaluation board.
267
268 config SH_7751_SYSTEMH
269         bool "SystemH7751R"
270         depends on CPU_SUBTYPE_SH7751R
271         help
272           Select SystemH if you are configuring for a Renesas SystemH
273           7751R evaluation board.
274
275 config SH_HP6XX
276         bool "HP6XX"
277         select SYS_SUPPORTS_APM_EMULATION
278         depends on CPU_SUBTYPE_SH7709
279         help
280           Select HP6XX if configuring for a HP jornada HP6xx.
281           More information (hardware only) at
282           <http://www.hp.com/jornada/>.
283
284 config SH_SATURN
285         bool "Saturn"
286         depends on CPU_SUBTYPE_SH7604
287         help
288           Select Saturn if configuring for a SEGA Saturn.
289
290 config SH_DREAMCAST
291         bool "Dreamcast"
292         depends on CPU_SUBTYPE_SH7091
293         help
294           Select Dreamcast if configuring for a SEGA Dreamcast.
295           More information at
296           <http://www.m17n.org/linux-sh/dreamcast/>.  There is a
297           Dreamcast project is at <http://linuxdc.sourceforge.net/>.
298
299 config SH_MPC1211
300         bool "Interface MPC1211"
301         depends on CPU_SUBTYPE_SH7751 && BROKEN
302         help
303           CTP/PCI-SH02 is a CPU module computer that is produced
304           by Interface Corporation.
305           More information at <http://www.interface.co.jp>
306
307 config SH_SH03
308         bool "Interface CTP/PCI-SH03"
309         depends on CPU_SUBTYPE_SH7751 && BROKEN
310         help
311           CTP/PCI-SH03 is a CPU module computer that is produced
312           by Interface Corporation.
313           More information at <http://www.interface.co.jp>
314
315 config SH_SECUREEDGE5410
316         bool "SecureEdge5410"
317         depends on CPU_SUBTYPE_SH7751R
318         help
319           Select SecureEdge5410 if configuring for a SnapGear SH board.
320           This includes both the OEM SecureEdge products as well as the
321           SME product line.
322
323 config SH_HS7751RVOIP
324         bool "HS7751RVOIP"
325         depends on CPU_SUBTYPE_SH7751R
326         help
327           Select HS7751RVOIP if configuring for a Renesas Technology
328           Sales VoIP board.
329
330 config SH_7710VOIPGW
331         bool "SH7710-VOIP-GW"
332         depends on CPU_SUBTYPE_SH7710
333         help
334           Select this option to build a kernel for the SH7710 based
335           VOIP GW.
336
337 config SH_RTS7751R2D
338         bool "RTS7751R2D"
339         depends on CPU_SUBTYPE_SH7751R
340         help
341           Select RTS7751R2D if configuring for a Renesas Technology
342           Sales SH-Graphics board.
343
344 config SH_HIGHLANDER
345         bool "Highlander"
346         depends on CPU_SUBTYPE_SH7780 || CPU_SUBTYPE_SH7785
347
348 config SH_EDOSK7705
349         bool "EDOSK7705"
350         depends on CPU_SUBTYPE_SH7705
351
352 config SH_SH4202_MICRODEV
353         bool "SH4-202 MicroDev"
354         depends on CPU_SUBTYPE_SH4_202
355         help
356           Select SH4-202 MicroDev if configuring for a SuperH MicroDev board
357           with an SH4-202 CPU.
358
359 config SH_LANDISK
360         bool "LANDISK"
361         depends on CPU_SUBTYPE_SH7751R
362         help
363           I-O DATA DEVICE, INC. "LANDISK Series" support.
364
365 config SH_TITAN
366         bool "TITAN"
367         depends on CPU_SUBTYPE_SH7751R
368         help
369           Select Titan if you are configuring for a Nimble Microsystems
370           NetEngine NP51R.
371
372 config SH_SHMIN
373         bool "SHMIN"
374         depends on CPU_SUBTYPE_SH7706
375         help
376           Select SHMIN if configuring for the SHMIN board.
377
378 config SH_LBOX_RE2
379         bool "L-BOX RE2"
380         depends on CPU_SUBTYPE_SH7751R
381         help
382           Select L-BOX RE2 if configuring for the NTT COMWARE L-BOX RE2.
383
384 config SH_UNKNOWN
385         bool "BareCPU"
386         help
387           "Bare CPU" aka "unknown" means an SH-based system which is not one
388           of the specific ones mentioned above, which means you need to enter
389           all sorts of stuff like CONFIG_MEMORY_START because the config
390           system doesn't already know what it is.  You get a machine vector
391           without any platform-specific code in it, so things like the RTC may
392           not work.
393
394           This option is for the early stages of porting to a new machine.
395
396 endmenu
397
398 source "arch/sh/boards/renesas/hs7751rvoip/Kconfig"
399 source "arch/sh/boards/renesas/rts7751r2d/Kconfig"
400 source "arch/sh/boards/renesas/r7780rp/Kconfig"
401
402 config CF_ENABLER
403         bool "Compact Flash Enabler support"
404         depends on SH_SOLUTION_ENGINE || SH_UNKNOWN || SH_SH03
405         ---help---
406           Compact Flash is a small, removable mass storage device introduced
407           in 1994 originally as a PCMCIA device.  If you say `Y' here, you
408           compile in support for Compact Flash devices directly connected to
409           a SuperH processor.  A Compact Flash FAQ is available at
410           <http://www.compactflash.org/faqs/faq.htm>.
411
412           If your board has "Directly Connected" CompactFlash at area 5 or 6,
413           you may want to enable this option.  Then, you can use CF as
414           primary IDE drive (only tested for SanDisk).
415
416           If in doubt, select 'N'.
417
418 choice
419         prompt "Compact Flash Connection Area"
420         depends on CF_ENABLER
421         default CF_AREA6
422
423 config CF_AREA5
424         bool "Area5"
425         help
426           If your board has "Directly Connected" CompactFlash, You should
427           select the area where your CF is connected to.
428
429           - "Area5" if CompactFlash is connected to Area 5 (0x14000000)
430           - "Area6" if it is connected to Area 6 (0x18000000)
431
432           "Area6" will work for most boards.
433
434 config CF_AREA6
435         bool "Area6"
436
437 endchoice
438
439 config CF_BASE_ADDR
440         hex
441         depends on CF_ENABLER
442         default "0xb8000000" if CF_AREA6
443         default "0xb4000000" if CF_AREA5
444
445
446 menu "Timer and clock configuration"
447
448 config SH_TMU
449         bool "TMU timer support"
450         depends on CPU_SH3 || CPU_SH4
451         select GENERIC_TIME
452         select GENERIC_CLOCKEVENTS
453         default y
454         help
455           This enables the use of the TMU as the system timer.
456
457 config SH_CMT
458         bool "CMT timer support"
459         depends on CPU_SH2
460         default y
461         help
462           This enables the use of the CMT as the system timer.
463
464 config SH_MTU2
465         bool "MTU2 timer support"
466         depends on CPU_SH2A
467         default n
468         help
469           This enables the use of the MTU2 as the system timer.
470
471 config SH_TIMER_IRQ
472         int
473         default "28" if CPU_SUBTYPE_SH7780 || CPU_SUBTYPE_SH7785
474         default "86" if CPU_SUBTYPE_SH7619
475         default "140" if CPU_SUBTYPE_SH7206
476         default "16"
477
478 config SH_PCLK_FREQ
479         int "Peripheral clock frequency (in Hz)"
480         default "27000000" if CPU_SUBTYPE_SH73180 || CPU_SUBTYPE_SH7343
481         default "31250000" if CPU_SUBTYPE_SH7619
482         default "33333333" if CPU_SUBTYPE_SH7300 || CPU_SUBTYPE_SH7770 || \
483                               CPU_SUBTYPE_SH7760 || CPU_SUBTYPE_SH7705 || \
484                               CPU_SUBTYPE_SH7206
485         default "50000000" if CPU_SUBTYPE_SH7750 || CPU_SUBTYPE_SH7780 || \
486                               CPU_SUBTYPE_SH7785
487         default "60000000" if CPU_SUBTYPE_SH7751
488         default "66000000" if CPU_SUBTYPE_SH4_202
489         help
490           This option is used to specify the peripheral clock frequency.
491           This is necessary for determining the reference clock value on
492           platforms lacking an RTC.
493
494 config SH_CLK_MD
495         int "CPU Mode Pin Setting"
496         default 0
497         depends on CPU_SUBTYPE_SH7619 || CPU_SUBTYPE_SH7206
498         help
499           MD2 - MD0 pin setting.
500
501 source "kernel/time/Kconfig"
502
503 endmenu
504
505 menu "CPU Frequency scaling"
506
507 source "drivers/cpufreq/Kconfig"
508
509 config SH_CPU_FREQ
510         tristate "SuperH CPU Frequency driver"
511         depends on CPU_FREQ
512         select CPU_FREQ_TABLE
513         help
514           This adds the cpufreq driver for SuperH. At present, only
515           the SH-4 is supported.
516
517           For details, take a look at <file:Documentation/cpu-freq>.
518
519           If unsure, say N.
520
521 endmenu
522
523 source "arch/sh/drivers/Kconfig"
524
525 endmenu
526
527 config ISA_DMA_API
528         bool
529         depends on SH_MPC1211
530         default y
531
532 menu "Kernel features"
533
534 source kernel/Kconfig.hz
535
536 config KEXEC
537         bool "kexec system call (EXPERIMENTAL)"
538         depends on EXPERIMENTAL
539         help
540           kexec is a system call that implements the ability to shutdown your
541           current kernel, and to start another kernel.  It is like a reboot
542           but it is independent of the system firmware.  And like a reboot
543           you can start any kernel with it, not just Linux.
544
545           The name comes from the similarity to the exec system call.
546
547           It is an ongoing process to be certain the hardware in a machine
548           is properly shutdown, so do not be surprised if this code does not
549           initially work for you.  It may help to enable device hotplugging
550           support.  As of this writing the exact hardware interface is
551           strongly in flux, so no good recommendation can be made.
552
553 config CRASH_DUMP
554         bool "kernel crash dumps (EXPERIMENTAL)"
555         depends on EXPERIMENTAL
556         help
557           Generate crash dump after being started by kexec.
558           This should be normally only set in special crash dump kernels
559           which are loaded in the main kernel with kexec-tools into
560           a specially reserved region and then later executed after
561           a crash by kdump/kexec. The crash dump kernel must be compiled
562           to a memory address not used by the main kernel using
563           MEMORY_START.
564
565           For more details see Documentation/kdump/kdump.txt
566
567 config SMP
568         bool "Symmetric multi-processing support"
569         ---help---
570           This enables support for systems with more than one CPU. If you have
571           a system with only one CPU, like most personal computers, say N. If
572           you have a system with more than one CPU, say Y.
573
574           If you say N here, the kernel will run on single and multiprocessor
575           machines, but will use only one CPU of a multiprocessor machine. If
576           you say Y here, the kernel will run on many, but not all,
577           singleprocessor machines. On a singleprocessor machine, the kernel
578           will run faster if you say N here.
579
580           People using multiprocessor machines who say Y here should also say
581           Y to "Enhanced Real Time Clock Support", below.
582
583           See also the <file:Documentation/smp.txt>,
584           <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO available
585           at <http://www.tldp.org/docs.html#howto>.
586
587           If you don't know what to do here, say N.
588
589 config NR_CPUS
590         int "Maximum number of CPUs (2-32)"
591         range 2 32
592         depends on SMP
593         default "2"
594         help
595           This allows you to specify the maximum number of CPUs which this
596           kernel will support.  The maximum supported value is 32 and the
597           minimum value which makes sense is 2.
598
599           This is purely to save memory - each supported CPU adds
600           approximately eight kilobytes to the kernel image.
601
602 source "kernel/Kconfig.preempt"
603
604 config NODES_SHIFT
605         int
606         default "1"
607         depends on NEED_MULTIPLE_NODES
608
609 endmenu
610
611 menu "Boot options"
612
613 config ZERO_PAGE_OFFSET
614         hex "Zero page offset"
615         default "0x00004000" if SH_MPC1211 || SH_SH03
616         default "0x00010000" if PAGE_SIZE_64KB
617         default "0x00002000" if PAGE_SIZE_8KB
618         default "0x00001000"
619         help
620           This sets the default offset of zero page.
621
622 config BOOT_LINK_OFFSET
623         hex "Link address offset for booting"
624         default "0x00800000"
625         help
626           This option allows you to set the link address offset of the zImage.
627           This can be useful if you are on a board which has a small amount of
628           memory.
629
630 config UBC_WAKEUP
631         bool "Wakeup UBC on startup"
632         help
633           Selecting this option will wakeup the User Break Controller (UBC) on
634           startup. Although the UBC is left in an awake state when the processor
635           comes up, some boot loaders misbehave by putting the UBC to sleep in a
636           power saving state, which causes issues with things like ptrace().
637
638           If unsure, say N.
639
640 config CMDLINE_BOOL
641         bool "Default bootloader kernel arguments"
642
643 config CMDLINE
644         string "Initial kernel command string"
645         depends on CMDLINE_BOOL
646         default "console=ttySC1,115200"
647
648 endmenu
649
650 menu "Bus options"
651
652 # Even on SuperH devices which don't have an ISA bus,
653 # this variable helps the PCMCIA modules handle
654 # IRQ requesting properly -- Greg Banks.
655 #
656 # Though we're generally not interested in it when
657 # we're not using PCMCIA, so we make it dependent on
658 # PCMCIA outright. -- PFM.
659 config ISA
660         bool
661         default y if PCMCIA
662         help
663           Find out whether you have ISA slots on your motherboard.  ISA is the
664           name of a bus system, i.e. the way the CPU talks to the other stuff
665           inside your box.  Other bus systems are PCI, EISA, MicroChannel
666           (MCA) or VESA.  ISA is an older system, now being displaced by PCI;
667           newer boards don't support it.  If you have ISA, say Y, otherwise N.
668
669 config EISA
670         bool
671         ---help---
672           The Extended Industry Standard Architecture (EISA) bus was
673           developed as an open alternative to the IBM MicroChannel bus.
674
675           The EISA bus provided some of the features of the IBM MicroChannel
676           bus while maintaining backward compatibility with cards made for
677           the older ISA bus.  The EISA bus saw limited use between 1988 and
678           1995 when it was made obsolete by the PCI bus.
679
680           Say Y here if you are building a kernel for an EISA-based machine.
681
682           Otherwise, say N.
683
684 config MCA
685         bool
686         help
687           MicroChannel Architecture is found in some IBM PS/2 machines and
688           laptops.  It is a bus system similar to PCI or ISA. See
689           <file:Documentation/mca.txt> (and especially the web page given
690           there) before attempting to build an MCA bus kernel.
691
692 config SBUS
693         bool
694
695 config SUPERHYWAY
696         tristate "SuperHyway Bus support"
697         depends on CPU_SUBTYPE_SH4_202
698
699 source "arch/sh/drivers/pci/Kconfig"
700
701 source "drivers/pci/Kconfig"
702
703 source "drivers/pcmcia/Kconfig"
704
705 source "drivers/pci/hotplug/Kconfig"
706
707 endmenu
708
709 menu "Executable file formats"
710
711 source "fs/Kconfig.binfmt"
712
713 endmenu
714
715 menu "Power management options (EXPERIMENTAL)"
716 depends on EXPERIMENTAL
717
718 source kernel/power/Kconfig
719
720 endmenu
721
722 source "net/Kconfig"
723
724 source "drivers/Kconfig"
725
726 source "fs/Kconfig"
727
728 source "arch/sh/oprofile/Kconfig"
729
730 source "arch/sh/Kconfig.debug"
731
732 source "security/Kconfig"
733
734 source "crypto/Kconfig"
735
736 source "lib/Kconfig"