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
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/>.
27 select HAVE_KRETPROBES
28 select HAVE_FUNCTION_TRACER
29 select HAVE_FTRACE_MCOUNT_RECORD
30 select HAVE_DYNAMIC_FTRACE
32 select ARCH_HIBERNATION_POSSIBLE if MMU
36 def_bool ARCH = "sh64"
40 default "arch/sh/configs/shx3_defconfig" if SUPERH32
41 default "arch/sh/configs/cayman_defconfig" if SUPERH64
43 config RWSEM_GENERIC_SPINLOCK
46 config RWSEM_XCHGADD_ALGORITHM
51 depends on BUG && SUPERH32
53 config GENERIC_FIND_NEXT_BIT
56 config GENERIC_HWEIGHT
59 config GENERIC_HARDIRQS
62 config GENERIC_HARDIRQS_NO__DO_IRQ
65 config GENERIC_IRQ_PROBE
71 config GENERIC_CALIBRATE_DELAY
80 config GENERIC_CLOCKEVENTS
83 config GENERIC_CLOCKEVENTS_BROADCAST
86 config GENERIC_LOCKBREAK
88 depends on SMP && PREEMPT
90 config SYS_SUPPORTS_PM
94 config ARCH_SUSPEND_POSSIBLE
97 config ARCH_HIBERNATION_POSSIBLE
100 config SYS_SUPPORTS_APM_EMULATION
102 select ARCH_SUSPEND_POSSIBLE
104 config SYS_SUPPORTS_SMP
107 config SYS_SUPPORTS_NUMA
110 config SYS_SUPPORTS_PCI
113 config SYS_SUPPORTS_CMT
116 config SYS_SUPPORTS_MTU2
119 config SYS_SUPPORTS_TMU
122 config STACKTRACE_SUPPORT
125 config LOCKDEP_SUPPORT
128 config HAVE_LATENCYTOP_SUPPORT
132 config ARCH_HAS_ILOG2_U32
135 config ARCH_HAS_ILOG2_U64
138 config ARCH_NO_VIRT_TO_BUS
141 config ARCH_HAS_DEFAULT_IDLE
144 config ARCH_USES_GETTIMEOFFSET
151 source "init/Kconfig"
153 source "kernel/Kconfig.freezer"
169 select CPU_HAS_INTEVT
174 select CPU_HAS_INTEVT
176 select CPU_HAS_PTEA if !CPU_SH4A || CPU_SHX2
177 select CPU_HAS_FPU if !CPU_SH4AL_DSP
200 select ARCH_SUSPEND_POSSIBLE
205 prompt "Processor sub-type selection"
211 # SH-2 Processor Support
213 config CPU_SUBTYPE_SH7619
214 bool "Support SH7619 processor"
216 select SYS_SUPPORTS_CMT
218 # SH-2A Processor Support
220 config CPU_SUBTYPE_SH7201
221 bool "Support SH7201 processor"
224 select SYS_SUPPORTS_MTU2
226 config CPU_SUBTYPE_SH7203
227 bool "Support SH7203 processor"
230 select SYS_SUPPORTS_CMT
231 select SYS_SUPPORTS_MTU2
233 config CPU_SUBTYPE_SH7206
234 bool "Support SH7206 processor"
236 select SYS_SUPPORTS_CMT
237 select SYS_SUPPORTS_MTU2
239 config CPU_SUBTYPE_SH7263
240 bool "Support SH7263 processor"
243 select SYS_SUPPORTS_CMT
244 select SYS_SUPPORTS_MTU2
246 config CPU_SUBTYPE_MXG
247 bool "Support MX-G processor"
249 select SYS_SUPPORTS_MTU2
251 Select MX-G if running on an R8A03022BG part.
253 # SH-3 Processor Support
255 config CPU_SUBTYPE_SH7705
256 bool "Support SH7705 processor"
259 config CPU_SUBTYPE_SH7706
260 bool "Support SH7706 processor"
263 Select SH7706 if you have a 133 Mhz SH-3 HD6417706 CPU.
265 config CPU_SUBTYPE_SH7707
266 bool "Support SH7707 processor"
269 Select SH7707 if you have a 60 Mhz SH-3 HD6417707 CPU.
271 config CPU_SUBTYPE_SH7708
272 bool "Support SH7708 processor"
275 Select SH7708 if you have a 60 Mhz SH-3 HD6417708S or
276 if you have a 100 Mhz SH-3 HD6417708R CPU.
278 config CPU_SUBTYPE_SH7709
279 bool "Support SH7709 processor"
282 Select SH7709 if you have a 80 Mhz SH-3 HD6417709 CPU.
284 config CPU_SUBTYPE_SH7710
285 bool "Support SH7710 processor"
289 Select SH7710 if you have a SH3-DSP SH7710 CPU.
291 config CPU_SUBTYPE_SH7712
292 bool "Support SH7712 processor"
296 Select SH7712 if you have a SH3-DSP SH7712 CPU.
298 config CPU_SUBTYPE_SH7720
299 bool "Support SH7720 processor"
303 Select SH7720 if you have a SH3-DSP SH7720 CPU.
305 config CPU_SUBTYPE_SH7721
306 bool "Support SH7721 processor"
310 Select SH7721 if you have a SH3-DSP SH7721 CPU.
312 # SH-4 Processor Support
314 config CPU_SUBTYPE_SH7750
315 bool "Support SH7750 processor"
318 Select SH7750 if you have a 200 Mhz SH-4 HD6417750 CPU.
320 config CPU_SUBTYPE_SH7091
321 bool "Support SH7091 processor"
324 Select SH7091 if you have an SH-4 based Sega device (such as
325 the Dreamcast, Naomi, and Naomi 2).
327 config CPU_SUBTYPE_SH7750R
328 bool "Support SH7750R processor"
331 config CPU_SUBTYPE_SH7750S
332 bool "Support SH7750S processor"
335 config CPU_SUBTYPE_SH7751
336 bool "Support SH7751 processor"
339 Select SH7751 if you have a 166 Mhz SH-4 HD6417751 CPU,
340 or if you have a HD6417751R CPU.
342 config CPU_SUBTYPE_SH7751R
343 bool "Support SH7751R processor"
346 config CPU_SUBTYPE_SH7760
347 bool "Support SH7760 processor"
350 config CPU_SUBTYPE_SH4_202
351 bool "Support SH4-202 processor"
354 # SH-4A Processor Support
356 config CPU_SUBTYPE_SH7723
357 bool "Support SH7723 processor"
361 select ARCH_SPARSEMEM_ENABLE
362 select SYS_SUPPORTS_CMT
364 Select SH7723 if you have an SH-MobileR2 CPU.
366 config CPU_SUBTYPE_SH7724
367 bool "Support SH7724 processor"
371 select ARCH_SPARSEMEM_ENABLE
372 select SYS_SUPPORTS_CMT
374 Select SH7724 if you have an SH-MobileR2R CPU.
376 config CPU_SUBTYPE_SH7763
377 bool "Support SH7763 processor"
380 Select SH7763 if you have a SH4A SH7763(R5S77631) CPU.
382 config CPU_SUBTYPE_SH7770
383 bool "Support SH7770 processor"
386 config CPU_SUBTYPE_SH7780
387 bool "Support SH7780 processor"
390 config CPU_SUBTYPE_SH7785
391 bool "Support SH7785 processor"
394 select ARCH_SPARSEMEM_ENABLE
395 select SYS_SUPPORTS_NUMA
397 config CPU_SUBTYPE_SH7786
398 bool "Support SH7786 processor"
401 select CPU_HAS_PTEAEX
402 select ARCH_SPARSEMEM_ENABLE
403 select SYS_SUPPORTS_NUMA
405 config CPU_SUBTYPE_SHX3
406 bool "Support SH-X3 processor"
409 select ARCH_SPARSEMEM_ENABLE
410 select SYS_SUPPORTS_NUMA
411 select SYS_SUPPORTS_SMP
412 select GENERIC_CLOCKEVENTS_BROADCAST if SMP
414 # SH4AL-DSP Processor Support
416 config CPU_SUBTYPE_SH7343
417 bool "Support SH7343 processor"
420 select SYS_SUPPORTS_CMT
422 config CPU_SUBTYPE_SH7722
423 bool "Support SH7722 processor"
427 select ARCH_SPARSEMEM_ENABLE
428 select SYS_SUPPORTS_NUMA
429 select SYS_SUPPORTS_CMT
430 select SYS_SUPPORTS_TMU
432 config CPU_SUBTYPE_SH7366
433 bool "Support SH7366 processor"
437 select ARCH_SPARSEMEM_ENABLE
438 select SYS_SUPPORTS_NUMA
439 select SYS_SUPPORTS_CMT
448 prompt "Processor sub-type selection"
450 # SH-5 Processor Support
452 config CPU_SUBTYPE_SH5_101
453 bool "Support SH5-101 processor"
456 config CPU_SUBTYPE_SH5_103
457 bool "Support SH5-103 processor"
464 source "arch/sh/mm/Kconfig"
466 source "arch/sh/Kconfig.cpu"
468 source "arch/sh/boards/Kconfig"
470 menu "Timer and clock configuration"
473 bool "TMU timer support"
474 depends on CPU_SH3 || CPU_SH4
477 This enables the use of the TMU as the system timer.
480 bool "TMU timer driver"
481 depends on !SH_TMU && SYS_SUPPORTS_TMU
484 This enables the build of the TMU timer driver.
487 bool "CMT timer driver"
488 depends on SYS_SUPPORTS_CMT
491 This enables build of the CMT timer driver.
494 bool "MTU2 timer driver"
495 depends on SYS_SUPPORTS_MTU2
498 This enables build of the MTU2 timer driver.
502 default "28" if CPU_SUBTYPE_SH7780 || CPU_SUBTYPE_SH7785 || \
504 default "86" if CPU_SUBTYPE_SH7619
505 default "140" if CPU_SUBTYPE_SH7206
506 default "142" if CPU_SUBTYPE_SH7203 && SH_CMT
507 default "153" if CPU_SUBTYPE_SH7203 && SH_MTU2
508 default "238" if CPU_SUBTYPE_MXG
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 || \
521 default "41666666" if CPU_SUBTYPE_SH7724
522 default "60000000" if CPU_SUBTYPE_SH7751 || CPU_SUBTYPE_SH7751R
523 default "66000000" if CPU_SUBTYPE_SH4_202
526 This option is used to specify the peripheral clock frequency.
527 This is necessary for determining the reference clock value on
528 platforms lacking an RTC.
531 int "CPU Mode Pin Setting"
533 default 6 if CPU_SUBTYPE_SH7206
534 default 5 if CPU_SUBTYPE_SH7619
537 MD2 - MD0 pin setting.
539 source "kernel/time/Kconfig"
543 menu "CPU Frequency scaling"
545 source "drivers/cpufreq/Kconfig"
548 tristate "SuperH CPU Frequency driver"
550 select CPU_FREQ_TABLE
552 This adds the cpufreq driver for SuperH. Any CPU that supports
553 clock rate rounding through the clock framework can use this
554 driver. While it will make the kernel slightly larger, this is
555 harmless for CPUs that don't support rate rounding. The driver
556 will also generate a notice in the boot log before disabling
557 itself if the CPU in question is not capable of rate rounding.
559 For details, take a look at <file:Documentation/cpu-freq>.
565 source "arch/sh/drivers/Kconfig"
569 menu "Kernel features"
571 source kernel/Kconfig.hz
574 bool "kexec system call (EXPERIMENTAL)"
575 depends on SUPERH32 && EXPERIMENTAL && MMU
577 kexec is a system call that implements the ability to shutdown your
578 current kernel, and to start another kernel. It is like a reboot
579 but it is independent of the system firmware. And like a reboot
580 you can start any kernel with it, not just Linux.
582 The name comes from the similarity to the exec system call.
584 It is an ongoing process to be certain the hardware in a machine
585 is properly shutdown, so do not be surprised if this code does not
586 initially work for you. It may help to enable device hotplugging
587 support. As of this writing the exact hardware interface is
588 strongly in flux, so no good recommendation can be made.
591 bool "kernel crash dumps (EXPERIMENTAL)"
592 depends on SUPERH32 && EXPERIMENTAL
594 Generate crash dump after being started by kexec.
595 This should be normally only set in special crash dump kernels
596 which are loaded in the main kernel with kexec-tools into
597 a specially reserved region and then later executed after
598 a crash by kdump/kexec. The crash dump kernel must be compiled
599 to a memory address not used by the main kernel using
602 For more details see Documentation/kdump/kdump.txt
605 bool "kexec jump (EXPERIMENTAL)"
606 depends on SUPERH32 && KEXEC && HIBERNATION && EXPERIMENTAL
608 Jump between original kernel and kexeced kernel and invoke
612 bool "Enable seccomp to safely compute untrusted bytecode"
615 This kernel feature is useful for number crunching applications
616 that may need to compute untrusted bytecode during their
617 execution. By using pipes or other transports made available to
618 the process as file descriptors supporting the read/write
619 syscalls, it's possible to isolate those applications in
620 their own address space using seccomp. Once seccomp is
621 enabled via prctl, it cannot be disabled and the task is only
622 allowed to execute a few safe syscalls defined by each seccomp
628 bool "Symmetric multi-processing support"
629 depends on SYS_SUPPORTS_SMP
630 select USE_GENERIC_SMP_HELPERS
632 This enables support for systems with more than one CPU. If you have
633 a system with only one CPU, like most personal computers, say N. If
634 you have a system with more than one CPU, say Y.
636 If you say N here, the kernel will run on single and multiprocessor
637 machines, but will use only one CPU of a multiprocessor machine. If
638 you say Y here, the kernel will run on many, but not all,
639 singleprocessor machines. On a singleprocessor machine, the kernel
640 will run faster if you say N here.
642 People using multiprocessor machines who say Y here should also say
643 Y to "Enhanced Real Time Clock Support", below.
645 See also <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO
646 available at <http://www.tldp.org/docs.html#howto>.
648 If you don't know what to do here, say N.
651 int "Maximum number of CPUs (2-32)"
654 default "4" if CPU_SHX3
657 This allows you to specify the maximum number of CPUs which this
658 kernel will support. The maximum supported value is 32 and the
659 minimum value which makes sense is 2.
661 This is purely to save memory - each supported CPU adds
662 approximately eight kilobytes to the kernel image.
664 source "kernel/Kconfig.preempt"
668 depends on !SMP && SUPERH32
670 This enables support for gUSA (general UserSpace Atomicity).
671 This is the default implementation for both UP and non-ll/sc
672 CPUs, and is used by the libc, amongst others.
674 For additional information, design information can be found
675 in <http://lc.linux.or.jp/lc2002/papers/niibe0919p.pdf>.
677 This should only be disabled for special cases where alternate
678 atomicity implementations exist.
681 bool "Implement atomic operations by roll-back (gRB) (EXPERIMENTAL)"
682 depends on GUSA && CPU_SH3 || (CPU_SH4 && !CPU_SH4A)
684 Enabling this option will allow the kernel to implement some
685 atomic operations using a software implementation of load-locked/
686 store-conditional (LLSC). On machines which do not have hardware
687 LLSC, this should be more efficient than the other alternative of
688 disabling interrupts around the atomic sequence.
694 config ZERO_PAGE_OFFSET
695 hex "Zero page offset"
696 default "0x00004000" if SH_SH03
697 default "0x00010000" if PAGE_SIZE_64KB
698 default "0x00002000" if PAGE_SIZE_8KB
701 This sets the default offset of zero page.
703 config BOOT_LINK_OFFSET
704 hex "Link address offset for booting"
707 This option allows you to set the link address offset of the zImage.
708 This can be useful if you are on a board which has a small amount of
712 bool "Wakeup UBC on startup"
713 depends on CPU_SH4 && !CPU_SH4A
715 Selecting this option will wakeup the User Break Controller (UBC) on
716 startup. Although the UBC is left in an awake state when the processor
717 comes up, some boot loaders misbehave by putting the UBC to sleep in a
718 power saving state, which causes issues with things like ptrace().
723 bool "Default bootloader kernel arguments"
726 string "Initial kernel command string"
727 depends on CMDLINE_BOOL
728 default "console=ttySC1,115200"
735 tristate "SuperHyway Bus support"
736 depends on CPU_SUBTYPE_SH4_202
739 bool "Maple Bus support"
740 depends on SH_DREAMCAST
742 The Maple Bus is SEGA's serial communication bus for peripherals
743 on the Dreamcast. Without this bus support you won't be able to
744 get your Dreamcast keyboard etc to work, so most users
745 probably want to say 'Y' here, unless you are only using the
746 Dreamcast with a serial line terminal or a remote network
749 source "arch/sh/drivers/pci/Kconfig"
751 source "drivers/pci/pcie/Kconfig"
753 source "drivers/pci/Kconfig"
755 source "drivers/pcmcia/Kconfig"
757 source "drivers/pci/hotplug/Kconfig"
761 menu "Executable file formats"
763 source "fs/Kconfig.binfmt"
767 menu "Power management options (EXPERIMENTAL)"
768 depends on EXPERIMENTAL
770 source "kernel/power/Kconfig"
772 source "drivers/cpuidle/Kconfig"
778 source "drivers/Kconfig"
782 source "arch/sh/Kconfig.debug"
784 source "security/Kconfig"
786 source "crypto/Kconfig"