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
36 select ARCH_HIBERNATION_POSSIBLE if MMU
39 def_bool ARCH = "sh64"
43 default "arch/sh/configs/shx3_defconfig" if SUPERH32
44 default "arch/sh/configs/cayman_defconfig" if SUPERH64
46 config RWSEM_GENERIC_SPINLOCK
49 config RWSEM_XCHGADD_ALGORITHM
54 depends on BUG && SUPERH32
60 config GENERIC_FIND_NEXT_BIT
63 config GENERIC_HWEIGHT
66 config GENERIC_HARDIRQS
69 config GENERIC_HARDIRQS_NO__DO_IRQ
72 config GENERIC_IRQ_PROBE
81 config GENERIC_CALIBRATE_DELAY
90 config GENERIC_CLOCKEVENTS
93 config GENERIC_CLOCKEVENTS_BROADCAST
96 config GENERIC_CMOS_UPDATE
98 depends on SH_SH03 || SH_DREAMCAST
100 config GENERIC_LOCKBREAK
102 depends on SMP && PREEMPT
104 config SYS_SUPPORTS_PM
108 config ARCH_SUSPEND_POSSIBLE
111 config ARCH_HIBERNATION_POSSIBLE
114 config SYS_SUPPORTS_APM_EMULATION
116 select ARCH_SUSPEND_POSSIBLE
118 config SYS_SUPPORTS_SMP
121 config SYS_SUPPORTS_NUMA
124 config SYS_SUPPORTS_PCI
127 config SYS_SUPPORTS_CMT
130 config SYS_SUPPORTS_MTU2
133 config SYS_SUPPORTS_TMU
136 config STACKTRACE_SUPPORT
139 config LOCKDEP_SUPPORT
142 config HAVE_LATENCYTOP_SUPPORT
146 config ARCH_HAS_ILOG2_U32
149 config ARCH_HAS_ILOG2_U64
152 config ARCH_NO_VIRT_TO_BUS
155 config ARCH_HAS_DEFAULT_IDLE
158 config ARCH_HAS_CPU_IDLE_WAIT
164 source "init/Kconfig"
166 source "kernel/Kconfig.freezer"
182 select CPU_HAS_INTEVT
184 select SYS_SUPPORTS_TMU
188 select CPU_HAS_INTEVT
190 select CPU_HAS_FPU if !CPU_SH4AL_DSP
191 select SYS_SUPPORTS_TMU
205 select SYS_SUPPORTS_TMU
215 select ARCH_SUSPEND_POSSIBLE
220 prompt "Processor sub-type selection"
226 # SH-2 Processor Support
228 config CPU_SUBTYPE_SH7619
229 bool "Support SH7619 processor"
231 select SYS_SUPPORTS_CMT
233 # SH-2A Processor Support
235 config CPU_SUBTYPE_SH7201
236 bool "Support SH7201 processor"
239 select SYS_SUPPORTS_MTU2
241 config CPU_SUBTYPE_SH7203
242 bool "Support SH7203 processor"
245 select SYS_SUPPORTS_CMT
246 select SYS_SUPPORTS_MTU2
248 config CPU_SUBTYPE_SH7206
249 bool "Support SH7206 processor"
251 select SYS_SUPPORTS_CMT
252 select SYS_SUPPORTS_MTU2
254 config CPU_SUBTYPE_SH7263
255 bool "Support SH7263 processor"
258 select SYS_SUPPORTS_CMT
259 select SYS_SUPPORTS_MTU2
261 config CPU_SUBTYPE_MXG
262 bool "Support MX-G processor"
264 select SYS_SUPPORTS_MTU2
266 Select MX-G if running on an R8A03022BG part.
268 # SH-3 Processor Support
270 config CPU_SUBTYPE_SH7705
271 bool "Support SH7705 processor"
274 config CPU_SUBTYPE_SH7706
275 bool "Support SH7706 processor"
278 Select SH7706 if you have a 133 Mhz SH-3 HD6417706 CPU.
280 config CPU_SUBTYPE_SH7707
281 bool "Support SH7707 processor"
284 Select SH7707 if you have a 60 Mhz SH-3 HD6417707 CPU.
286 config CPU_SUBTYPE_SH7708
287 bool "Support SH7708 processor"
290 Select SH7708 if you have a 60 Mhz SH-3 HD6417708S or
291 if you have a 100 Mhz SH-3 HD6417708R CPU.
293 config CPU_SUBTYPE_SH7709
294 bool "Support SH7709 processor"
297 Select SH7709 if you have a 80 Mhz SH-3 HD6417709 CPU.
299 config CPU_SUBTYPE_SH7710
300 bool "Support SH7710 processor"
304 Select SH7710 if you have a SH3-DSP SH7710 CPU.
306 config CPU_SUBTYPE_SH7712
307 bool "Support SH7712 processor"
311 Select SH7712 if you have a SH3-DSP SH7712 CPU.
313 config CPU_SUBTYPE_SH7720
314 bool "Support SH7720 processor"
317 select SYS_SUPPORTS_CMT
319 Select SH7720 if you have a SH3-DSP SH7720 CPU.
321 config CPU_SUBTYPE_SH7721
322 bool "Support SH7721 processor"
325 select SYS_SUPPORTS_CMT
327 Select SH7721 if you have a SH3-DSP SH7721 CPU.
329 # SH-4 Processor Support
331 config CPU_SUBTYPE_SH7750
332 bool "Support SH7750 processor"
335 Select SH7750 if you have a 200 Mhz SH-4 HD6417750 CPU.
337 config CPU_SUBTYPE_SH7091
338 bool "Support SH7091 processor"
341 Select SH7091 if you have an SH-4 based Sega device (such as
342 the Dreamcast, Naomi, and Naomi 2).
344 config CPU_SUBTYPE_SH7750R
345 bool "Support SH7750R processor"
348 config CPU_SUBTYPE_SH7750S
349 bool "Support SH7750S processor"
352 config CPU_SUBTYPE_SH7751
353 bool "Support SH7751 processor"
356 Select SH7751 if you have a 166 Mhz SH-4 HD6417751 CPU,
357 or if you have a HD6417751R CPU.
359 config CPU_SUBTYPE_SH7751R
360 bool "Support SH7751R processor"
363 config CPU_SUBTYPE_SH7760
364 bool "Support SH7760 processor"
367 config CPU_SUBTYPE_SH4_202
368 bool "Support SH4-202 processor"
371 # SH-4A Processor Support
373 config CPU_SUBTYPE_SH7723
374 bool "Support SH7723 processor"
378 select ARCH_SPARSEMEM_ENABLE
379 select SYS_SUPPORTS_CMT
381 Select SH7723 if you have an SH-MobileR2 CPU.
383 config CPU_SUBTYPE_SH7724
384 bool "Support SH7724 processor"
388 select ARCH_SPARSEMEM_ENABLE
389 select SYS_SUPPORTS_CMT
391 Select SH7724 if you have an SH-MobileR2R CPU.
393 config CPU_SUBTYPE_SH7763
394 bool "Support SH7763 processor"
397 Select SH7763 if you have a SH4A SH7763(R5S77631) CPU.
399 config CPU_SUBTYPE_SH7770
400 bool "Support SH7770 processor"
403 config CPU_SUBTYPE_SH7780
404 bool "Support SH7780 processor"
407 config CPU_SUBTYPE_SH7785
408 bool "Support SH7785 processor"
411 select ARCH_SPARSEMEM_ENABLE
412 select SYS_SUPPORTS_NUMA
414 config CPU_SUBTYPE_SH7786
415 bool "Support SH7786 processor"
418 select CPU_HAS_PTEAEX
419 select ARCH_SPARSEMEM_ENABLE
420 select SYS_SUPPORTS_NUMA
421 select SYS_SUPPORTS_SMP
422 select GENERIC_CLOCKEVENTS_BROADCAST if SMP
424 config CPU_SUBTYPE_SHX3
425 bool "Support SH-X3 processor"
428 select ARCH_SPARSEMEM_ENABLE
429 select SYS_SUPPORTS_NUMA
430 select SYS_SUPPORTS_SMP
431 select GENERIC_CLOCKEVENTS_BROADCAST if SMP
433 # SH4AL-DSP Processor Support
435 config CPU_SUBTYPE_SH7343
436 bool "Support SH7343 processor"
439 select SYS_SUPPORTS_CMT
441 config CPU_SUBTYPE_SH7722
442 bool "Support SH7722 processor"
446 select ARCH_SPARSEMEM_ENABLE
447 select SYS_SUPPORTS_NUMA
448 select SYS_SUPPORTS_CMT
450 config CPU_SUBTYPE_SH7366
451 bool "Support SH7366 processor"
455 select ARCH_SPARSEMEM_ENABLE
456 select SYS_SUPPORTS_NUMA
457 select SYS_SUPPORTS_CMT
466 prompt "Processor sub-type selection"
468 # SH-5 Processor Support
470 config CPU_SUBTYPE_SH5_101
471 bool "Support SH5-101 processor"
474 config CPU_SUBTYPE_SH5_103
475 bool "Support SH5-103 processor"
482 source "arch/sh/mm/Kconfig"
484 source "arch/sh/Kconfig.cpu"
486 source "arch/sh/boards/Kconfig"
488 menu "Timer and clock configuration"
491 bool "TMU timer driver"
492 depends on SYS_SUPPORTS_TMU
495 This enables the build of the TMU timer driver.
498 bool "CMT timer driver"
499 depends on SYS_SUPPORTS_CMT
502 This enables build of the CMT timer driver.
505 bool "MTU2 timer driver"
506 depends on SYS_SUPPORTS_MTU2
509 This enables build of the MTU2 timer driver.
512 int "Peripheral clock frequency (in Hz)"
513 default "27000000" if CPU_SUBTYPE_SH7343
514 default "31250000" if CPU_SUBTYPE_SH7619
515 default "32000000" if CPU_SUBTYPE_SH7722
516 default "33333333" if CPU_SUBTYPE_SH7770 || CPU_SUBTYPE_SH7723 || \
517 CPU_SUBTYPE_SH7760 || CPU_SUBTYPE_SH7705 || \
518 CPU_SUBTYPE_SH7203 || CPU_SUBTYPE_SH7206 || \
519 CPU_SUBTYPE_SH7263 || CPU_SUBTYPE_MXG || \
520 CPU_SUBTYPE_SH7786 || CPU_SUBTYPE_SH7724
521 default "60000000" if CPU_SUBTYPE_SH7751 || CPU_SUBTYPE_SH7751R
522 default "66000000" if CPU_SUBTYPE_SH4_202
525 This option is used to specify the peripheral clock frequency.
526 This is necessary for determining the reference clock value on
527 platforms lacking an RTC.
532 config SH_CLK_CPG_LEGACY
533 depends on SH_CLK_CPG
534 def_bool y if !CPU_SUBTYPE_SH7785 && !ARCH_SHMOBILE
537 int "CPU Mode Pin Setting"
539 default 6 if CPU_SUBTYPE_SH7206
540 default 5 if CPU_SUBTYPE_SH7619
543 MD2 - MD0 pin setting.
545 source "kernel/time/Kconfig"
549 menu "CPU Frequency scaling"
551 source "drivers/cpufreq/Kconfig"
554 tristate "SuperH CPU Frequency driver"
556 select CPU_FREQ_TABLE
558 This adds the cpufreq driver for SuperH. Any CPU that supports
559 clock rate rounding through the clock framework can use this
560 driver. While it will make the kernel slightly larger, this is
561 harmless for CPUs that don't support rate rounding. The driver
562 will also generate a notice in the boot log before disabling
563 itself if the CPU in question is not capable of rate rounding.
565 For details, take a look at <file:Documentation/cpu-freq>.
571 source "arch/sh/drivers/Kconfig"
575 menu "Kernel features"
577 source kernel/Kconfig.hz
580 bool "kexec system call (EXPERIMENTAL)"
581 depends on SUPERH32 && EXPERIMENTAL && MMU
583 kexec is a system call that implements the ability to shutdown your
584 current kernel, and to start another kernel. It is like a reboot
585 but it is independent of the system firmware. And like a reboot
586 you can start any kernel with it, not just Linux.
588 The name comes from the similarity to the exec system call.
590 It is an ongoing process to be certain the hardware in a machine
591 is properly shutdown, so do not be surprised if this code does not
592 initially work for you. It may help to enable device hotplugging
593 support. As of this writing the exact hardware interface is
594 strongly in flux, so no good recommendation can be made.
597 bool "kernel crash dumps (EXPERIMENTAL)"
598 depends on SUPERH32 && EXPERIMENTAL
600 Generate crash dump after being started by kexec.
601 This should be normally only set in special crash dump kernels
602 which are loaded in the main kernel with kexec-tools into
603 a specially reserved region and then later executed after
604 a crash by kdump/kexec. The crash dump kernel must be compiled
605 to a memory address not used by the main kernel using
608 For more details see Documentation/kdump/kdump.txt
611 bool "kexec jump (EXPERIMENTAL)"
612 depends on SUPERH32 && KEXEC && HIBERNATION && EXPERIMENTAL
614 Jump between original kernel and kexeced kernel and invoke
618 bool "Enable seccomp to safely compute untrusted bytecode"
621 This kernel feature is useful for number crunching applications
622 that may need to compute untrusted bytecode during their
623 execution. By using pipes or other transports made available to
624 the process as file descriptors supporting the read/write
625 syscalls, it's possible to isolate those applications in
626 their own address space using seccomp. Once seccomp is
627 enabled via prctl, it cannot be disabled and the task is only
628 allowed to execute a few safe syscalls defined by each seccomp
634 bool "Symmetric multi-processing support"
635 depends on SYS_SUPPORTS_SMP
636 select USE_GENERIC_SMP_HELPERS
638 This enables support for systems with more than one CPU. If you have
639 a system with only one CPU, like most personal computers, say N. If
640 you have a system with more than one CPU, say Y.
642 If you say N here, the kernel will run on single and multiprocessor
643 machines, but will use only one CPU of a multiprocessor machine. If
644 you say Y here, the kernel will run on many, but not all,
645 singleprocessor machines. On a singleprocessor machine, the kernel
646 will run faster if you say N here.
648 People using multiprocessor machines who say Y here should also say
649 Y to "Enhanced Real Time Clock Support", below.
651 See also <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO
652 available at <http://www.tldp.org/docs.html#howto>.
654 If you don't know what to do here, say N.
657 int "Maximum number of CPUs (2-32)"
660 default "4" if CPU_SUBTYPE_SHX3
663 This allows you to specify the maximum number of CPUs which this
664 kernel will support. The maximum supported value is 32 and the
665 minimum value which makes sense is 2.
667 This is purely to save memory - each supported CPU adds
668 approximately eight kilobytes to the kernel image.
670 source "kernel/Kconfig.preempt"
674 depends on !SMP && SUPERH32
676 This enables support for gUSA (general UserSpace Atomicity).
677 This is the default implementation for both UP and non-ll/sc
678 CPUs, and is used by the libc, amongst others.
680 For additional information, design information can be found
681 in <http://lc.linux.or.jp/lc2002/papers/niibe0919p.pdf>.
683 This should only be disabled for special cases where alternate
684 atomicity implementations exist.
687 bool "Implement atomic operations by roll-back (gRB) (EXPERIMENTAL)"
688 depends on GUSA && CPU_SH3 || (CPU_SH4 && !CPU_SH4A)
690 Enabling this option will allow the kernel to implement some
691 atomic operations using a software implementation of load-locked/
692 store-conditional (LLSC). On machines which do not have hardware
693 LLSC, this should be more efficient than the other alternative of
694 disabling interrupts around the atomic sequence.
697 bool "Support sparse irq numbering"
698 depends on EXPERIMENTAL
700 This enables support for sparse irqs. This is useful in general
701 as most CPUs have a fairly sparse array of IRQ vectors, which
702 the irq_desc then maps directly on to. Systems with a high
703 number of off-chip IRQs will want to treat this as
704 experimental until they have been independently verified.
706 If you don't know what to do here, say N.
712 config ZERO_PAGE_OFFSET
714 default "0x00010000" if PAGE_SIZE_64KB || SH_RTS7751R2D || \
715 SH_7751_SOLUTION_ENGINE
716 default "0x00004000" if PAGE_SIZE_16KB || SH_SH03
717 default "0x00002000" if PAGE_SIZE_8KB
720 This sets the default offset of zero page.
722 config BOOT_LINK_OFFSET
724 default "0x00210000" if SH_SHMIN
725 default "0x00400000" if SH_CAYMAN
726 default "0x00810000" if SH_7780_SOLUTION_ENGINE
727 default "0x009e0000" if SH_TITAN
728 default "0x01800000" if SH_SDK7780
729 default "0x02000000" if SH_EDOSK7760
732 This option allows you to set the link address offset of the zImage.
733 This can be useful if you are on a board which has a small amount of
738 default "0x00001000" if PAGE_SIZE_4KB
739 default "0x00002000" if PAGE_SIZE_8KB
740 default "0x00004000" if PAGE_SIZE_16KB
741 default "0x00010000" if PAGE_SIZE_64KB
745 bool "Wakeup UBC on startup"
746 depends on CPU_SH4 && !CPU_SH4A
748 Selecting this option will wakeup the User Break Controller (UBC) on
749 startup. Although the UBC is left in an awake state when the processor
750 comes up, some boot loaders misbehave by putting the UBC to sleep in a
751 power saving state, which causes issues with things like ptrace().
756 bool "Default bootloader kernel arguments"
759 string "Initial kernel command string"
760 depends on CMDLINE_BOOL
761 default "console=ttySC1,115200"
768 tristate "SuperHyway Bus support"
769 depends on CPU_SUBTYPE_SH4_202
772 bool "Maple Bus support"
773 depends on SH_DREAMCAST
775 The Maple Bus is SEGA's serial communication bus for peripherals
776 on the Dreamcast. Without this bus support you won't be able to
777 get your Dreamcast keyboard etc to work, so most users
778 probably want to say 'Y' here, unless you are only using the
779 Dreamcast with a serial line terminal or a remote network
782 source "arch/sh/drivers/pci/Kconfig"
784 source "drivers/pci/pcie/Kconfig"
786 source "drivers/pci/Kconfig"
788 source "drivers/pcmcia/Kconfig"
790 source "drivers/pci/hotplug/Kconfig"
794 menu "Executable file formats"
796 source "fs/Kconfig.binfmt"
800 menu "Power management options (EXPERIMENTAL)"
801 depends on EXPERIMENTAL
803 source "kernel/power/Kconfig"
805 source "drivers/cpuidle/Kconfig"
811 source "drivers/Kconfig"
815 source "arch/sh/Kconfig.debug"
817 source "security/Kconfig"
819 source "crypto/Kconfig"