5 select HAVE_IDE if HAS_IOPORT
7 select HAVE_MEMBLOCK_NODE_MAP
8 select ARCH_DISCARD_MEMBLOCK
10 select HAVE_GENERIC_DMA_COHERENT
11 select HAVE_ARCH_TRACEHOOK
12 select HAVE_DMA_API_DEBUG
15 select HAVE_PERF_EVENTS
16 select ARCH_HAVE_NMI_SAFE_CMPXCHG if (GUSA_RB || CPU_SH4A)
17 select PERF_USE_VMALLOC
18 select HAVE_KERNEL_GZIP
19 select HAVE_KERNEL_BZIP2
20 select HAVE_KERNEL_LZMA
22 select HAVE_KERNEL_LZO
23 select HAVE_SYSCALL_TRACEPOINTS
24 select HAVE_REGS_AND_STACK_ACCESS_API
25 select HAVE_GENERIC_HARDIRQS
26 select HAVE_SPARSE_IRQ
27 select IRQ_FORCED_THREADING
29 select GENERIC_ATOMIC64
30 select GENERIC_IRQ_SHOW
32 The SuperH is a RISC processor targeted for use in embedded systems
33 and consumer electronics; it was also used in the Sega Dreamcast
34 gaming console. The SuperH port has a home page at
35 <http://www.linux-sh.org/>.
40 select HAVE_KRETPROBES
41 select HAVE_IOREMAP_PROT if MMU && !X2TLB
42 select HAVE_FUNCTION_TRACER
43 select HAVE_FTRACE_MCOUNT_RECORD
44 select HAVE_DYNAMIC_FTRACE
45 select HAVE_FUNCTION_TRACE_MCOUNT_TEST
46 select HAVE_FTRACE_NMI_ENTER if DYNAMIC_FTRACE
47 select HAVE_FUNCTION_GRAPH_TRACER
49 select HAVE_HW_BREAKPOINT
50 select HAVE_MIXED_BREAKPOINTS_REGS
52 select ARCH_HIBERNATION_POSSIBLE if MMU
56 def_bool ARCH = "sh64"
60 default "arch/sh/configs/shx3_defconfig" if SUPERH32
61 default "arch/sh/configs/cayman_defconfig" if SUPERH64
63 config RWSEM_GENERIC_SPINLOCK
66 config RWSEM_XCHGADD_ALGORITHM
71 depends on BUG && SUPERH32
77 config GENERIC_HWEIGHT
86 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 ARCH_SUSPEND_POSSIBLE
106 config ARCH_HIBERNATION_POSSIBLE
109 config SYS_SUPPORTS_APM_EMULATION
111 select ARCH_SUSPEND_POSSIBLE
113 config SYS_SUPPORTS_HUGETLBFS
116 config SYS_SUPPORTS_SMP
119 config SYS_SUPPORTS_NUMA
122 config SYS_SUPPORTS_PCI
125 config SYS_SUPPORTS_CMT
128 config SYS_SUPPORTS_MTU2
131 config SYS_SUPPORTS_TMU
134 config STACKTRACE_SUPPORT
137 config LOCKDEP_SUPPORT
140 config HAVE_LATENCYTOP_SUPPORT
143 config ARCH_HAS_ILOG2_U32
146 config ARCH_HAS_ILOG2_U64
149 config ARCH_NO_VIRT_TO_BUS
152 config ARCH_HAS_DEFAULT_IDLE
155 config ARCH_HAS_CPU_IDLE_WAIT
160 depends on !SH_CAYMAN && !SH_SH4202_MICRODEV && !SH_SHMIN
168 config DMA_NONCOHERENT
169 def_bool !DMA_COHERENT
171 config NEED_DMA_MAP_STATE
172 def_bool DMA_NONCOHERENT
174 config NEED_SG_DMA_LENGTH
177 source "init/Kconfig"
179 source "kernel/Kconfig.freezer"
192 select UNCACHED_MAPPING
196 select CPU_HAS_INTEVT
198 select SYS_SUPPORTS_TMU
202 select CPU_HAS_INTEVT
204 select CPU_HAS_FPU if !CPU_SH4AL_DSP
205 select SYS_SUPPORTS_TMU
206 select SYS_SUPPORTS_HUGETLBFS if MMU
220 select SYS_SUPPORTS_TMU
221 select SYS_SUPPORTS_HUGETLBFS if MMU
229 select SYS_SUPPORTS_SMP
230 select SYS_SUPPORTS_NUMA
234 select ARCH_SUSPEND_POSSIBLE
239 depends on CPU_SH4 || CPU_SH4A
246 prompt "Processor sub-type selection"
252 # SH-2 Processor Support
254 config CPU_SUBTYPE_SH7619
255 bool "Support SH7619 processor"
257 select SYS_SUPPORTS_CMT
259 # SH-2A Processor Support
261 config CPU_SUBTYPE_SH7201
262 bool "Support SH7201 processor"
265 select SYS_SUPPORTS_MTU2
267 config CPU_SUBTYPE_SH7203
268 bool "Support SH7203 processor"
271 select SYS_SUPPORTS_CMT
272 select SYS_SUPPORTS_MTU2
273 select ARCH_WANT_OPTIONAL_GPIOLIB
275 config CPU_SUBTYPE_SH7206
276 bool "Support SH7206 processor"
278 select SYS_SUPPORTS_CMT
279 select SYS_SUPPORTS_MTU2
281 config CPU_SUBTYPE_SH7263
282 bool "Support SH7263 processor"
285 select SYS_SUPPORTS_CMT
286 select SYS_SUPPORTS_MTU2
288 config CPU_SUBTYPE_MXG
289 bool "Support MX-G processor"
291 select SYS_SUPPORTS_MTU2
293 Select MX-G if running on an R8A03022BG part.
295 # SH-3 Processor Support
297 config CPU_SUBTYPE_SH7705
298 bool "Support SH7705 processor"
301 config CPU_SUBTYPE_SH7706
302 bool "Support SH7706 processor"
305 Select SH7706 if you have a 133 Mhz SH-3 HD6417706 CPU.
307 config CPU_SUBTYPE_SH7707
308 bool "Support SH7707 processor"
311 Select SH7707 if you have a 60 Mhz SH-3 HD6417707 CPU.
313 config CPU_SUBTYPE_SH7708
314 bool "Support SH7708 processor"
317 Select SH7708 if you have a 60 Mhz SH-3 HD6417708S or
318 if you have a 100 Mhz SH-3 HD6417708R CPU.
320 config CPU_SUBTYPE_SH7709
321 bool "Support SH7709 processor"
324 Select SH7709 if you have a 80 Mhz SH-3 HD6417709 CPU.
326 config CPU_SUBTYPE_SH7710
327 bool "Support SH7710 processor"
331 Select SH7710 if you have a SH3-DSP SH7710 CPU.
333 config CPU_SUBTYPE_SH7712
334 bool "Support SH7712 processor"
338 Select SH7712 if you have a SH3-DSP SH7712 CPU.
340 config CPU_SUBTYPE_SH7720
341 bool "Support SH7720 processor"
344 select SYS_SUPPORTS_CMT
345 select ARCH_WANT_OPTIONAL_GPIOLIB
346 select USB_ARCH_HAS_OHCI
347 select USB_OHCI_SH if USB_OHCI_HCD
349 Select SH7720 if you have a SH3-DSP SH7720 CPU.
351 config CPU_SUBTYPE_SH7721
352 bool "Support SH7721 processor"
355 select SYS_SUPPORTS_CMT
356 select USB_ARCH_HAS_OHCI
357 select USB_OHCI_SH if USB_OHCI_HCD
359 Select SH7721 if you have a SH3-DSP SH7721 CPU.
361 # SH-4 Processor Support
363 config CPU_SUBTYPE_SH7750
364 bool "Support SH7750 processor"
367 Select SH7750 if you have a 200 Mhz SH-4 HD6417750 CPU.
369 config CPU_SUBTYPE_SH7091
370 bool "Support SH7091 processor"
373 Select SH7091 if you have an SH-4 based Sega device (such as
374 the Dreamcast, Naomi, and Naomi 2).
376 config CPU_SUBTYPE_SH7750R
377 bool "Support SH7750R processor"
380 config CPU_SUBTYPE_SH7750S
381 bool "Support SH7750S processor"
384 config CPU_SUBTYPE_SH7751
385 bool "Support SH7751 processor"
388 Select SH7751 if you have a 166 Mhz SH-4 HD6417751 CPU,
389 or if you have a HD6417751R CPU.
391 config CPU_SUBTYPE_SH7751R
392 bool "Support SH7751R processor"
395 config CPU_SUBTYPE_SH7760
396 bool "Support SH7760 processor"
399 config CPU_SUBTYPE_SH4_202
400 bool "Support SH4-202 processor"
403 # SH-4A Processor Support
405 config CPU_SUBTYPE_SH7723
406 bool "Support SH7723 processor"
410 select ARCH_SPARSEMEM_ENABLE
411 select SYS_SUPPORTS_CMT
412 select ARCH_WANT_OPTIONAL_GPIOLIB
414 Select SH7723 if you have an SH-MobileR2 CPU.
416 config CPU_SUBTYPE_SH7724
417 bool "Support SH7724 processor"
421 select ARCH_SPARSEMEM_ENABLE
422 select SYS_SUPPORTS_CMT
423 select ARCH_WANT_OPTIONAL_GPIOLIB
425 Select SH7724 if you have an SH-MobileR2R CPU.
427 config CPU_SUBTYPE_SH7757
428 bool "Support SH7757 processor"
431 select ARCH_WANT_OPTIONAL_GPIOLIB
432 select USB_ARCH_HAS_OHCI
433 select USB_ARCH_HAS_EHCI
435 Select SH7757 if you have a SH4A SH7757 CPU.
437 config CPU_SUBTYPE_SH7763
438 bool "Support SH7763 processor"
440 select USB_ARCH_HAS_OHCI
441 select USB_OHCI_SH if USB_OHCI_HCD
443 Select SH7763 if you have a SH4A SH7763(R5S77631) CPU.
445 config CPU_SUBTYPE_SH7770
446 bool "Support SH7770 processor"
449 config CPU_SUBTYPE_SH7780
450 bool "Support SH7780 processor"
453 config CPU_SUBTYPE_SH7785
454 bool "Support SH7785 processor"
457 select ARCH_SPARSEMEM_ENABLE
458 select SYS_SUPPORTS_NUMA
459 select ARCH_WANT_OPTIONAL_GPIOLIB
461 config CPU_SUBTYPE_SH7786
462 bool "Support SH7786 processor"
465 select CPU_HAS_PTEAEX
466 select GENERIC_CLOCKEVENTS_BROADCAST if SMP
467 select ARCH_WANT_OPTIONAL_GPIOLIB
468 select USB_ARCH_HAS_OHCI
469 select USB_OHCI_SH if USB_OHCI_HCD
470 select USB_ARCH_HAS_EHCI
471 select USB_EHCI_SH if USB_EHCI_HCD
473 config CPU_SUBTYPE_SHX3
474 bool "Support SH-X3 processor"
477 select GENERIC_CLOCKEVENTS_BROADCAST if SMP
478 select ARCH_REQUIRE_GPIOLIB
480 # SH4AL-DSP Processor Support
482 config CPU_SUBTYPE_SH7343
483 bool "Support SH7343 processor"
486 select SYS_SUPPORTS_CMT
488 config CPU_SUBTYPE_SH7722
489 bool "Support SH7722 processor"
493 select ARCH_SPARSEMEM_ENABLE
494 select SYS_SUPPORTS_NUMA
495 select SYS_SUPPORTS_CMT
496 select ARCH_WANT_OPTIONAL_GPIOLIB
498 config CPU_SUBTYPE_SH7366
499 bool "Support SH7366 processor"
503 select ARCH_SPARSEMEM_ENABLE
504 select SYS_SUPPORTS_NUMA
505 select SYS_SUPPORTS_CMT
514 prompt "Processor sub-type selection"
516 # SH-5 Processor Support
518 config CPU_SUBTYPE_SH5_101
519 bool "Support SH5-101 processor"
522 config CPU_SUBTYPE_SH5_103
523 bool "Support SH5-103 processor"
530 source "arch/sh/mm/Kconfig"
532 source "arch/sh/Kconfig.cpu"
534 source "arch/sh/boards/Kconfig"
536 menu "Timer and clock configuration"
539 bool "TMU timer driver"
540 depends on SYS_SUPPORTS_TMU
543 This enables the build of the TMU timer driver.
546 bool "CMT timer driver"
547 depends on SYS_SUPPORTS_CMT
550 This enables build of the CMT timer driver.
553 bool "MTU2 timer driver"
554 depends on SYS_SUPPORTS_MTU2
557 This enables build of the MTU2 timer driver.
560 int "Peripheral clock frequency (in Hz)"
561 depends on SH_CLK_CPG_LEGACY
562 default "31250000" if CPU_SUBTYPE_SH7619
563 default "33333333" if CPU_SUBTYPE_SH7770 || \
564 CPU_SUBTYPE_SH7760 || \
565 CPU_SUBTYPE_SH7705 || \
566 CPU_SUBTYPE_SH7203 || \
567 CPU_SUBTYPE_SH7206 || \
568 CPU_SUBTYPE_SH7263 || \
570 default "60000000" if CPU_SUBTYPE_SH7751 || CPU_SUBTYPE_SH7751R
571 default "66000000" if CPU_SUBTYPE_SH4_202
574 This option is used to specify the peripheral clock frequency.
575 This is necessary for determining the reference clock value on
576 platforms lacking an RTC.
581 config SH_CLK_CPG_LEGACY
582 depends on SH_CLK_CPG
583 def_bool y if !CPU_SUBTYPE_SH7785 && !ARCH_SHMOBILE && \
584 !CPU_SHX3 && !CPU_SUBTYPE_SH7757
586 source "kernel/time/Kconfig"
590 menu "CPU Frequency scaling"
592 source "drivers/cpufreq/Kconfig"
595 tristate "SuperH CPU Frequency driver"
597 select CPU_FREQ_TABLE
599 This adds the cpufreq driver for SuperH. Any CPU that supports
600 clock rate rounding through the clock framework can use this
601 driver. While it will make the kernel slightly larger, this is
602 harmless for CPUs that don't support rate rounding. The driver
603 will also generate a notice in the boot log before disabling
604 itself if the CPU in question is not capable of rate rounding.
606 For details, take a look at <file:Documentation/cpu-freq>.
612 source "arch/sh/drivers/Kconfig"
616 menu "Kernel features"
618 source kernel/Kconfig.hz
621 bool "kexec system call (EXPERIMENTAL)"
622 depends on SUPERH32 && EXPERIMENTAL && MMU
624 kexec is a system call that implements the ability to shutdown your
625 current kernel, and to start another kernel. It is like a reboot
626 but it is independent of the system firmware. And like a reboot
627 you can start any kernel with it, not just Linux.
629 The name comes from the similarity to the exec system call.
631 It is an ongoing process to be certain the hardware in a machine
632 is properly shutdown, so do not be surprised if this code does not
633 initially work for you. It may help to enable device hotplugging
634 support. As of this writing the exact hardware interface is
635 strongly in flux, so no good recommendation can be made.
638 bool "kernel crash dumps (EXPERIMENTAL)"
639 depends on SUPERH32 && EXPERIMENTAL && BROKEN_ON_SMP
641 Generate crash dump after being started by kexec.
642 This should be normally only set in special crash dump kernels
643 which are loaded in the main kernel with kexec-tools into
644 a specially reserved region and then later executed after
645 a crash by kdump/kexec. The crash dump kernel must be compiled
646 to a memory address not used by the main kernel using
649 For more details see Documentation/kdump/kdump.txt
652 bool "kexec jump (EXPERIMENTAL)"
653 depends on SUPERH32 && KEXEC && HIBERNATION && EXPERIMENTAL
655 Jump between original kernel and kexeced kernel and invoke
658 config PHYSICAL_START
659 hex "Physical address where the kernel is loaded" if (EXPERT || CRASH_DUMP)
662 This gives the physical address where the kernel is loaded
663 and is ordinarily the same as MEMORY_START.
665 Different values are primarily used in the case of kexec on panic
666 where the fail safe kernel needs to run at a different address
667 than the panic-ed kernel.
670 bool "Enable seccomp to safely compute untrusted bytecode"
673 This kernel feature is useful for number crunching applications
674 that may need to compute untrusted bytecode during their
675 execution. By using pipes or other transports made available to
676 the process as file descriptors supporting the read/write
677 syscalls, it's possible to isolate those applications in
678 their own address space using seccomp. Once seccomp is
679 enabled via prctl, it cannot be disabled and the task is only
680 allowed to execute a few safe syscalls defined by each seccomp
686 bool "Symmetric multi-processing support"
687 depends on SYS_SUPPORTS_SMP
688 select USE_GENERIC_SMP_HELPERS
690 This enables support for systems with more than one CPU. If you have
691 a system with only one CPU, like most personal computers, say N. If
692 you have a system with more than one CPU, say Y.
694 If you say N here, the kernel will run on single and multiprocessor
695 machines, but will use only one CPU of a multiprocessor machine. If
696 you say Y here, the kernel will run on many, but not all,
697 singleprocessor machines. On a singleprocessor machine, the kernel
698 will run faster if you say N here.
700 People using multiprocessor machines who say Y here should also say
701 Y to "Enhanced Real Time Clock Support", below.
703 See also <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO
704 available at <http://www.tldp.org/docs.html#howto>.
706 If you don't know what to do here, say N.
709 int "Maximum number of CPUs (2-32)"
712 default "4" if CPU_SUBTYPE_SHX3
715 This allows you to specify the maximum number of CPUs which this
716 kernel will support. The maximum supported value is 32 and the
717 minimum value which makes sense is 2.
719 This is purely to save memory - each supported CPU adds
720 approximately eight kilobytes to the kernel image.
723 bool "Support for hot-pluggable CPUs (EXPERIMENTAL)"
724 depends on SMP && HOTPLUG && EXPERIMENTAL
726 Say Y here to experiment with turning CPUs off and on. CPUs
727 can be controlled through /sys/devices/system/cpu.
729 source "kernel/Kconfig.preempt"
733 depends on !SMP && SUPERH32
735 This enables support for gUSA (general UserSpace Atomicity).
736 This is the default implementation for both UP and non-ll/sc
737 CPUs, and is used by the libc, amongst others.
739 For additional information, design information can be found
740 in <http://lc.linux.or.jp/lc2002/papers/niibe0919p.pdf>.
742 This should only be disabled for special cases where alternate
743 atomicity implementations exist.
746 bool "Implement atomic operations by roll-back (gRB) (EXPERIMENTAL)"
747 depends on GUSA && CPU_SH3 || (CPU_SH4 && !CPU_SH4A)
749 Enabling this option will allow the kernel to implement some
750 atomic operations using a software implementation of load-locked/
751 store-conditional (LLSC). On machines which do not have hardware
752 LLSC, this should be more efficient than the other alternative of
753 disabling interrupts around the atomic sequence.
755 config HW_PERF_EVENTS
756 bool "Enable hardware performance counter support for perf events"
757 depends on PERF_EVENTS && CPU_HAS_PMU
760 Enable hardware performance counter support for perf events. If
761 disabled, perf events will use software events only.
763 source "drivers/sh/Kconfig"
769 config ZERO_PAGE_OFFSET
771 default "0x00010000" if PAGE_SIZE_64KB || SH_RTS7751R2D || \
772 SH_7751_SOLUTION_ENGINE
773 default "0x00004000" if PAGE_SIZE_16KB || SH_SH03
774 default "0x00002000" if PAGE_SIZE_8KB
777 This sets the default offset of zero page.
779 config BOOT_LINK_OFFSET
781 default "0x00210000" if SH_SHMIN
782 default "0x00400000" if SH_CAYMAN
783 default "0x00810000" if SH_7780_SOLUTION_ENGINE
784 default "0x009e0000" if SH_TITAN
785 default "0x01800000" if SH_SDK7780
786 default "0x02000000" if SH_EDOSK7760
789 This option allows you to set the link address offset of the zImage.
790 This can be useful if you are on a board which has a small amount of
795 default "0x00001000" if PAGE_SIZE_4KB
796 default "0x00002000" if PAGE_SIZE_8KB
797 default "0x00004000" if PAGE_SIZE_16KB
798 default "0x00010000" if PAGE_SIZE_64KB
801 config ROMIMAGE_MMCIF
802 bool "Include MMCIF loader in romImage (EXPERIMENTAL)"
803 depends on CPU_SUBTYPE_SH7724 && EXPERIMENTAL
805 Say Y here to include experimental MMCIF loading code in
806 romImage. With this enabled it is possible to write the romImage
807 kernel image to an MMC card and boot the kernel straight from
808 the reset vector. At reset the processor Mask ROM will load the
809 first part of the romImage which in turn loads the rest the kernel
810 image to RAM using the MMCIF hardware block.
813 prompt "Kernel command line"
815 default CMDLINE_OVERWRITE
817 Setting this option allows the kernel command line arguments
820 config CMDLINE_OVERWRITE
821 bool "Overwrite bootloader kernel arguments"
823 Given string will overwrite any arguments passed in by
826 config CMDLINE_EXTEND
827 bool "Extend bootloader kernel arguments"
829 Given string will be concatenated with arguments passed in
835 string "Kernel command line arguments string"
836 depends on CMDLINE_OVERWRITE || CMDLINE_EXTEND
837 default "console=ttySC1,115200"
844 tristate "SuperHyway Bus support"
845 depends on CPU_SUBTYPE_SH4_202
848 bool "Maple Bus support"
849 depends on SH_DREAMCAST
851 The Maple Bus is SEGA's serial communication bus for peripherals
852 on the Dreamcast. Without this bus support you won't be able to
853 get your Dreamcast keyboard etc to work, so most users
854 probably want to say 'Y' here, unless you are only using the
855 Dreamcast with a serial line terminal or a remote network
860 depends on SYS_SUPPORTS_PCI
862 select GENERIC_PCI_IOMAP
863 select NO_GENERIC_PCI_IOPORT_MAP
865 Find out whether you have a PCI motherboard. PCI is the name of a
866 bus system, i.e. the way the CPU talks to the other stuff inside
867 your box. If you have PCI, say Y, otherwise N.
872 source "drivers/pci/pcie/Kconfig"
874 source "drivers/pci/Kconfig"
876 source "drivers/pcmcia/Kconfig"
878 source "drivers/pci/hotplug/Kconfig"
882 menu "Executable file formats"
884 source "fs/Kconfig.binfmt"
888 menu "Power management options (EXPERIMENTAL)"
889 depends on EXPERIMENTAL
891 source "kernel/power/Kconfig"
893 source "drivers/cpuidle/Kconfig"
899 source "drivers/Kconfig"
903 source "arch/sh/Kconfig.debug"
905 source "security/Kconfig"
907 source "crypto/Kconfig"