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