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_COUNTER
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
35 select ARCH_HIBERNATION_POSSIBLE if MMU
38 def_bool ARCH = "sh64"
42 default "arch/sh/configs/shx3_defconfig" if SUPERH32
43 default "arch/sh/configs/cayman_defconfig" if SUPERH64
45 config RWSEM_GENERIC_SPINLOCK
48 config RWSEM_XCHGADD_ALGORITHM
53 depends on BUG && SUPERH32
59 config GENERIC_FIND_NEXT_BIT
62 config GENERIC_HWEIGHT
65 config GENERIC_HARDIRQS
68 config GENERIC_HARDIRQS_NO__DO_IRQ
71 config GENERIC_IRQ_PROBE
80 config GENERIC_CALIBRATE_DELAY
89 config GENERIC_CLOCKEVENTS
92 config GENERIC_CLOCKEVENTS_BROADCAST
95 config GENERIC_CMOS_UPDATE
97 depends on SH_SH03 || SH_DREAMCAST
99 config GENERIC_LOCKBREAK
101 depends on SMP && PREEMPT
103 config SYS_SUPPORTS_PM
107 config ARCH_SUSPEND_POSSIBLE
110 config ARCH_HIBERNATION_POSSIBLE
113 config SYS_SUPPORTS_APM_EMULATION
115 select ARCH_SUSPEND_POSSIBLE
117 config SYS_SUPPORTS_SMP
120 config SYS_SUPPORTS_NUMA
123 config SYS_SUPPORTS_PCI
126 config SYS_SUPPORTS_CMT
129 config SYS_SUPPORTS_MTU2
132 config SYS_SUPPORTS_TMU
135 config STACKTRACE_SUPPORT
138 config LOCKDEP_SUPPORT
141 config HAVE_LATENCYTOP_SUPPORT
145 config ARCH_HAS_ILOG2_U32
148 config ARCH_HAS_ILOG2_U64
151 config ARCH_NO_VIRT_TO_BUS
154 config ARCH_HAS_DEFAULT_IDLE
157 config ARCH_HAS_CPU_IDLE_WAIT
163 source "init/Kconfig"
165 source "kernel/Kconfig.freezer"
181 select CPU_HAS_INTEVT
183 select SYS_SUPPORTS_TMU
187 select CPU_HAS_INTEVT
189 select CPU_HAS_FPU if !CPU_SH4AL_DSP
190 select SYS_SUPPORTS_TMU
204 select SYS_SUPPORTS_TMU
214 select ARCH_SUSPEND_POSSIBLE
219 prompt "Processor sub-type selection"
225 # SH-2 Processor Support
227 config CPU_SUBTYPE_SH7619
228 bool "Support SH7619 processor"
230 select SYS_SUPPORTS_CMT
232 # SH-2A Processor Support
234 config CPU_SUBTYPE_SH7201
235 bool "Support SH7201 processor"
238 select SYS_SUPPORTS_MTU2
240 config CPU_SUBTYPE_SH7203
241 bool "Support SH7203 processor"
244 select SYS_SUPPORTS_CMT
245 select SYS_SUPPORTS_MTU2
247 config CPU_SUBTYPE_SH7206
248 bool "Support SH7206 processor"
250 select SYS_SUPPORTS_CMT
251 select SYS_SUPPORTS_MTU2
253 config CPU_SUBTYPE_SH7263
254 bool "Support SH7263 processor"
257 select SYS_SUPPORTS_CMT
258 select SYS_SUPPORTS_MTU2
260 config CPU_SUBTYPE_MXG
261 bool "Support MX-G processor"
263 select SYS_SUPPORTS_MTU2
265 Select MX-G if running on an R8A03022BG part.
267 # SH-3 Processor Support
269 config CPU_SUBTYPE_SH7705
270 bool "Support SH7705 processor"
273 config CPU_SUBTYPE_SH7706
274 bool "Support SH7706 processor"
277 Select SH7706 if you have a 133 Mhz SH-3 HD6417706 CPU.
279 config CPU_SUBTYPE_SH7707
280 bool "Support SH7707 processor"
283 Select SH7707 if you have a 60 Mhz SH-3 HD6417707 CPU.
285 config CPU_SUBTYPE_SH7708
286 bool "Support SH7708 processor"
289 Select SH7708 if you have a 60 Mhz SH-3 HD6417708S or
290 if you have a 100 Mhz SH-3 HD6417708R CPU.
292 config CPU_SUBTYPE_SH7709
293 bool "Support SH7709 processor"
296 Select SH7709 if you have a 80 Mhz SH-3 HD6417709 CPU.
298 config CPU_SUBTYPE_SH7710
299 bool "Support SH7710 processor"
303 Select SH7710 if you have a SH3-DSP SH7710 CPU.
305 config CPU_SUBTYPE_SH7712
306 bool "Support SH7712 processor"
310 Select SH7712 if you have a SH3-DSP SH7712 CPU.
312 config CPU_SUBTYPE_SH7720
313 bool "Support SH7720 processor"
316 select SYS_SUPPORTS_CMT
318 Select SH7720 if you have a SH3-DSP SH7720 CPU.
320 config CPU_SUBTYPE_SH7721
321 bool "Support SH7721 processor"
324 select SYS_SUPPORTS_CMT
326 Select SH7721 if you have a SH3-DSP SH7721 CPU.
328 # SH-4 Processor Support
330 config CPU_SUBTYPE_SH7750
331 bool "Support SH7750 processor"
334 Select SH7750 if you have a 200 Mhz SH-4 HD6417750 CPU.
336 config CPU_SUBTYPE_SH7091
337 bool "Support SH7091 processor"
340 Select SH7091 if you have an SH-4 based Sega device (such as
341 the Dreamcast, Naomi, and Naomi 2).
343 config CPU_SUBTYPE_SH7750R
344 bool "Support SH7750R processor"
347 config CPU_SUBTYPE_SH7750S
348 bool "Support SH7750S processor"
351 config CPU_SUBTYPE_SH7751
352 bool "Support SH7751 processor"
355 Select SH7751 if you have a 166 Mhz SH-4 HD6417751 CPU,
356 or if you have a HD6417751R CPU.
358 config CPU_SUBTYPE_SH7751R
359 bool "Support SH7751R processor"
362 config CPU_SUBTYPE_SH7760
363 bool "Support SH7760 processor"
366 config CPU_SUBTYPE_SH4_202
367 bool "Support SH4-202 processor"
370 # SH-4A Processor Support
372 config CPU_SUBTYPE_SH7723
373 bool "Support SH7723 processor"
377 select ARCH_SPARSEMEM_ENABLE
378 select SYS_SUPPORTS_CMT
380 Select SH7723 if you have an SH-MobileR2 CPU.
382 config CPU_SUBTYPE_SH7724
383 bool "Support SH7724 processor"
387 select ARCH_SPARSEMEM_ENABLE
388 select SYS_SUPPORTS_CMT
390 Select SH7724 if you have an SH-MobileR2R CPU.
392 config CPU_SUBTYPE_SH7763
393 bool "Support SH7763 processor"
396 Select SH7763 if you have a SH4A SH7763(R5S77631) CPU.
398 config CPU_SUBTYPE_SH7770
399 bool "Support SH7770 processor"
402 config CPU_SUBTYPE_SH7780
403 bool "Support SH7780 processor"
406 config CPU_SUBTYPE_SH7785
407 bool "Support SH7785 processor"
410 select ARCH_SPARSEMEM_ENABLE
411 select SYS_SUPPORTS_NUMA
413 config CPU_SUBTYPE_SH7786
414 bool "Support SH7786 processor"
417 select CPU_HAS_PTEAEX
418 select ARCH_SPARSEMEM_ENABLE
419 select SYS_SUPPORTS_NUMA
420 select SYS_SUPPORTS_SMP
421 select GENERIC_CLOCKEVENTS_BROADCAST if SMP
423 config CPU_SUBTYPE_SHX3
424 bool "Support SH-X3 processor"
427 select ARCH_SPARSEMEM_ENABLE
428 select SYS_SUPPORTS_NUMA
429 select SYS_SUPPORTS_SMP
430 select GENERIC_CLOCKEVENTS_BROADCAST if SMP
432 # SH4AL-DSP Processor Support
434 config CPU_SUBTYPE_SH7343
435 bool "Support SH7343 processor"
438 select SYS_SUPPORTS_CMT
440 config CPU_SUBTYPE_SH7722
441 bool "Support SH7722 processor"
445 select ARCH_SPARSEMEM_ENABLE
446 select SYS_SUPPORTS_NUMA
447 select SYS_SUPPORTS_CMT
449 config CPU_SUBTYPE_SH7366
450 bool "Support SH7366 processor"
454 select ARCH_SPARSEMEM_ENABLE
455 select SYS_SUPPORTS_NUMA
456 select SYS_SUPPORTS_CMT
465 prompt "Processor sub-type selection"
467 # SH-5 Processor Support
469 config CPU_SUBTYPE_SH5_101
470 bool "Support SH5-101 processor"
473 config CPU_SUBTYPE_SH5_103
474 bool "Support SH5-103 processor"
481 source "arch/sh/mm/Kconfig"
483 source "arch/sh/Kconfig.cpu"
485 source "arch/sh/boards/Kconfig"
487 menu "Timer and clock configuration"
490 bool "TMU timer driver"
491 depends on SYS_SUPPORTS_TMU
494 This enables the build of the TMU timer driver.
497 bool "CMT timer driver"
498 depends on SYS_SUPPORTS_CMT
501 This enables build of the CMT timer driver.
504 bool "MTU2 timer driver"
505 depends on SYS_SUPPORTS_MTU2
508 This enables build of the MTU2 timer driver.
511 int "Peripheral clock frequency (in Hz)"
512 default "27000000" if CPU_SUBTYPE_SH7343
513 default "31250000" if CPU_SUBTYPE_SH7619
514 default "32000000" if CPU_SUBTYPE_SH7722
515 default "33333333" if CPU_SUBTYPE_SH7770 || CPU_SUBTYPE_SH7723 || \
516 CPU_SUBTYPE_SH7760 || CPU_SUBTYPE_SH7705 || \
517 CPU_SUBTYPE_SH7203 || CPU_SUBTYPE_SH7206 || \
518 CPU_SUBTYPE_SH7263 || CPU_SUBTYPE_MXG || \
519 CPU_SUBTYPE_SH7786 || CPU_SUBTYPE_SH7724
520 default "60000000" if CPU_SUBTYPE_SH7751 || CPU_SUBTYPE_SH7751R
521 default "66000000" if CPU_SUBTYPE_SH4_202
524 This option is used to specify the peripheral clock frequency.
525 This is necessary for determining the reference clock value on
526 platforms lacking an RTC.
531 config SH_CLK_CPG_LEGACY
532 depends on SH_CLK_CPG
533 def_bool y if !CPU_SUBTYPE_SH7785 && !ARCH_SHMOBILE
536 int "CPU Mode Pin Setting"
538 default 6 if CPU_SUBTYPE_SH7206
539 default 5 if CPU_SUBTYPE_SH7619
542 MD2 - MD0 pin setting.
544 source "kernel/time/Kconfig"
548 menu "CPU Frequency scaling"
550 source "drivers/cpufreq/Kconfig"
553 tristate "SuperH CPU Frequency driver"
555 select CPU_FREQ_TABLE
557 This adds the cpufreq driver for SuperH. Any CPU that supports
558 clock rate rounding through the clock framework can use this
559 driver. While it will make the kernel slightly larger, this is
560 harmless for CPUs that don't support rate rounding. The driver
561 will also generate a notice in the boot log before disabling
562 itself if the CPU in question is not capable of rate rounding.
564 For details, take a look at <file:Documentation/cpu-freq>.
570 source "arch/sh/drivers/Kconfig"
574 menu "Kernel features"
576 source kernel/Kconfig.hz
579 bool "kexec system call (EXPERIMENTAL)"
580 depends on SUPERH32 && EXPERIMENTAL && MMU
582 kexec is a system call that implements the ability to shutdown your
583 current kernel, and to start another kernel. It is like a reboot
584 but it is independent of the system firmware. And like a reboot
585 you can start any kernel with it, not just Linux.
587 The name comes from the similarity to the exec system call.
589 It is an ongoing process to be certain the hardware in a machine
590 is properly shutdown, so do not be surprised if this code does not
591 initially work for you. It may help to enable device hotplugging
592 support. As of this writing the exact hardware interface is
593 strongly in flux, so no good recommendation can be made.
596 bool "kernel crash dumps (EXPERIMENTAL)"
597 depends on SUPERH32 && EXPERIMENTAL
599 Generate crash dump after being started by kexec.
600 This should be normally only set in special crash dump kernels
601 which are loaded in the main kernel with kexec-tools into
602 a specially reserved region and then later executed after
603 a crash by kdump/kexec. The crash dump kernel must be compiled
604 to a memory address not used by the main kernel using
607 For more details see Documentation/kdump/kdump.txt
610 bool "kexec jump (EXPERIMENTAL)"
611 depends on SUPERH32 && KEXEC && HIBERNATION && EXPERIMENTAL
613 Jump between original kernel and kexeced kernel and invoke
617 bool "Enable seccomp to safely compute untrusted bytecode"
620 This kernel feature is useful for number crunching applications
621 that may need to compute untrusted bytecode during their
622 execution. By using pipes or other transports made available to
623 the process as file descriptors supporting the read/write
624 syscalls, it's possible to isolate those applications in
625 their own address space using seccomp. Once seccomp is
626 enabled via prctl, it cannot be disabled and the task is only
627 allowed to execute a few safe syscalls defined by each seccomp
633 bool "Symmetric multi-processing support"
634 depends on SYS_SUPPORTS_SMP
635 select USE_GENERIC_SMP_HELPERS
637 This enables support for systems with more than one CPU. If you have
638 a system with only one CPU, like most personal computers, say N. If
639 you have a system with more than one CPU, say Y.
641 If you say N here, the kernel will run on single and multiprocessor
642 machines, but will use only one CPU of a multiprocessor machine. If
643 you say Y here, the kernel will run on many, but not all,
644 singleprocessor machines. On a singleprocessor machine, the kernel
645 will run faster if you say N here.
647 People using multiprocessor machines who say Y here should also say
648 Y to "Enhanced Real Time Clock Support", below.
650 See also <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO
651 available at <http://www.tldp.org/docs.html#howto>.
653 If you don't know what to do here, say N.
656 int "Maximum number of CPUs (2-32)"
659 default "4" if CPU_SUBTYPE_SHX3
662 This allows you to specify the maximum number of CPUs which this
663 kernel will support. The maximum supported value is 32 and the
664 minimum value which makes sense is 2.
666 This is purely to save memory - each supported CPU adds
667 approximately eight kilobytes to the kernel image.
669 source "kernel/Kconfig.preempt"
673 depends on !SMP && SUPERH32
675 This enables support for gUSA (general UserSpace Atomicity).
676 This is the default implementation for both UP and non-ll/sc
677 CPUs, and is used by the libc, amongst others.
679 For additional information, design information can be found
680 in <http://lc.linux.or.jp/lc2002/papers/niibe0919p.pdf>.
682 This should only be disabled for special cases where alternate
683 atomicity implementations exist.
686 bool "Implement atomic operations by roll-back (gRB) (EXPERIMENTAL)"
687 depends on GUSA && CPU_SH3 || (CPU_SH4 && !CPU_SH4A)
689 Enabling this option will allow the kernel to implement some
690 atomic operations using a software implementation of load-locked/
691 store-conditional (LLSC). On machines which do not have hardware
692 LLSC, this should be more efficient than the other alternative of
693 disabling interrupts around the atomic sequence.
696 bool "Support sparse irq numbering"
697 depends on EXPERIMENTAL
699 This enables support for sparse irqs. This is useful in general
700 as most CPUs have a fairly sparse array of IRQ vectors, which
701 the irq_desc then maps directly on to. Systems with a high
702 number of off-chip IRQs will want to treat this as
703 experimental until they have been independently verified.
705 If you don't know what to do here, say N.
711 config ZERO_PAGE_OFFSET
713 default "0x00010000" if PAGE_SIZE_64KB || SH_RTS7751R2D || \
714 SH_7751_SOLUTION_ENGINE
715 default "0x00004000" if PAGE_SIZE_16KB || SH_SH03
716 default "0x00002000" if PAGE_SIZE_8KB
719 This sets the default offset of zero page.
721 config BOOT_LINK_OFFSET
723 default "0x00210000" if SH_SHMIN
724 default "0x00400000" if SH_CAYMAN
725 default "0x00810000" if SH_7780_SOLUTION_ENGINE
726 default "0x009e0000" if SH_TITAN
727 default "0x01800000" if SH_SDK7780
728 default "0x02000000" if SH_EDOSK7760
731 This option allows you to set the link address offset of the zImage.
732 This can be useful if you are on a board which has a small amount of
737 default "0x00001000" if PAGE_SIZE_4KB
738 default "0x00002000" if PAGE_SIZE_8KB
739 default "0x00004000" if PAGE_SIZE_16KB
740 default "0x00010000" if PAGE_SIZE_64KB
744 bool "Wakeup UBC on startup"
745 depends on CPU_SH4 && !CPU_SH4A
747 Selecting this option will wakeup the User Break Controller (UBC) on
748 startup. Although the UBC is left in an awake state when the processor
749 comes up, some boot loaders misbehave by putting the UBC to sleep in a
750 power saving state, which causes issues with things like ptrace().
755 bool "Default bootloader kernel arguments"
758 string "Initial kernel command string"
759 depends on CMDLINE_BOOL
760 default "console=ttySC1,115200"
767 tristate "SuperHyway Bus support"
768 depends on CPU_SUBTYPE_SH4_202
771 bool "Maple Bus support"
772 depends on SH_DREAMCAST
774 The Maple Bus is SEGA's serial communication bus for peripherals
775 on the Dreamcast. Without this bus support you won't be able to
776 get your Dreamcast keyboard etc to work, so most users
777 probably want to say 'Y' here, unless you are only using the
778 Dreamcast with a serial line terminal or a remote network
781 source "arch/sh/drivers/pci/Kconfig"
783 source "drivers/pci/pcie/Kconfig"
785 source "drivers/pci/Kconfig"
787 source "drivers/pcmcia/Kconfig"
789 source "drivers/pci/hotplug/Kconfig"
793 menu "Executable file formats"
795 source "fs/Kconfig.binfmt"
799 menu "Power management options (EXPERIMENTAL)"
800 depends on EXPERIMENTAL
802 source "kernel/power/Kconfig"
804 source "drivers/cpuidle/Kconfig"
810 source "drivers/Kconfig"
814 source "arch/sh/Kconfig.debug"
816 source "security/Kconfig"
818 source "crypto/Kconfig"