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_COUNTERS
20 select HAVE_KERNEL_GZIP
22 select GENERIC_ATOMIC64
24 The SuperH is a RISC processor targeted for use in embedded systems
25 and consumer electronics; it was also used in the Sega Dreamcast
26 gaming console. The SuperH port has a home page at
27 <http://www.linux-sh.org/>.
32 select HAVE_KRETPROBES
33 select HAVE_FUNCTION_TRACER
34 select HAVE_FTRACE_MCOUNT_RECORD
35 select HAVE_DYNAMIC_FTRACE
36 select HAVE_FUNCTION_TRACE_MCOUNT_TEST
37 select HAVE_FTRACE_SYSCALLS
38 select HAVE_FUNCTION_GRAPH_TRACER
40 select ARCH_HIBERNATION_POSSIBLE if MMU
43 def_bool ARCH = "sh64"
47 default "arch/sh/configs/shx3_defconfig" if SUPERH32
48 default "arch/sh/configs/cayman_defconfig" if SUPERH64
50 config RWSEM_GENERIC_SPINLOCK
53 config RWSEM_XCHGADD_ALGORITHM
58 depends on BUG && SUPERH32
64 config GENERIC_FIND_NEXT_BIT
67 config GENERIC_HWEIGHT
70 config GENERIC_HARDIRQS
73 config GENERIC_HARDIRQS_NO__DO_IRQ
76 config GENERIC_IRQ_PROBE
85 config GENERIC_CALIBRATE_DELAY
94 config GENERIC_CLOCKEVENTS
97 config GENERIC_CLOCKEVENTS_BROADCAST
100 config GENERIC_CMOS_UPDATE
102 depends on SH_SH03 || SH_DREAMCAST
104 config GENERIC_LOCKBREAK
106 depends on SMP && PREEMPT
108 config SYS_SUPPORTS_PM
112 config ARCH_SUSPEND_POSSIBLE
115 config ARCH_HIBERNATION_POSSIBLE
118 config SYS_SUPPORTS_APM_EMULATION
120 select ARCH_SUSPEND_POSSIBLE
122 config SYS_SUPPORTS_SMP
125 config SYS_SUPPORTS_NUMA
128 config SYS_SUPPORTS_PCI
131 config SYS_SUPPORTS_CMT
134 config SYS_SUPPORTS_MTU2
137 config SYS_SUPPORTS_TMU
140 config STACKTRACE_SUPPORT
143 config LOCKDEP_SUPPORT
146 config HAVE_LATENCYTOP_SUPPORT
150 config ARCH_HAS_ILOG2_U32
153 config ARCH_HAS_ILOG2_U64
156 config ARCH_NO_VIRT_TO_BUS
159 config ARCH_HAS_DEFAULT_IDLE
162 config ARCH_HAS_CPU_IDLE_WAIT
168 source "init/Kconfig"
170 source "kernel/Kconfig.freezer"
186 select CPU_HAS_INTEVT
188 select SYS_SUPPORTS_TMU
192 select CPU_HAS_INTEVT
194 select CPU_HAS_FPU if !CPU_SH4AL_DSP
195 select SYS_SUPPORTS_TMU
209 select SYS_SUPPORTS_TMU
219 select ARCH_SUSPEND_POSSIBLE
224 prompt "Processor sub-type selection"
230 # SH-2 Processor Support
232 config CPU_SUBTYPE_SH7619
233 bool "Support SH7619 processor"
235 select SYS_SUPPORTS_CMT
237 # SH-2A Processor Support
239 config CPU_SUBTYPE_SH7201
240 bool "Support SH7201 processor"
243 select SYS_SUPPORTS_MTU2
245 config CPU_SUBTYPE_SH7203
246 bool "Support SH7203 processor"
249 select SYS_SUPPORTS_CMT
250 select SYS_SUPPORTS_MTU2
252 config CPU_SUBTYPE_SH7206
253 bool "Support SH7206 processor"
255 select SYS_SUPPORTS_CMT
256 select SYS_SUPPORTS_MTU2
258 config CPU_SUBTYPE_SH7263
259 bool "Support SH7263 processor"
262 select SYS_SUPPORTS_CMT
263 select SYS_SUPPORTS_MTU2
265 config CPU_SUBTYPE_MXG
266 bool "Support MX-G processor"
268 select SYS_SUPPORTS_MTU2
270 Select MX-G if running on an R8A03022BG part.
272 # SH-3 Processor Support
274 config CPU_SUBTYPE_SH7705
275 bool "Support SH7705 processor"
278 config CPU_SUBTYPE_SH7706
279 bool "Support SH7706 processor"
282 Select SH7706 if you have a 133 Mhz SH-3 HD6417706 CPU.
284 config CPU_SUBTYPE_SH7707
285 bool "Support SH7707 processor"
288 Select SH7707 if you have a 60 Mhz SH-3 HD6417707 CPU.
290 config CPU_SUBTYPE_SH7708
291 bool "Support SH7708 processor"
294 Select SH7708 if you have a 60 Mhz SH-3 HD6417708S or
295 if you have a 100 Mhz SH-3 HD6417708R CPU.
297 config CPU_SUBTYPE_SH7709
298 bool "Support SH7709 processor"
301 Select SH7709 if you have a 80 Mhz SH-3 HD6417709 CPU.
303 config CPU_SUBTYPE_SH7710
304 bool "Support SH7710 processor"
308 Select SH7710 if you have a SH3-DSP SH7710 CPU.
310 config CPU_SUBTYPE_SH7712
311 bool "Support SH7712 processor"
315 Select SH7712 if you have a SH3-DSP SH7712 CPU.
317 config CPU_SUBTYPE_SH7720
318 bool "Support SH7720 processor"
321 select SYS_SUPPORTS_CMT
323 Select SH7720 if you have a SH3-DSP SH7720 CPU.
325 config CPU_SUBTYPE_SH7721
326 bool "Support SH7721 processor"
329 select SYS_SUPPORTS_CMT
331 Select SH7721 if you have a SH3-DSP SH7721 CPU.
333 # SH-4 Processor Support
335 config CPU_SUBTYPE_SH7750
336 bool "Support SH7750 processor"
339 Select SH7750 if you have a 200 Mhz SH-4 HD6417750 CPU.
341 config CPU_SUBTYPE_SH7091
342 bool "Support SH7091 processor"
345 Select SH7091 if you have an SH-4 based Sega device (such as
346 the Dreamcast, Naomi, and Naomi 2).
348 config CPU_SUBTYPE_SH7750R
349 bool "Support SH7750R processor"
352 config CPU_SUBTYPE_SH7750S
353 bool "Support SH7750S processor"
356 config CPU_SUBTYPE_SH7751
357 bool "Support SH7751 processor"
360 Select SH7751 if you have a 166 Mhz SH-4 HD6417751 CPU,
361 or if you have a HD6417751R CPU.
363 config CPU_SUBTYPE_SH7751R
364 bool "Support SH7751R processor"
367 config CPU_SUBTYPE_SH7760
368 bool "Support SH7760 processor"
371 config CPU_SUBTYPE_SH4_202
372 bool "Support SH4-202 processor"
375 # SH-4A Processor Support
377 config CPU_SUBTYPE_SH7723
378 bool "Support SH7723 processor"
382 select ARCH_SPARSEMEM_ENABLE
383 select SYS_SUPPORTS_CMT
385 Select SH7723 if you have an SH-MobileR2 CPU.
387 config CPU_SUBTYPE_SH7724
388 bool "Support SH7724 processor"
392 select ARCH_SPARSEMEM_ENABLE
393 select SYS_SUPPORTS_CMT
395 Select SH7724 if you have an SH-MobileR2R CPU.
397 config CPU_SUBTYPE_SH7763
398 bool "Support SH7763 processor"
401 Select SH7763 if you have a SH4A SH7763(R5S77631) CPU.
403 config CPU_SUBTYPE_SH7770
404 bool "Support SH7770 processor"
407 config CPU_SUBTYPE_SH7780
408 bool "Support SH7780 processor"
411 config CPU_SUBTYPE_SH7785
412 bool "Support SH7785 processor"
415 select ARCH_SPARSEMEM_ENABLE
416 select SYS_SUPPORTS_NUMA
418 config CPU_SUBTYPE_SH7786
419 bool "Support SH7786 processor"
422 select CPU_HAS_PTEAEX
423 select ARCH_SPARSEMEM_ENABLE
424 select SYS_SUPPORTS_NUMA
425 select SYS_SUPPORTS_SMP
426 select GENERIC_CLOCKEVENTS_BROADCAST if SMP
428 config CPU_SUBTYPE_SHX3
429 bool "Support SH-X3 processor"
432 select ARCH_SPARSEMEM_ENABLE
433 select SYS_SUPPORTS_NUMA
434 select SYS_SUPPORTS_SMP
435 select GENERIC_CLOCKEVENTS_BROADCAST if SMP
437 # SH4AL-DSP Processor Support
439 config CPU_SUBTYPE_SH7343
440 bool "Support SH7343 processor"
443 select SYS_SUPPORTS_CMT
445 config CPU_SUBTYPE_SH7722
446 bool "Support SH7722 processor"
450 select ARCH_SPARSEMEM_ENABLE
451 select SYS_SUPPORTS_NUMA
452 select SYS_SUPPORTS_CMT
454 config CPU_SUBTYPE_SH7366
455 bool "Support SH7366 processor"
459 select ARCH_SPARSEMEM_ENABLE
460 select SYS_SUPPORTS_NUMA
461 select SYS_SUPPORTS_CMT
470 prompt "Processor sub-type selection"
472 # SH-5 Processor Support
474 config CPU_SUBTYPE_SH5_101
475 bool "Support SH5-101 processor"
478 config CPU_SUBTYPE_SH5_103
479 bool "Support SH5-103 processor"
486 source "arch/sh/mm/Kconfig"
488 source "arch/sh/Kconfig.cpu"
490 source "arch/sh/boards/Kconfig"
492 menu "Timer and clock configuration"
495 bool "TMU timer driver"
496 depends on SYS_SUPPORTS_TMU
499 This enables the build of the TMU timer driver.
502 bool "CMT timer driver"
503 depends on SYS_SUPPORTS_CMT
506 This enables build of the CMT timer driver.
509 bool "MTU2 timer driver"
510 depends on SYS_SUPPORTS_MTU2
513 This enables build of the MTU2 timer driver.
516 int "Peripheral clock frequency (in Hz)"
517 default "27000000" if CPU_SUBTYPE_SH7343
518 default "31250000" if CPU_SUBTYPE_SH7619
519 default "32000000" if CPU_SUBTYPE_SH7722
520 default "33333333" if CPU_SUBTYPE_SH7770 || CPU_SUBTYPE_SH7723 || \
521 CPU_SUBTYPE_SH7760 || CPU_SUBTYPE_SH7705 || \
522 CPU_SUBTYPE_SH7203 || CPU_SUBTYPE_SH7206 || \
523 CPU_SUBTYPE_SH7263 || CPU_SUBTYPE_MXG || \
524 CPU_SUBTYPE_SH7786 || CPU_SUBTYPE_SH7724
525 default "60000000" if CPU_SUBTYPE_SH7751 || CPU_SUBTYPE_SH7751R
526 default "66000000" if CPU_SUBTYPE_SH4_202
529 This option is used to specify the peripheral clock frequency.
530 This is necessary for determining the reference clock value on
531 platforms lacking an RTC.
536 config SH_CLK_CPG_LEGACY
537 depends on SH_CLK_CPG
538 def_bool y if !CPU_SUBTYPE_SH7785 && !ARCH_SHMOBILE
541 int "CPU Mode Pin Setting"
543 default 6 if CPU_SUBTYPE_SH7206
544 default 5 if CPU_SUBTYPE_SH7619
547 MD2 - MD0 pin setting.
549 source "kernel/time/Kconfig"
553 menu "CPU Frequency scaling"
555 source "drivers/cpufreq/Kconfig"
558 tristate "SuperH CPU Frequency driver"
560 select CPU_FREQ_TABLE
562 This adds the cpufreq driver for SuperH. Any CPU that supports
563 clock rate rounding through the clock framework can use this
564 driver. While it will make the kernel slightly larger, this is
565 harmless for CPUs that don't support rate rounding. The driver
566 will also generate a notice in the boot log before disabling
567 itself if the CPU in question is not capable of rate rounding.
569 For details, take a look at <file:Documentation/cpu-freq>.
575 source "arch/sh/drivers/Kconfig"
579 menu "Kernel features"
581 source kernel/Kconfig.hz
584 bool "kexec system call (EXPERIMENTAL)"
585 depends on SUPERH32 && EXPERIMENTAL && MMU
587 kexec is a system call that implements the ability to shutdown your
588 current kernel, and to start another kernel. It is like a reboot
589 but it is independent of the system firmware. And like a reboot
590 you can start any kernel with it, not just Linux.
592 The name comes from the similarity to the exec system call.
594 It is an ongoing process to be certain the hardware in a machine
595 is properly shutdown, so do not be surprised if this code does not
596 initially work for you. It may help to enable device hotplugging
597 support. As of this writing the exact hardware interface is
598 strongly in flux, so no good recommendation can be made.
601 bool "kernel crash dumps (EXPERIMENTAL)"
602 depends on SUPERH32 && EXPERIMENTAL
604 Generate crash dump after being started by kexec.
605 This should be normally only set in special crash dump kernels
606 which are loaded in the main kernel with kexec-tools into
607 a specially reserved region and then later executed after
608 a crash by kdump/kexec. The crash dump kernel must be compiled
609 to a memory address not used by the main kernel using
612 For more details see Documentation/kdump/kdump.txt
615 bool "kexec jump (EXPERIMENTAL)"
616 depends on SUPERH32 && KEXEC && HIBERNATION && EXPERIMENTAL
618 Jump between original kernel and kexeced kernel and invoke
622 bool "Enable seccomp to safely compute untrusted bytecode"
625 This kernel feature is useful for number crunching applications
626 that may need to compute untrusted bytecode during their
627 execution. By using pipes or other transports made available to
628 the process as file descriptors supporting the read/write
629 syscalls, it's possible to isolate those applications in
630 their own address space using seccomp. Once seccomp is
631 enabled via prctl, it cannot be disabled and the task is only
632 allowed to execute a few safe syscalls defined by each seccomp
638 bool "Symmetric multi-processing support"
639 depends on SYS_SUPPORTS_SMP
640 select USE_GENERIC_SMP_HELPERS
642 This enables support for systems with more than one CPU. If you have
643 a system with only one CPU, like most personal computers, say N. If
644 you have a system with more than one CPU, say Y.
646 If you say N here, the kernel will run on single and multiprocessor
647 machines, but will use only one CPU of a multiprocessor machine. If
648 you say Y here, the kernel will run on many, but not all,
649 singleprocessor machines. On a singleprocessor machine, the kernel
650 will run faster if you say N here.
652 People using multiprocessor machines who say Y here should also say
653 Y to "Enhanced Real Time Clock Support", below.
655 See also <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO
656 available at <http://www.tldp.org/docs.html#howto>.
658 If you don't know what to do here, say N.
661 int "Maximum number of CPUs (2-32)"
664 default "4" if CPU_SUBTYPE_SHX3
667 This allows you to specify the maximum number of CPUs which this
668 kernel will support. The maximum supported value is 32 and the
669 minimum value which makes sense is 2.
671 This is purely to save memory - each supported CPU adds
672 approximately eight kilobytes to the kernel image.
674 source "kernel/Kconfig.preempt"
678 depends on !SMP && SUPERH32
680 This enables support for gUSA (general UserSpace Atomicity).
681 This is the default implementation for both UP and non-ll/sc
682 CPUs, and is used by the libc, amongst others.
684 For additional information, design information can be found
685 in <http://lc.linux.or.jp/lc2002/papers/niibe0919p.pdf>.
687 This should only be disabled for special cases where alternate
688 atomicity implementations exist.
691 bool "Implement atomic operations by roll-back (gRB) (EXPERIMENTAL)"
692 depends on GUSA && CPU_SH3 || (CPU_SH4 && !CPU_SH4A)
694 Enabling this option will allow the kernel to implement some
695 atomic operations using a software implementation of load-locked/
696 store-conditional (LLSC). On machines which do not have hardware
697 LLSC, this should be more efficient than the other alternative of
698 disabling interrupts around the atomic sequence.
701 bool "Support sparse irq numbering"
702 depends on EXPERIMENTAL
704 This enables support for sparse irqs. This is useful in general
705 as most CPUs have a fairly sparse array of IRQ vectors, which
706 the irq_desc then maps directly on to. Systems with a high
707 number of off-chip IRQs will want to treat this as
708 experimental until they have been independently verified.
710 If you don't know what to do here, say N.
716 config ZERO_PAGE_OFFSET
718 default "0x00010000" if PAGE_SIZE_64KB || SH_RTS7751R2D || \
719 SH_7751_SOLUTION_ENGINE
720 default "0x00004000" if PAGE_SIZE_16KB || SH_SH03
721 default "0x00002000" if PAGE_SIZE_8KB
724 This sets the default offset of zero page.
726 config BOOT_LINK_OFFSET
728 default "0x00210000" if SH_SHMIN
729 default "0x00400000" if SH_CAYMAN
730 default "0x00810000" if SH_7780_SOLUTION_ENGINE
731 default "0x009e0000" if SH_TITAN
732 default "0x01800000" if SH_SDK7780
733 default "0x02000000" if SH_EDOSK7760
736 This option allows you to set the link address offset of the zImage.
737 This can be useful if you are on a board which has a small amount of
742 default "0x00001000" if PAGE_SIZE_4KB
743 default "0x00002000" if PAGE_SIZE_8KB
744 default "0x00004000" if PAGE_SIZE_16KB
745 default "0x00010000" if PAGE_SIZE_64KB
749 bool "Wakeup UBC on startup"
750 depends on CPU_SH4 && !CPU_SH4A
752 Selecting this option will wakeup the User Break Controller (UBC) on
753 startup. Although the UBC is left in an awake state when the processor
754 comes up, some boot loaders misbehave by putting the UBC to sleep in a
755 power saving state, which causes issues with things like ptrace().
760 bool "Default bootloader kernel arguments"
763 string "Initial kernel command string"
764 depends on CMDLINE_BOOL
765 default "console=ttySC1,115200"
772 tristate "SuperHyway Bus support"
773 depends on CPU_SUBTYPE_SH4_202
776 bool "Maple Bus support"
777 depends on SH_DREAMCAST
779 The Maple Bus is SEGA's serial communication bus for peripherals
780 on the Dreamcast. Without this bus support you won't be able to
781 get your Dreamcast keyboard etc to work, so most users
782 probably want to say 'Y' here, unless you are only using the
783 Dreamcast with a serial line terminal or a remote network
786 source "arch/sh/drivers/pci/Kconfig"
788 source "drivers/pci/pcie/Kconfig"
790 source "drivers/pci/Kconfig"
792 source "drivers/pcmcia/Kconfig"
794 source "drivers/pci/hotplug/Kconfig"
798 menu "Executable file formats"
800 source "fs/Kconfig.binfmt"
804 menu "Power management options (EXPERIMENTAL)"
805 depends on EXPERIMENTAL
807 source "kernel/power/Kconfig"
809 source "drivers/cpuidle/Kconfig"
815 source "drivers/Kconfig"
819 source "arch/sh/Kconfig.debug"
821 source "security/Kconfig"
823 source "crypto/Kconfig"