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