2 # For a description of the syntax of this configuration file,
3 # see Documentation/kbuild/kconfig-language.txt.
6 mainmenu "Linux/SuperH Kernel Configuration"
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 select HAVE_PERF_COUNTERS
20 select GENERIC_ATOMIC64
22 The SuperH is a RISC processor targeted for use in embedded systems
23 and consumer electronics; it was also used in the Sega Dreamcast
24 gaming console. The SuperH port has a home page at
25 <http://www.linux-sh.org/>.
30 select HAVE_KRETPROBES
31 select HAVE_FUNCTION_TRACER
32 select HAVE_FTRACE_MCOUNT_RECORD
33 select HAVE_DYNAMIC_FTRACE
34 select HAVE_FUNCTION_TRACE_MCOUNT_TEST
35 select HAVE_FTRACE_SYSCALLS
36 select HAVE_FUNCTION_GRAPH_TRACER
38 select ARCH_HIBERNATION_POSSIBLE if MMU
41 def_bool ARCH = "sh64"
45 default "arch/sh/configs/shx3_defconfig" if SUPERH32
46 default "arch/sh/configs/cayman_defconfig" if SUPERH64
48 config RWSEM_GENERIC_SPINLOCK
51 config RWSEM_XCHGADD_ALGORITHM
56 depends on BUG && SUPERH32
62 config GENERIC_FIND_NEXT_BIT
65 config GENERIC_HWEIGHT
68 config GENERIC_HARDIRQS
71 config GENERIC_HARDIRQS_NO__DO_IRQ
74 config GENERIC_IRQ_PROBE
83 config GENERIC_CALIBRATE_DELAY
92 config GENERIC_CLOCKEVENTS
95 config GENERIC_CLOCKEVENTS_BROADCAST
98 config GENERIC_CMOS_UPDATE
100 depends on SH_SH03 || SH_DREAMCAST
102 config GENERIC_LOCKBREAK
104 depends on SMP && PREEMPT
106 config SYS_SUPPORTS_PM
110 config ARCH_SUSPEND_POSSIBLE
113 config ARCH_HIBERNATION_POSSIBLE
116 config SYS_SUPPORTS_APM_EMULATION
118 select ARCH_SUSPEND_POSSIBLE
120 config SYS_SUPPORTS_SMP
123 config SYS_SUPPORTS_NUMA
126 config SYS_SUPPORTS_PCI
129 config SYS_SUPPORTS_CMT
132 config SYS_SUPPORTS_MTU2
135 config SYS_SUPPORTS_TMU
138 config STACKTRACE_SUPPORT
141 config LOCKDEP_SUPPORT
144 config HAVE_LATENCYTOP_SUPPORT
148 config ARCH_HAS_ILOG2_U32
151 config ARCH_HAS_ILOG2_U64
154 config ARCH_NO_VIRT_TO_BUS
157 config ARCH_HAS_DEFAULT_IDLE
160 config ARCH_HAS_CPU_IDLE_WAIT
166 source "init/Kconfig"
168 source "kernel/Kconfig.freezer"
184 select CPU_HAS_INTEVT
186 select SYS_SUPPORTS_TMU
190 select CPU_HAS_INTEVT
192 select CPU_HAS_FPU if !CPU_SH4AL_DSP
193 select SYS_SUPPORTS_TMU
207 select SYS_SUPPORTS_TMU
217 select ARCH_SUSPEND_POSSIBLE
222 prompt "Processor sub-type selection"
228 # SH-2 Processor Support
230 config CPU_SUBTYPE_SH7619
231 bool "Support SH7619 processor"
233 select SYS_SUPPORTS_CMT
235 # SH-2A Processor Support
237 config CPU_SUBTYPE_SH7201
238 bool "Support SH7201 processor"
241 select SYS_SUPPORTS_MTU2
243 config CPU_SUBTYPE_SH7203
244 bool "Support SH7203 processor"
247 select SYS_SUPPORTS_CMT
248 select SYS_SUPPORTS_MTU2
250 config CPU_SUBTYPE_SH7206
251 bool "Support SH7206 processor"
253 select SYS_SUPPORTS_CMT
254 select SYS_SUPPORTS_MTU2
256 config CPU_SUBTYPE_SH7263
257 bool "Support SH7263 processor"
260 select SYS_SUPPORTS_CMT
261 select SYS_SUPPORTS_MTU2
263 config CPU_SUBTYPE_MXG
264 bool "Support MX-G processor"
266 select SYS_SUPPORTS_MTU2
268 Select MX-G if running on an R8A03022BG part.
270 # SH-3 Processor Support
272 config CPU_SUBTYPE_SH7705
273 bool "Support SH7705 processor"
276 config CPU_SUBTYPE_SH7706
277 bool "Support SH7706 processor"
280 Select SH7706 if you have a 133 Mhz SH-3 HD6417706 CPU.
282 config CPU_SUBTYPE_SH7707
283 bool "Support SH7707 processor"
286 Select SH7707 if you have a 60 Mhz SH-3 HD6417707 CPU.
288 config CPU_SUBTYPE_SH7708
289 bool "Support SH7708 processor"
292 Select SH7708 if you have a 60 Mhz SH-3 HD6417708S or
293 if you have a 100 Mhz SH-3 HD6417708R CPU.
295 config CPU_SUBTYPE_SH7709
296 bool "Support SH7709 processor"
299 Select SH7709 if you have a 80 Mhz SH-3 HD6417709 CPU.
301 config CPU_SUBTYPE_SH7710
302 bool "Support SH7710 processor"
306 Select SH7710 if you have a SH3-DSP SH7710 CPU.
308 config CPU_SUBTYPE_SH7712
309 bool "Support SH7712 processor"
313 Select SH7712 if you have a SH3-DSP SH7712 CPU.
315 config CPU_SUBTYPE_SH7720
316 bool "Support SH7720 processor"
319 select SYS_SUPPORTS_CMT
321 Select SH7720 if you have a SH3-DSP SH7720 CPU.
323 config CPU_SUBTYPE_SH7721
324 bool "Support SH7721 processor"
327 select SYS_SUPPORTS_CMT
329 Select SH7721 if you have a SH3-DSP SH7721 CPU.
331 # SH-4 Processor Support
333 config CPU_SUBTYPE_SH7750
334 bool "Support SH7750 processor"
337 Select SH7750 if you have a 200 Mhz SH-4 HD6417750 CPU.
339 config CPU_SUBTYPE_SH7091
340 bool "Support SH7091 processor"
343 Select SH7091 if you have an SH-4 based Sega device (such as
344 the Dreamcast, Naomi, and Naomi 2).
346 config CPU_SUBTYPE_SH7750R
347 bool "Support SH7750R processor"
350 config CPU_SUBTYPE_SH7750S
351 bool "Support SH7750S processor"
354 config CPU_SUBTYPE_SH7751
355 bool "Support SH7751 processor"
358 Select SH7751 if you have a 166 Mhz SH-4 HD6417751 CPU,
359 or if you have a HD6417751R CPU.
361 config CPU_SUBTYPE_SH7751R
362 bool "Support SH7751R processor"
365 config CPU_SUBTYPE_SH7760
366 bool "Support SH7760 processor"
369 config CPU_SUBTYPE_SH4_202
370 bool "Support SH4-202 processor"
373 # SH-4A Processor Support
375 config CPU_SUBTYPE_SH7723
376 bool "Support SH7723 processor"
380 select ARCH_SPARSEMEM_ENABLE
381 select SYS_SUPPORTS_CMT
383 Select SH7723 if you have an SH-MobileR2 CPU.
385 config CPU_SUBTYPE_SH7724
386 bool "Support SH7724 processor"
390 select ARCH_SPARSEMEM_ENABLE
391 select SYS_SUPPORTS_CMT
393 Select SH7724 if you have an SH-MobileR2R CPU.
395 config CPU_SUBTYPE_SH7763
396 bool "Support SH7763 processor"
399 Select SH7763 if you have a SH4A SH7763(R5S77631) CPU.
401 config CPU_SUBTYPE_SH7770
402 bool "Support SH7770 processor"
405 config CPU_SUBTYPE_SH7780
406 bool "Support SH7780 processor"
409 config CPU_SUBTYPE_SH7785
410 bool "Support SH7785 processor"
413 select ARCH_SPARSEMEM_ENABLE
414 select SYS_SUPPORTS_NUMA
416 config CPU_SUBTYPE_SH7786
417 bool "Support SH7786 processor"
420 select CPU_HAS_PTEAEX
421 select ARCH_SPARSEMEM_ENABLE
422 select SYS_SUPPORTS_NUMA
423 select SYS_SUPPORTS_SMP
424 select GENERIC_CLOCKEVENTS_BROADCAST if SMP
426 config CPU_SUBTYPE_SHX3
427 bool "Support SH-X3 processor"
430 select ARCH_SPARSEMEM_ENABLE
431 select SYS_SUPPORTS_NUMA
432 select SYS_SUPPORTS_SMP
433 select GENERIC_CLOCKEVENTS_BROADCAST if SMP
435 # SH4AL-DSP Processor Support
437 config CPU_SUBTYPE_SH7343
438 bool "Support SH7343 processor"
441 select SYS_SUPPORTS_CMT
443 config CPU_SUBTYPE_SH7722
444 bool "Support SH7722 processor"
448 select ARCH_SPARSEMEM_ENABLE
449 select SYS_SUPPORTS_NUMA
450 select SYS_SUPPORTS_CMT
452 config CPU_SUBTYPE_SH7366
453 bool "Support SH7366 processor"
457 select ARCH_SPARSEMEM_ENABLE
458 select SYS_SUPPORTS_NUMA
459 select SYS_SUPPORTS_CMT
468 prompt "Processor sub-type selection"
470 # SH-5 Processor Support
472 config CPU_SUBTYPE_SH5_101
473 bool "Support SH5-101 processor"
476 config CPU_SUBTYPE_SH5_103
477 bool "Support SH5-103 processor"
484 source "arch/sh/mm/Kconfig"
486 source "arch/sh/Kconfig.cpu"
488 source "arch/sh/boards/Kconfig"
490 menu "Timer and clock configuration"
493 bool "TMU timer driver"
494 depends on SYS_SUPPORTS_TMU
497 This enables the build of the TMU timer driver.
500 bool "CMT timer driver"
501 depends on SYS_SUPPORTS_CMT
504 This enables build of the CMT timer driver.
507 bool "MTU2 timer driver"
508 depends on SYS_SUPPORTS_MTU2
511 This enables build of the MTU2 timer driver.
514 int "Peripheral clock frequency (in Hz)"
515 default "27000000" if CPU_SUBTYPE_SH7343
516 default "31250000" if CPU_SUBTYPE_SH7619
517 default "32000000" if CPU_SUBTYPE_SH7722
518 default "33333333" if CPU_SUBTYPE_SH7770 || CPU_SUBTYPE_SH7723 || \
519 CPU_SUBTYPE_SH7760 || CPU_SUBTYPE_SH7705 || \
520 CPU_SUBTYPE_SH7203 || CPU_SUBTYPE_SH7206 || \
521 CPU_SUBTYPE_SH7263 || CPU_SUBTYPE_MXG || \
522 CPU_SUBTYPE_SH7786 || CPU_SUBTYPE_SH7724
523 default "60000000" if CPU_SUBTYPE_SH7751 || CPU_SUBTYPE_SH7751R
524 default "66000000" if CPU_SUBTYPE_SH4_202
527 This option is used to specify the peripheral clock frequency.
528 This is necessary for determining the reference clock value on
529 platforms lacking an RTC.
534 config SH_CLK_CPG_LEGACY
535 depends on SH_CLK_CPG
536 def_bool y if !CPU_SUBTYPE_SH7785 && !ARCH_SHMOBILE
539 int "CPU Mode Pin Setting"
541 default 6 if CPU_SUBTYPE_SH7206
542 default 5 if CPU_SUBTYPE_SH7619
545 MD2 - MD0 pin setting.
547 source "kernel/time/Kconfig"
551 menu "CPU Frequency scaling"
553 source "drivers/cpufreq/Kconfig"
556 tristate "SuperH CPU Frequency driver"
558 select CPU_FREQ_TABLE
560 This adds the cpufreq driver for SuperH. Any CPU that supports
561 clock rate rounding through the clock framework can use this
562 driver. While it will make the kernel slightly larger, this is
563 harmless for CPUs that don't support rate rounding. The driver
564 will also generate a notice in the boot log before disabling
565 itself if the CPU in question is not capable of rate rounding.
567 For details, take a look at <file:Documentation/cpu-freq>.
573 source "arch/sh/drivers/Kconfig"
577 menu "Kernel features"
579 source kernel/Kconfig.hz
582 bool "kexec system call (EXPERIMENTAL)"
583 depends on SUPERH32 && EXPERIMENTAL && MMU
585 kexec is a system call that implements the ability to shutdown your
586 current kernel, and to start another kernel. It is like a reboot
587 but it is independent of the system firmware. And like a reboot
588 you can start any kernel with it, not just Linux.
590 The name comes from the similarity to the exec system call.
592 It is an ongoing process to be certain the hardware in a machine
593 is properly shutdown, so do not be surprised if this code does not
594 initially work for you. It may help to enable device hotplugging
595 support. As of this writing the exact hardware interface is
596 strongly in flux, so no good recommendation can be made.
599 bool "kernel crash dumps (EXPERIMENTAL)"
600 depends on SUPERH32 && EXPERIMENTAL
602 Generate crash dump after being started by kexec.
603 This should be normally only set in special crash dump kernels
604 which are loaded in the main kernel with kexec-tools into
605 a specially reserved region and then later executed after
606 a crash by kdump/kexec. The crash dump kernel must be compiled
607 to a memory address not used by the main kernel using
610 For more details see Documentation/kdump/kdump.txt
613 bool "kexec jump (EXPERIMENTAL)"
614 depends on SUPERH32 && KEXEC && HIBERNATION && EXPERIMENTAL
616 Jump between original kernel and kexeced kernel and invoke
620 bool "Enable seccomp to safely compute untrusted bytecode"
623 This kernel feature is useful for number crunching applications
624 that may need to compute untrusted bytecode during their
625 execution. By using pipes or other transports made available to
626 the process as file descriptors supporting the read/write
627 syscalls, it's possible to isolate those applications in
628 their own address space using seccomp. Once seccomp is
629 enabled via prctl, it cannot be disabled and the task is only
630 allowed to execute a few safe syscalls defined by each seccomp
636 bool "Symmetric multi-processing support"
637 depends on SYS_SUPPORTS_SMP
638 select USE_GENERIC_SMP_HELPERS
640 This enables support for systems with more than one CPU. If you have
641 a system with only one CPU, like most personal computers, say N. If
642 you have a system with more than one CPU, say Y.
644 If you say N here, the kernel will run on single and multiprocessor
645 machines, but will use only one CPU of a multiprocessor machine. If
646 you say Y here, the kernel will run on many, but not all,
647 singleprocessor machines. On a singleprocessor machine, the kernel
648 will run faster if you say N here.
650 People using multiprocessor machines who say Y here should also say
651 Y to "Enhanced Real Time Clock Support", below.
653 See also <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO
654 available at <http://www.tldp.org/docs.html#howto>.
656 If you don't know what to do here, say N.
659 int "Maximum number of CPUs (2-32)"
662 default "4" if CPU_SUBTYPE_SHX3
665 This allows you to specify the maximum number of CPUs which this
666 kernel will support. The maximum supported value is 32 and the
667 minimum value which makes sense is 2.
669 This is purely to save memory - each supported CPU adds
670 approximately eight kilobytes to the kernel image.
672 source "kernel/Kconfig.preempt"
676 depends on !SMP && SUPERH32
678 This enables support for gUSA (general UserSpace Atomicity).
679 This is the default implementation for both UP and non-ll/sc
680 CPUs, and is used by the libc, amongst others.
682 For additional information, design information can be found
683 in <http://lc.linux.or.jp/lc2002/papers/niibe0919p.pdf>.
685 This should only be disabled for special cases where alternate
686 atomicity implementations exist.
689 bool "Implement atomic operations by roll-back (gRB) (EXPERIMENTAL)"
690 depends on GUSA && CPU_SH3 || (CPU_SH4 && !CPU_SH4A)
692 Enabling this option will allow the kernel to implement some
693 atomic operations using a software implementation of load-locked/
694 store-conditional (LLSC). On machines which do not have hardware
695 LLSC, this should be more efficient than the other alternative of
696 disabling interrupts around the atomic sequence.
699 bool "Support sparse irq numbering"
700 depends on EXPERIMENTAL
702 This enables support for sparse irqs. This is useful in general
703 as most CPUs have a fairly sparse array of IRQ vectors, which
704 the irq_desc then maps directly on to. Systems with a high
705 number of off-chip IRQs will want to treat this as
706 experimental until they have been independently verified.
708 If you don't know what to do here, say N.
714 config ZERO_PAGE_OFFSET
716 default "0x00010000" if PAGE_SIZE_64KB || SH_RTS7751R2D || \
717 SH_7751_SOLUTION_ENGINE
718 default "0x00004000" if PAGE_SIZE_16KB || SH_SH03
719 default "0x00002000" if PAGE_SIZE_8KB
722 This sets the default offset of zero page.
724 config BOOT_LINK_OFFSET
726 default "0x00210000" if SH_SHMIN
727 default "0x00400000" if SH_CAYMAN
728 default "0x00810000" if SH_7780_SOLUTION_ENGINE
729 default "0x009e0000" if SH_TITAN
730 default "0x01800000" if SH_SDK7780
731 default "0x02000000" if SH_EDOSK7760
734 This option allows you to set the link address offset of the zImage.
735 This can be useful if you are on a board which has a small amount of
740 default "0x00001000" if PAGE_SIZE_4KB
741 default "0x00002000" if PAGE_SIZE_8KB
742 default "0x00004000" if PAGE_SIZE_16KB
743 default "0x00010000" if PAGE_SIZE_64KB
747 bool "Wakeup UBC on startup"
748 depends on CPU_SH4 && !CPU_SH4A
750 Selecting this option will wakeup the User Break Controller (UBC) on
751 startup. Although the UBC is left in an awake state when the processor
752 comes up, some boot loaders misbehave by putting the UBC to sleep in a
753 power saving state, which causes issues with things like ptrace().
758 bool "Default bootloader kernel arguments"
761 string "Initial kernel command string"
762 depends on CMDLINE_BOOL
763 default "console=ttySC1,115200"
770 tristate "SuperHyway Bus support"
771 depends on CPU_SUBTYPE_SH4_202
774 bool "Maple Bus support"
775 depends on SH_DREAMCAST
777 The Maple Bus is SEGA's serial communication bus for peripherals
778 on the Dreamcast. Without this bus support you won't be able to
779 get your Dreamcast keyboard etc to work, so most users
780 probably want to say 'Y' here, unless you are only using the
781 Dreamcast with a serial line terminal or a remote network
784 source "arch/sh/drivers/pci/Kconfig"
786 source "drivers/pci/pcie/Kconfig"
788 source "drivers/pci/Kconfig"
790 source "drivers/pcmcia/Kconfig"
792 source "drivers/pci/hotplug/Kconfig"
796 menu "Executable file formats"
798 source "fs/Kconfig.binfmt"
802 menu "Power management options (EXPERIMENTAL)"
803 depends on EXPERIMENTAL
805 source "kernel/power/Kconfig"
807 source "drivers/cpuidle/Kconfig"
813 source "drivers/Kconfig"
817 source "arch/sh/Kconfig.debug"
819 source "security/Kconfig"
821 source "crypto/Kconfig"