2 # For a description of the syntax of this configuration file,
3 # see Documentation/kbuild/kconfig-language.txt.
6 mainmenu "Linux/SuperH Kernel Configuration"
15 select HAVE_GENERIC_DMA_COHERENT
16 select HAVE_IOREMAP_PROT if MMU
17 select HAVE_ARCH_TRACEHOOK
18 select HAVE_DMA_API_DEBUG
19 select HAVE_PERF_EVENTS
20 select HAVE_KERNEL_GZIP
21 select HAVE_KERNEL_BZIP2
22 select HAVE_KERNEL_LZMA
23 select HAVE_SYSCALL_TRACEPOINTS
25 select GENERIC_ATOMIC64
27 The SuperH is a RISC processor targeted for use in embedded systems
28 and consumer electronics; it was also used in the Sega Dreamcast
29 gaming console. The SuperH port has a home page at
30 <http://www.linux-sh.org/>.
35 select HAVE_KRETPROBES
36 select HAVE_FUNCTION_TRACER
37 select HAVE_FTRACE_MCOUNT_RECORD
38 select HAVE_DYNAMIC_FTRACE
39 select HAVE_FUNCTION_TRACE_MCOUNT_TEST
40 select HAVE_FUNCTION_GRAPH_TRACER
42 select ARCH_HIBERNATION_POSSIBLE if MMU
45 def_bool ARCH = "sh64"
49 default "arch/sh/configs/shx3_defconfig" if SUPERH32
50 default "arch/sh/configs/cayman_defconfig" if SUPERH64
52 config RWSEM_GENERIC_SPINLOCK
55 config RWSEM_XCHGADD_ALGORITHM
60 depends on BUG && SUPERH32
66 config GENERIC_FIND_NEXT_BIT
69 config GENERIC_HWEIGHT
72 config GENERIC_HARDIRQS
75 config GENERIC_HARDIRQS_NO__DO_IRQ
78 config GENERIC_IRQ_PROBE
87 config GENERIC_CALIBRATE_DELAY
96 config GENERIC_CLOCKEVENTS
99 config GENERIC_CLOCKEVENTS_BROADCAST
102 config GENERIC_CMOS_UPDATE
104 depends on SH_SH03 || SH_DREAMCAST
106 config GENERIC_LOCKBREAK
108 depends on SMP && PREEMPT
110 config SYS_SUPPORTS_PM
114 config ARCH_SUSPEND_POSSIBLE
117 config ARCH_HIBERNATION_POSSIBLE
120 config SYS_SUPPORTS_APM_EMULATION
122 select ARCH_SUSPEND_POSSIBLE
124 config SYS_SUPPORTS_SMP
127 config SYS_SUPPORTS_NUMA
130 config SYS_SUPPORTS_PCI
133 config SYS_SUPPORTS_CMT
136 config SYS_SUPPORTS_MTU2
139 config SYS_SUPPORTS_TMU
142 config STACKTRACE_SUPPORT
145 config LOCKDEP_SUPPORT
148 config HAVE_LATENCYTOP_SUPPORT
152 config ARCH_HAS_ILOG2_U32
155 config ARCH_HAS_ILOG2_U64
158 config ARCH_NO_VIRT_TO_BUS
161 config ARCH_HAS_DEFAULT_IDLE
164 config ARCH_HAS_CPU_IDLE_WAIT
170 source "init/Kconfig"
172 source "kernel/Kconfig.freezer"
188 select CPU_HAS_INTEVT
190 select SYS_SUPPORTS_TMU
194 select CPU_HAS_INTEVT
196 select CPU_HAS_FPU if !CPU_SH4AL_DSP
197 select SYS_SUPPORTS_TMU
211 select SYS_SUPPORTS_TMU
221 select ARCH_SUSPEND_POSSIBLE
228 prompt "Processor sub-type selection"
234 # SH-2 Processor Support
236 config CPU_SUBTYPE_SH7619
237 bool "Support SH7619 processor"
239 select SYS_SUPPORTS_CMT
241 # SH-2A Processor Support
243 config CPU_SUBTYPE_SH7201
244 bool "Support SH7201 processor"
247 select SYS_SUPPORTS_MTU2
249 config CPU_SUBTYPE_SH7203
250 bool "Support SH7203 processor"
253 select SYS_SUPPORTS_CMT
254 select SYS_SUPPORTS_MTU2
256 config CPU_SUBTYPE_SH7206
257 bool "Support SH7206 processor"
259 select SYS_SUPPORTS_CMT
260 select SYS_SUPPORTS_MTU2
262 config CPU_SUBTYPE_SH7263
263 bool "Support SH7263 processor"
266 select SYS_SUPPORTS_CMT
267 select SYS_SUPPORTS_MTU2
269 config CPU_SUBTYPE_MXG
270 bool "Support MX-G processor"
272 select SYS_SUPPORTS_MTU2
274 Select MX-G if running on an R8A03022BG part.
276 # SH-3 Processor Support
278 config CPU_SUBTYPE_SH7705
279 bool "Support SH7705 processor"
282 config CPU_SUBTYPE_SH7706
283 bool "Support SH7706 processor"
286 Select SH7706 if you have a 133 Mhz SH-3 HD6417706 CPU.
288 config CPU_SUBTYPE_SH7707
289 bool "Support SH7707 processor"
292 Select SH7707 if you have a 60 Mhz SH-3 HD6417707 CPU.
294 config CPU_SUBTYPE_SH7708
295 bool "Support SH7708 processor"
298 Select SH7708 if you have a 60 Mhz SH-3 HD6417708S or
299 if you have a 100 Mhz SH-3 HD6417708R CPU.
301 config CPU_SUBTYPE_SH7709
302 bool "Support SH7709 processor"
305 Select SH7709 if you have a 80 Mhz SH-3 HD6417709 CPU.
307 config CPU_SUBTYPE_SH7710
308 bool "Support SH7710 processor"
312 Select SH7710 if you have a SH3-DSP SH7710 CPU.
314 config CPU_SUBTYPE_SH7712
315 bool "Support SH7712 processor"
319 Select SH7712 if you have a SH3-DSP SH7712 CPU.
321 config CPU_SUBTYPE_SH7720
322 bool "Support SH7720 processor"
325 select SYS_SUPPORTS_CMT
327 Select SH7720 if you have a SH3-DSP SH7720 CPU.
329 config CPU_SUBTYPE_SH7721
330 bool "Support SH7721 processor"
333 select SYS_SUPPORTS_CMT
335 Select SH7721 if you have a SH3-DSP SH7721 CPU.
337 # SH-4 Processor Support
339 config CPU_SUBTYPE_SH7750
340 bool "Support SH7750 processor"
343 Select SH7750 if you have a 200 Mhz SH-4 HD6417750 CPU.
345 config CPU_SUBTYPE_SH7091
346 bool "Support SH7091 processor"
349 Select SH7091 if you have an SH-4 based Sega device (such as
350 the Dreamcast, Naomi, and Naomi 2).
352 config CPU_SUBTYPE_SH7750R
353 bool "Support SH7750R processor"
356 config CPU_SUBTYPE_SH7750S
357 bool "Support SH7750S processor"
360 config CPU_SUBTYPE_SH7751
361 bool "Support SH7751 processor"
364 Select SH7751 if you have a 166 Mhz SH-4 HD6417751 CPU,
365 or if you have a HD6417751R CPU.
367 config CPU_SUBTYPE_SH7751R
368 bool "Support SH7751R processor"
371 config CPU_SUBTYPE_SH7760
372 bool "Support SH7760 processor"
375 config CPU_SUBTYPE_SH4_202
376 bool "Support SH4-202 processor"
379 # SH-4A Processor Support
381 config CPU_SUBTYPE_SH7723
382 bool "Support SH7723 processor"
386 select ARCH_SPARSEMEM_ENABLE
387 select SYS_SUPPORTS_CMT
389 Select SH7723 if you have an SH-MobileR2 CPU.
391 config CPU_SUBTYPE_SH7724
392 bool "Support SH7724 processor"
396 select ARCH_SPARSEMEM_ENABLE
397 select SYS_SUPPORTS_CMT
399 Select SH7724 if you have an SH-MobileR2R CPU.
401 config CPU_SUBTYPE_SH7757
402 bool "Support SH7757 processor"
406 Select SH7757 if you have a SH4A SH7757 CPU.
408 config CPU_SUBTYPE_SH7763
409 bool "Support SH7763 processor"
412 Select SH7763 if you have a SH4A SH7763(R5S77631) CPU.
414 config CPU_SUBTYPE_SH7770
415 bool "Support SH7770 processor"
418 config CPU_SUBTYPE_SH7780
419 bool "Support SH7780 processor"
422 config CPU_SUBTYPE_SH7785
423 bool "Support SH7785 processor"
426 select ARCH_SPARSEMEM_ENABLE
427 select SYS_SUPPORTS_NUMA
429 config CPU_SUBTYPE_SH7786
430 bool "Support SH7786 processor"
433 select CPU_HAS_PTEAEX
434 select ARCH_SPARSEMEM_ENABLE
435 select SYS_SUPPORTS_NUMA
436 select SYS_SUPPORTS_SMP
437 select GENERIC_CLOCKEVENTS_BROADCAST if SMP
439 config CPU_SUBTYPE_SHX3
440 bool "Support SH-X3 processor"
443 select ARCH_SPARSEMEM_ENABLE
444 select SYS_SUPPORTS_NUMA
445 select SYS_SUPPORTS_SMP
446 select GENERIC_CLOCKEVENTS_BROADCAST if SMP
448 # SH4AL-DSP Processor Support
450 config CPU_SUBTYPE_SH7343
451 bool "Support SH7343 processor"
454 select SYS_SUPPORTS_CMT
456 config CPU_SUBTYPE_SH7722
457 bool "Support SH7722 processor"
461 select ARCH_SPARSEMEM_ENABLE
462 select SYS_SUPPORTS_NUMA
463 select SYS_SUPPORTS_CMT
465 config CPU_SUBTYPE_SH7366
466 bool "Support SH7366 processor"
470 select ARCH_SPARSEMEM_ENABLE
471 select SYS_SUPPORTS_NUMA
472 select SYS_SUPPORTS_CMT
481 prompt "Processor sub-type selection"
483 # SH-5 Processor Support
485 config CPU_SUBTYPE_SH5_101
486 bool "Support SH5-101 processor"
489 config CPU_SUBTYPE_SH5_103
490 bool "Support SH5-103 processor"
497 source "arch/sh/mm/Kconfig"
499 source "arch/sh/Kconfig.cpu"
501 source "arch/sh/boards/Kconfig"
503 menu "Timer and clock configuration"
506 bool "TMU timer driver"
507 depends on SYS_SUPPORTS_TMU
510 This enables the build of the TMU timer driver.
513 bool "CMT timer driver"
514 depends on SYS_SUPPORTS_CMT
517 This enables build of the CMT timer driver.
520 bool "MTU2 timer driver"
521 depends on SYS_SUPPORTS_MTU2
524 This enables build of the MTU2 timer driver.
527 int "Peripheral clock frequency (in Hz)"
528 default "27000000" if CPU_SUBTYPE_SH7343
529 default "31250000" if CPU_SUBTYPE_SH7619
530 default "32000000" if CPU_SUBTYPE_SH7722
531 default "33333333" if CPU_SUBTYPE_SH7770 || CPU_SUBTYPE_SH7723 || \
532 CPU_SUBTYPE_SH7760 || CPU_SUBTYPE_SH7705 || \
533 CPU_SUBTYPE_SH7203 || CPU_SUBTYPE_SH7206 || \
534 CPU_SUBTYPE_SH7263 || CPU_SUBTYPE_MXG || \
535 CPU_SUBTYPE_SH7786 || CPU_SUBTYPE_SH7724
536 default "60000000" if CPU_SUBTYPE_SH7751 || CPU_SUBTYPE_SH7751R
537 default "66000000" if CPU_SUBTYPE_SH4_202
540 This option is used to specify the peripheral clock frequency.
541 This is necessary for determining the reference clock value on
542 platforms lacking an RTC.
547 config SH_CLK_CPG_LEGACY
548 depends on SH_CLK_CPG
549 def_bool y if !CPU_SUBTYPE_SH7785 && !ARCH_SHMOBILE
552 int "CPU Mode Pin Setting"
554 default 6 if CPU_SUBTYPE_SH7206
555 default 5 if CPU_SUBTYPE_SH7619
558 MD2 - MD0 pin setting.
560 source "kernel/time/Kconfig"
564 menu "CPU Frequency scaling"
566 source "drivers/cpufreq/Kconfig"
569 tristate "SuperH CPU Frequency driver"
571 select CPU_FREQ_TABLE
573 This adds the cpufreq driver for SuperH. Any CPU that supports
574 clock rate rounding through the clock framework can use this
575 driver. While it will make the kernel slightly larger, this is
576 harmless for CPUs that don't support rate rounding. The driver
577 will also generate a notice in the boot log before disabling
578 itself if the CPU in question is not capable of rate rounding.
580 For details, take a look at <file:Documentation/cpu-freq>.
586 source "arch/sh/drivers/Kconfig"
590 menu "Kernel features"
592 source kernel/Kconfig.hz
595 bool "kexec system call (EXPERIMENTAL)"
596 depends on SUPERH32 && EXPERIMENTAL && MMU
598 kexec is a system call that implements the ability to shutdown your
599 current kernel, and to start another kernel. It is like a reboot
600 but it is independent of the system firmware. And like a reboot
601 you can start any kernel with it, not just Linux.
603 The name comes from the similarity to the exec system call.
605 It is an ongoing process to be certain the hardware in a machine
606 is properly shutdown, so do not be surprised if this code does not
607 initially work for you. It may help to enable device hotplugging
608 support. As of this writing the exact hardware interface is
609 strongly in flux, so no good recommendation can be made.
612 bool "kernel crash dumps (EXPERIMENTAL)"
613 depends on SUPERH32 && EXPERIMENTAL
615 Generate crash dump after being started by kexec.
616 This should be normally only set in special crash dump kernels
617 which are loaded in the main kernel with kexec-tools into
618 a specially reserved region and then later executed after
619 a crash by kdump/kexec. The crash dump kernel must be compiled
620 to a memory address not used by the main kernel using
623 For more details see Documentation/kdump/kdump.txt
626 bool "kexec jump (EXPERIMENTAL)"
627 depends on SUPERH32 && KEXEC && HIBERNATION && EXPERIMENTAL
629 Jump between original kernel and kexeced kernel and invoke
633 bool "Enable seccomp to safely compute untrusted bytecode"
636 This kernel feature is useful for number crunching applications
637 that may need to compute untrusted bytecode during their
638 execution. By using pipes or other transports made available to
639 the process as file descriptors supporting the read/write
640 syscalls, it's possible to isolate those applications in
641 their own address space using seccomp. Once seccomp is
642 enabled via prctl, it cannot be disabled and the task is only
643 allowed to execute a few safe syscalls defined by each seccomp
649 bool "Symmetric multi-processing support"
650 depends on SYS_SUPPORTS_SMP
651 select USE_GENERIC_SMP_HELPERS
653 This enables support for systems with more than one CPU. If you have
654 a system with only one CPU, like most personal computers, say N. If
655 you have a system with more than one CPU, say Y.
657 If you say N here, the kernel will run on single and multiprocessor
658 machines, but will use only one CPU of a multiprocessor machine. If
659 you say Y here, the kernel will run on many, but not all,
660 singleprocessor machines. On a singleprocessor machine, the kernel
661 will run faster if you say N here.
663 People using multiprocessor machines who say Y here should also say
664 Y to "Enhanced Real Time Clock Support", below.
666 See also <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO
667 available at <http://www.tldp.org/docs.html#howto>.
669 If you don't know what to do here, say N.
672 int "Maximum number of CPUs (2-32)"
675 default "4" if CPU_SUBTYPE_SHX3
678 This allows you to specify the maximum number of CPUs which this
679 kernel will support. The maximum supported value is 32 and the
680 minimum value which makes sense is 2.
682 This is purely to save memory - each supported CPU adds
683 approximately eight kilobytes to the kernel image.
685 source "kernel/Kconfig.preempt"
689 depends on !SMP && SUPERH32
691 This enables support for gUSA (general UserSpace Atomicity).
692 This is the default implementation for both UP and non-ll/sc
693 CPUs, and is used by the libc, amongst others.
695 For additional information, design information can be found
696 in <http://lc.linux.or.jp/lc2002/papers/niibe0919p.pdf>.
698 This should only be disabled for special cases where alternate
699 atomicity implementations exist.
702 bool "Implement atomic operations by roll-back (gRB) (EXPERIMENTAL)"
703 depends on GUSA && CPU_SH3 || (CPU_SH4 && !CPU_SH4A)
705 Enabling this option will allow the kernel to implement some
706 atomic operations using a software implementation of load-locked/
707 store-conditional (LLSC). On machines which do not have hardware
708 LLSC, this should be more efficient than the other alternative of
709 disabling interrupts around the atomic sequence.
712 bool "Support sparse irq numbering"
713 depends on EXPERIMENTAL
715 This enables support for sparse irqs. This is useful in general
716 as most CPUs have a fairly sparse array of IRQ vectors, which
717 the irq_desc then maps directly on to. Systems with a high
718 number of off-chip IRQs will want to treat this as
719 experimental until they have been independently verified.
721 If you don't know what to do here, say N.
727 config ZERO_PAGE_OFFSET
729 default "0x00010000" if PAGE_SIZE_64KB || SH_RTS7751R2D || \
730 SH_7751_SOLUTION_ENGINE
731 default "0x00004000" if PAGE_SIZE_16KB || SH_SH03
732 default "0x00002000" if PAGE_SIZE_8KB
735 This sets the default offset of zero page.
737 config BOOT_LINK_OFFSET
739 default "0x00210000" if SH_SHMIN
740 default "0x00400000" if SH_CAYMAN
741 default "0x00810000" if SH_7780_SOLUTION_ENGINE
742 default "0x009e0000" if SH_TITAN
743 default "0x01800000" if SH_SDK7780
744 default "0x02000000" if SH_EDOSK7760
747 This option allows you to set the link address offset of the zImage.
748 This can be useful if you are on a board which has a small amount of
753 default "0x00001000" if PAGE_SIZE_4KB
754 default "0x00002000" if PAGE_SIZE_8KB
755 default "0x00004000" if PAGE_SIZE_16KB
756 default "0x00010000" if PAGE_SIZE_64KB
760 bool "Wakeup UBC on startup"
761 depends on CPU_SH4 && !CPU_SH4A
763 Selecting this option will wakeup the User Break Controller (UBC) on
764 startup. Although the UBC is left in an awake state when the processor
765 comes up, some boot loaders misbehave by putting the UBC to sleep in a
766 power saving state, which causes issues with things like ptrace().
771 prompt "Kernel command line"
773 default CMDLINE_OVERWRITE
775 Setting this option allows the kernel command line arguments
778 config CMDLINE_OVERWRITE
779 bool "Overwrite bootloader kernel arguments"
781 Given string will overwrite any arguments passed in by
784 config CMDLINE_EXTEND
785 bool "Extend bootloader kernel arguments"
787 Given string will be concatenated with arguments passed in
793 string "Kernel command line arguments string"
794 depends on CMDLINE_OVERWRITE || CMDLINE_EXTEND
795 default "console=ttySC1,115200"
802 tristate "SuperHyway Bus support"
803 depends on CPU_SUBTYPE_SH4_202
806 bool "Maple Bus support"
807 depends on SH_DREAMCAST
809 The Maple Bus is SEGA's serial communication bus for peripherals
810 on the Dreamcast. Without this bus support you won't be able to
811 get your Dreamcast keyboard etc to work, so most users
812 probably want to say 'Y' here, unless you are only using the
813 Dreamcast with a serial line terminal or a remote network
816 source "arch/sh/drivers/pci/Kconfig"
818 source "drivers/pci/pcie/Kconfig"
820 source "drivers/pci/Kconfig"
822 source "drivers/pcmcia/Kconfig"
824 source "drivers/pci/hotplug/Kconfig"
828 menu "Executable file formats"
830 source "fs/Kconfig.binfmt"
834 menu "Power management options (EXPERIMENTAL)"
835 depends on EXPERIMENTAL
837 source "kernel/power/Kconfig"
839 source "drivers/cpuidle/Kconfig"
845 source "drivers/Kconfig"
849 source "arch/sh/Kconfig.debug"
851 source "security/Kconfig"
853 source "crypto/Kconfig"