[PATCH] sh: Move CPU subtype configuration to its own Kconfig
[linux-2.6.git] / 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         help
12           The SuperH is a RISC processor targeted for use in embedded systems
13           and consumer electronics; it was also used in the Sega Dreamcast
14           gaming console.  The SuperH port has a home page at
15           <http://www.linux-sh.org/>.
16
17 config RWSEM_GENERIC_SPINLOCK
18         bool
19         default y
20
21 config RWSEM_XCHGADD_ALGORITHM
22         bool
23
24 config GENERIC_HARDIRQS
25         bool
26         default y
27
28 config GENERIC_IRQ_PROBE
29         bool
30         default y
31
32 config GENERIC_CALIBRATE_DELAY
33         bool
34         default y
35
36 config GENERIC_IOMAP
37         bool
38
39 config ARCH_MAY_HAVE_PC_FDC
40         bool
41
42 source "init/Kconfig"
43
44 menu "System type"
45
46 choice
47         prompt "SuperH system type"
48         default SH_UNKNOWN
49
50 config SH_SOLUTION_ENGINE
51         bool "SolutionEngine"
52         help
53           Select SolutionEngine if configuring for a Hitachi SH7709
54           or SH7750 evaluation board.
55
56 config SH_7751_SOLUTION_ENGINE
57         bool "SolutionEngine7751"
58         select CPU_SUBTYPE_SH7751
59         help
60           Select 7751 SolutionEngine if configuring for a Hitachi SH7751
61           evaluation board.
62
63 config SH_7300_SOLUTION_ENGINE
64         bool "SolutionEngine7300"
65         select CPU_SUBTYPE_SH7300
66         help
67           Select 7300 SolutionEngine if configuring for a Hitachi SH7300(SH-Mobile V)
68           evaluation board.
69
70 config SH_73180_SOLUTION_ENGINE
71        bool "SolutionEngine73180"
72        select CPU_SUBTYPE_SH73180
73        help
74          Select 73180 SolutionEngine if configuring for a Hitachi SH73180(SH-Mobile 3)
75          evaluation board.
76
77 config SH_7751_SYSTEMH
78         bool "SystemH7751R"
79         select CPU_SUBTYPE_SH7751R
80         help
81           Select SystemH if you are configuring for a Renesas SystemH
82           7751R evaluation board.
83
84 config SH_STB1_HARP
85         bool "STB1_Harp"
86
87 config SH_STB1_OVERDRIVE
88         bool "STB1_Overdrive"
89
90 config SH_HP6XX
91         bool "HP6XX"
92         help
93           Select HP6XX if configuring for a HP jornada HP6xx.
94           More information (hardware only) at
95           <http://www.hp.com/jornada/>.
96
97 config SH_CQREEK
98         bool "CqREEK"
99         help
100           Select CqREEK if configuring for a CqREEK SH7708 or SH7750.
101           More information at
102           <http://sources.redhat.com/ecos/hardware.html#SuperH>.
103
104 config SH_DMIDA
105         bool "DMIDA"
106         help
107           Select DMIDA if configuring for a DataMyte 4000 Industrial
108           Digital Assistant. More information at <http://www.dmida.com/>.
109
110 config SH_EC3104
111         bool "EC3104"
112         help
113           Select EC3104 if configuring for a system with an Eclipse
114           International EC3104 chip, e.g. the Harris AD2000.
115
116 config SH_SATURN
117         bool "Saturn"
118         select CPU_SUBTYPE_SH7604
119         help
120           Select Saturn if configuring for a SEGA Saturn.
121
122 config SH_DREAMCAST
123         bool "Dreamcast"
124         select CPU_SUBTYPE_SH7091
125         help
126           Select Dreamcast if configuring for a SEGA Dreamcast.
127           More information at
128           <http://www.m17n.org/linux-sh/dreamcast/>.  There is a
129           Dreamcast project is at <http://linuxdc.sourceforge.net/>.
130
131 config SH_CAT68701
132         bool "CAT68701"
133
134 config SH_BIGSUR
135         bool "BigSur"
136
137 config SH_SH2000
138         bool "SH2000"
139         select CPU_SUBTYPE_SH7709
140         help
141           SH-2000 is a single-board computer based around SH7709A chip
142           intended for embedded applications.
143           It has an Ethernet interface (CS8900A), direct connected
144           Compact Flash socket, three serial ports and PC-104 bus.
145           More information at <http://sh2000.sh-linux.org>.
146
147 config SH_ADX
148         bool "ADX"
149
150 config SH_MPC1211
151         bool "Interface MPC1211"
152         help
153           CTP/PCI-SH02 is a CPU module computer that is produced
154           by Interface Corporation.
155           More information at <http://www.interface.co.jp>
156
157 config SH_SH03
158         bool "Interface CTP/PCI-SH03"
159         help
160           CTP/PCI-SH03 is a CPU module computer that is produced
161           by Interface Corporation.
162           More information at <http://www.interface.co.jp>
163
164 config SH_SECUREEDGE5410
165         bool "SecureEdge5410"
166         select CPU_SUBTYPE_SH7751R
167         help
168           Select SecureEdge5410 if configuring for a SnapGear SH board.
169           This includes both the OEM SecureEdge products as well as the
170           SME product line.
171
172 config SH_HS7751RVOIP
173         bool "HS7751RVOIP"
174         select CPU_SUBTYPE_SH7751R
175         help
176           Select HS7751RVOIP if configuring for a Renesas Technology
177           Sales VoIP board.
178
179 config SH_RTS7751R2D
180         bool "RTS7751R2D"
181         select CPU_SUBTYPE_SH7751R
182         help
183           Select RTS7751R2D if configuring for a Renesas Technology
184           Sales SH-Graphics board.
185
186 config SH_R7780RP
187         bool "R7780RP-1"
188         select CPU_SUBTYPE_SH7780
189         help
190           Select R7780RP-1 if configuring for a Renesas Solutions
191           HIGHLANDER board.
192
193 config SH_EDOSK7705
194         bool "EDOSK7705"
195         select CPU_SUBTYPE_SH7705
196
197 config SH_SH4202_MICRODEV
198         bool "SH4-202 MicroDev"
199         select CPU_SUBTYPE_SH4_202
200         help
201           Select SH4-202 MicroDev if configuring for a SuperH MicroDev board
202           with an SH4-202 CPU.
203
204 config SH_LANDISK
205         bool "LANDISK"
206         select CPU_SUBTYPE_SH7751R
207         help
208           I-O DATA DEVICE, INC. "LANDISK Series" support.
209
210 config SH_TITAN
211         bool "TITAN"
212         select CPU_SUBTYPE_SH7751R
213         help
214           Select Titan if you are configuring for a Nimble Microsystems
215           NetEngine NP51R.
216
217 config SH_UNKNOWN
218         bool "BareCPU"
219         help
220           "Bare CPU" aka "unknown" means an SH-based system which is not one
221           of the specific ones mentioned above, which means you need to enter
222           all sorts of stuff like CONFIG_MEMORY_START because the config
223           system doesn't already know what it is.  You get a machine vector
224           without any platform-specific code in it, so things like the RTC may
225           not work.
226
227           This option is for the early stages of porting to a new machine.
228
229 endchoice
230
231 source "arch/sh/mm/Kconfig"
232
233 config MEMORY_START
234         hex "Physical memory start address"
235         default "0x08000000"
236         ---help---
237           Computers built with Hitachi SuperH processors always
238           map the ROM starting at address zero.  But the processor
239           does not specify the range that RAM takes.
240
241           The physical memory (RAM) start address will be automatically
242           set to 08000000. Other platforms, such as the Solution Engine
243           boards typically map RAM at 0C000000.
244
245           Tweak this only when porting to a new machine which does not
246           already have a defconfig. Changing it from the known correct
247           value on any of the known systems will only lead to disaster.
248
249 config MEMORY_SIZE
250         hex "Physical memory size"
251         default "0x00400000"
252         help
253           This sets the default memory size assumed by your SH kernel. It can
254           be overridden as normal by the 'mem=' argument on the kernel command
255           line. If unsure, consult your board specifications or just leave it
256           as 0x00400000 which was the default value before this became
257           configurable.
258
259 config CF_ENABLER
260         bool "Compact Flash Enabler support"
261         depends on SH_ADX || SH_SOLUTION_ENGINE || SH_UNKNOWN || SH_CAT68701 || SH_SH03
262         ---help---
263           Compact Flash is a small, removable mass storage device introduced
264           in 1994 originally as a PCMCIA device.  If you say `Y' here, you
265           compile in support for Compact Flash devices directly connected to
266           a SuperH processor.  A Compact Flash FAQ is available at
267           <http://www.compactflash.org/faqs/faq.htm>.
268
269           If your board has "Directly Connected" CompactFlash at area 5 or 6,
270           you may want to enable this option.  Then, you can use CF as
271           primary IDE drive (only tested for SanDisk).
272
273           If in doubt, select 'N'.
274
275 choice
276         prompt "Compact Flash Connection Area"
277         depends on CF_ENABLER
278         default CF_AREA6
279
280 config CF_AREA5
281         bool "Area5"
282         help
283           If your board has "Directly Connected" CompactFlash, You should
284           select the area where your CF is connected to.
285
286           - "Area5" if CompactFlash is connected to Area 5 (0x14000000)
287           - "Area6" if it is connected to Area 6 (0x18000000)
288
289           "Area6" will work for most boards. For ADX, select "Area5".
290
291 config CF_AREA6
292         bool "Area6"
293
294 endchoice
295
296 config CF_BASE_ADDR
297         hex
298         depends on CF_ENABLER
299         default "0xb8000000" if CF_AREA6
300         default "0xb4000000" if CF_AREA5
301
302 menu "Processor features"
303
304 config CPU_LITTLE_ENDIAN
305         bool "Little Endian"
306         help
307           Some SuperH machines can be configured for either little or big
308           endian byte order. These modes require different kernels. Say Y if
309           your machine is little endian, N if it's a big endian machine.
310
311 # The SH7750 RTC module is disabled in the Dreamcast
312 config SH_RTC
313         bool
314         depends on !SH_DREAMCAST && !SH_SATURN && !SH_7300_SOLUTION_ENGINE && \
315                    !SH_73180_SOLUTION_ENGINE && !SH_LANDISK && \
316                    !SH_R7780RP
317         default y
318         help
319           Selecting this option will allow the Linux kernel to emulate
320           PC's RTC.
321
322           If unsure, say N.
323
324 config SH_FPU
325         bool "FPU support"
326         depends on !CPU_SH3
327         default y
328         help
329           Selecting this option will enable support for SH processors that
330           have FPU units (ie, SH77xx).
331
332           This option must be set in order to enable the FPU.
333
334 config SH_DSP
335         bool "DSP support"
336         depends on !CPU_SH4
337         default y
338         help
339           Selecting this option will enable support for SH processors that
340           have DSP units (ie, SH2-DSP and SH3-DSP). It is safe to say Y here
341           by default, as the existance of the DSP will be probed at runtime.
342
343           This option must be set in order to enable the DSP.
344
345 config SH_ADC
346         bool "ADC support"
347         depends on CPU_SH3
348         default y
349         help
350           Selecting this option will allow the Linux kernel to use SH3 on-chip
351           ADC module.
352
353           If unsure, say N.
354
355 config SH_STORE_QUEUES
356         bool "Support for Store Queues"
357         depends on CPU_SH4
358         help
359           Selecting this option will enable an in-kernel API for manipulating
360           the store queues integrated in the SH-4 processors.
361
362 config CPU_HAS_INTEVT
363         bool
364
365 config CPU_HAS_PINT_IRQ
366         bool
367
368 config CPU_HAS_INTC2_IRQ
369         bool
370
371 config CPU_HAS_SR_RB
372         bool "CPU has SR.RB"
373         depends on CPU_SH3 || CPU_SH4
374         default y
375         help
376           This will enable the use of SR.RB register bank usage. Processors
377           that are lacking this bit must have another method in place for
378           accomplishing what is taken care of by the banked registers.
379
380           See <file:Documentation/sh/register-banks.txt> for further
381           information on SR.RB and register banking in the kernel in general.
382
383 endmenu
384
385 menu "Timer support"
386
387 config SH_TMU
388         bool "TMU timer support"
389         default y
390         help
391           This enables the use of the TMU as the system timer.
392
393 endmenu
394
395 source "arch/sh/boards/renesas/hs7751rvoip/Kconfig"
396
397 source "arch/sh/boards/renesas/rts7751r2d/Kconfig"
398
399 config SH_PCLK_FREQ_BOOL
400         bool "Set default pclk frequency"
401         default y if !SH_RTC
402         default n
403
404 config SH_PCLK_FREQ
405         int "Peripheral clock frequency (in Hz)"
406         depends on SH_PCLK_FREQ_BOOL
407         default "50000000" if CPU_SUBTYPE_SH7750 || CPU_SUBTYPE_SH7780
408         default "60000000" if CPU_SUBTYPE_SH7751
409         default "33333333" if CPU_SUBTYPE_SH7300 || CPU_SUBTYPE_SH7770 || CPU_SUBTYPE_SH7760
410         default "27000000" if CPU_SUBTYPE_SH73180
411         default "66000000" if CPU_SUBTYPE_SH4_202
412         help
413           This option is used to specify the peripheral clock frequency.
414           This is necessary for determining the reference clock value on
415           platforms lacking an RTC.
416
417 menu "CPU Frequency scaling"
418
419 source "drivers/cpufreq/Kconfig"
420
421 config SH_CPU_FREQ
422         tristate "SuperH CPU Frequency driver"
423         depends on CPU_FREQ
424         select CPU_FREQ_TABLE
425         help
426           This adds the cpufreq driver for SuperH. At present, only
427           the SH-4 is supported.
428
429           For details, take a look at <file:Documentation/cpu-freq>.
430
431           If unsure, say N.
432
433 endmenu
434
435 source "arch/sh/drivers/dma/Kconfig"
436
437 source "arch/sh/cchips/Kconfig"
438
439 config HEARTBEAT
440         bool "Heartbeat LED"
441         depends on SH_MPC1211 || SH_SH03 || SH_CAT68701 || \
442                    SH_STB1_HARP || SH_STB1_OVERDRIVE || SH_BIGSUR || \
443                    SH_7751_SOLUTION_ENGINE || SH_7300_SOLUTION_ENGINE || \
444                    SH_73180_SOLUTION_ENGINE || SH_SOLUTION_ENGINE || \
445                    SH_RTS7751R2D || SH_SH4202_MICRODEV || SH_LANDISK
446         help
447           Use the power-on LED on your machine as a load meter.  The exact
448           behavior is platform-dependent, but normally the flash frequency is
449           a hyperbolic function of the 5-minute load average.
450
451 endmenu
452
453 config ISA_DMA_API
454         bool
455         depends on MPC1211
456         default y
457
458 menu "Kernel features"
459
460 config KEXEC
461         bool "kexec system call (EXPERIMENTAL)"
462         depends on EXPERIMENTAL
463         help
464           kexec is a system call that implements the ability to shutdown your
465           current kernel, and to start another kernel.  It is like a reboot
466           but it is indepedent of the system firmware.  And like a reboot
467           you can start any kernel with it, not just Linux.
468
469           The name comes from the similiarity to the exec system call.
470
471           It is an ongoing process to be certain the hardware in a machine
472           is properly shutdown, so do not be surprised if this code does not
473           initially work for you.  It may help to enable device hotplugging
474           support.  As of this writing the exact hardware interface is
475           strongly in flux, so no good recommendation can be made.
476
477 config PREEMPT
478         bool "Preemptible Kernel (EXPERIMENTAL)"
479         depends on EXPERIMENTAL
480
481 config SMP
482         bool "Symmetric multi-processing support"
483         ---help---
484           This enables support for systems with more than one CPU. If you have
485           a system with only one CPU, like most personal computers, say N. If
486           you have a system with more than one CPU, say Y.
487
488           If you say N here, the kernel will run on single and multiprocessor
489           machines, but will use only one CPU of a multiprocessor machine. If
490           you say Y here, the kernel will run on many, but not all,
491           singleprocessor machines. On a singleprocessor machine, the kernel
492           will run faster if you say N here.
493
494           People using multiprocessor machines who say Y here should also say
495           Y to "Enhanced Real Time Clock Support", below.
496
497           See also the <file:Documentation/smp.txt>,
498           <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO available
499           at <http://www.tldp.org/docs.html#howto>.
500
501           If you don't know what to do here, say N.
502
503 config NR_CPUS
504         int "Maximum number of CPUs (2-32)"
505         range 2 32
506         depends on SMP
507         default "2"
508         help
509           This allows you to specify the maximum number of CPUs which this
510           kernel will support.  The maximum supported value is 32 and the
511           minimum value which makes sense is 2.
512
513           This is purely to save memory - each supported CPU adds
514           approximately eight kilobytes to the kernel image.
515
516 config CPU_HAS_SR_RB
517         bool "CPU has SR.RB"
518         depends on CPU_SH3 || CPU_SH4
519         default y
520         help
521           This will enable the use of SR.RB register bank usage. Processors
522           that are lacking this bit must have another method in place for
523           accomplishing what is taken care of by the banked registers.
524
525           See <file:Documentation/sh/register-banks.txt> for further
526           information on SR.RB and register banking in the kernel in general.
527
528 endmenu
529
530 menu "Boot options"
531
532 config ZERO_PAGE_OFFSET
533         hex "Zero page offset"
534         default "0x00004000" if SH_MPC1211 || SH_SH03
535         default "0x00001000"
536         help
537           This sets the default offset of zero page.
538
539 config BOOT_LINK_OFFSET
540         hex "Link address offset for booting"
541         default "0x00800000"
542         help
543           This option allows you to set the link address offset of the zImage.
544           This can be useful if you are on a board which has a small amount of
545           memory.
546
547 config UBC_WAKEUP
548         bool "Wakeup UBC on startup"
549         help
550           Selecting this option will wakeup the User Break Controller (UBC) on
551           startup. Although the UBC is left in an awake state when the processor
552           comes up, some boot loaders misbehave by putting the UBC to sleep in a
553           power saving state, which causes issues with things like ptrace().
554
555           If unsure, say N.
556
557 config CMDLINE_BOOL
558         bool "Default bootloader kernel arguments"
559
560 config CMDLINE
561         string "Initial kernel command string"
562         depends on CMDLINE_BOOL
563         default "console=ttySC1,115200"
564
565 endmenu
566
567 menu "Bus options"
568
569 # Even on SuperH devices which don't have an ISA bus,
570 # this variable helps the PCMCIA modules handle
571 # IRQ requesting properly -- Greg Banks.
572 #
573 # Though we're generally not interested in it when
574 # we're not using PCMCIA, so we make it dependent on
575 # PCMCIA outright. -- PFM.
576 config ISA
577         bool
578         default y if PCMCIA
579         help
580           Find out whether you have ISA slots on your motherboard.  ISA is the
581           name of a bus system, i.e. the way the CPU talks to the other stuff
582           inside your box.  Other bus systems are PCI, EISA, MicroChannel
583           (MCA) or VESA.  ISA is an older system, now being displaced by PCI;
584           newer boards don't support it.  If you have ISA, say Y, otherwise N.
585
586 config EISA
587         bool
588         ---help---
589           The Extended Industry Standard Architecture (EISA) bus was
590           developed as an open alternative to the IBM MicroChannel bus.
591
592           The EISA bus provided some of the features of the IBM MicroChannel
593           bus while maintaining backward compatibility with cards made for
594           the older ISA bus.  The EISA bus saw limited use between 1988 and
595           1995 when it was made obsolete by the PCI bus.
596
597           Say Y here if you are building a kernel for an EISA-based machine.
598
599           Otherwise, say N.
600
601 config MCA
602         bool
603         help
604           MicroChannel Architecture is found in some IBM PS/2 machines and
605           laptops.  It is a bus system similar to PCI or ISA. See
606           <file:Documentation/mca.txt> (and especially the web page given
607           there) before attempting to build an MCA bus kernel.
608
609 config SBUS
610         bool
611
612 config SUPERHYWAY
613         tristate "SuperHyway Bus support"
614         depends on CPU_SUBTYPE_SH4_202
615
616 source "arch/sh/drivers/pci/Kconfig"
617
618 source "drivers/pci/Kconfig"
619
620 source "drivers/pcmcia/Kconfig"
621
622 source "drivers/pci/hotplug/Kconfig"
623
624 endmenu
625
626 menu "Executable file formats"
627
628 source "fs/Kconfig.binfmt"
629
630 endmenu
631
632 source "net/Kconfig"
633
634 source "drivers/Kconfig"
635
636 source "fs/Kconfig"
637
638 source "arch/sh/oprofile/Kconfig"
639
640 source "arch/sh/Kconfig.debug"
641
642 source "security/Kconfig"
643
644 source "crypto/Kconfig"
645
646 source "lib/Kconfig"