string: factorize skip_spaces and export it to be generally available
[safe/jmp/linux-2.6] / arch / sh / Kconfig
index bef19f5..0031a69 100644 (file)
@@ -10,10 +10,21 @@ config SUPERH
        select EMBEDDED
        select HAVE_CLK
        select HAVE_IDE
+       select HAVE_LMB
        select HAVE_OPROFILE
        select HAVE_GENERIC_DMA_COHERENT
        select HAVE_IOREMAP_PROT if MMU
        select HAVE_ARCH_TRACEHOOK
+       select HAVE_DMA_API_DEBUG
+       select HAVE_DMA_ATTRS
+       select HAVE_PERF_EVENTS
+       select PERF_USE_VMALLOC
+       select HAVE_KERNEL_GZIP
+       select HAVE_KERNEL_BZIP2
+       select HAVE_KERNEL_LZMA
+       select HAVE_SYSCALL_TRACEPOINTS
+       select RTC_LIB
+       select GENERIC_ATOMIC64
        help
          The SuperH is a RISC processor targeted for use in embedded systems
          and consumer electronics; it was also used in the Sega Dreamcast
@@ -21,16 +32,20 @@ config SUPERH
          <http://www.linux-sh.org/>.
 
 config SUPERH32
-       def_bool !SUPERH64
+       def_bool ARCH = "sh"
        select HAVE_KPROBES
        select HAVE_KRETPROBES
        select HAVE_FUNCTION_TRACER
        select HAVE_FTRACE_MCOUNT_RECORD
        select HAVE_DYNAMIC_FTRACE
+       select HAVE_FUNCTION_TRACE_MCOUNT_TEST
+       select HAVE_FTRACE_NMI_ENTER if DYNAMIC_FTRACE
+       select HAVE_FUNCTION_GRAPH_TRACER
        select HAVE_ARCH_KGDB
+       select ARCH_HIBERNATION_POSSIBLE if MMU
 
 config SUPERH64
-       def_bool y if CPU_SH5
+       def_bool ARCH = "sh64"
 
 config ARCH_DEFCONFIG
        string
@@ -47,6 +62,10 @@ config GENERIC_BUG
        def_bool y
        depends on BUG && SUPERH32
 
+config GENERIC_CSUM
+       def_bool y
+       depends on SUPERH64
+
 config GENERIC_FIND_NEXT_BIT
        def_bool y
 
@@ -62,6 +81,9 @@ config GENERIC_HARDIRQS_NO__DO_IRQ
 config GENERIC_IRQ_PROBE
        def_bool y
 
+config IRQ_PER_CPU
+       def_bool y
+
 config GENERIC_GPIO
        def_bool n
 
@@ -72,14 +94,18 @@ config GENERIC_IOMAP
        bool
 
 config GENERIC_TIME
-       def_bool n
+       def_bool y
 
 config GENERIC_CLOCKEVENTS
-       def_bool n
+       def_bool y
 
 config GENERIC_CLOCKEVENTS_BROADCAST
        bool
 
+config GENERIC_CMOS_UPDATE
+       def_bool y
+       depends on SH_SH03 || SH_DREAMCAST
+
 config GENERIC_LOCKBREAK
        def_bool y
        depends on SMP && PREEMPT
@@ -98,6 +124,9 @@ config SYS_SUPPORTS_APM_EMULATION
        bool
        select ARCH_SUSPEND_POSSIBLE
 
+config SYS_SUPPORTS_HUGETLBFS
+       bool
+
 config SYS_SUPPORTS_SMP
        bool
 
@@ -107,6 +136,15 @@ config SYS_SUPPORTS_NUMA
 config SYS_SUPPORTS_PCI
        bool
 
+config SYS_SUPPORTS_CMT
+       bool
+
+config SYS_SUPPORTS_MTU2
+       bool
+
+config SYS_SUPPORTS_TMU
+       bool
+
 config STACKTRACE_SUPPORT
        def_bool y
 
@@ -126,9 +164,21 @@ config ARCH_HAS_ILOG2_U64
 config ARCH_NO_VIRT_TO_BUS
        def_bool y
 
+config ARCH_HAS_DEFAULT_IDLE
+       def_bool y
+
+config ARCH_HAS_CPU_IDLE_WAIT
+       def_bool y
+
 config IO_TRAPPED
        bool
 
+config DMA_COHERENT
+       bool
+
+config DMA_NONCOHERENT
+       def_bool !DMA_COHERENT
+
 source "init/Kconfig"
 
 source "kernel/Kconfig.freezer"
@@ -149,13 +199,15 @@ config CPU_SH3
        bool
        select CPU_HAS_INTEVT
        select CPU_HAS_SR_RB
+       select SYS_SUPPORTS_TMU
 
 config CPU_SH4
        bool
        select CPU_HAS_INTEVT
        select CPU_HAS_SR_RB
-       select CPU_HAS_PTEA if !CPU_SH4A || CPU_SHX2
        select CPU_HAS_FPU if !CPU_SH4AL_DSP
+       select SYS_SUPPORTS_TMU
+       select SYS_SUPPORTS_HUGETLBFS if MMU
 
 config CPU_SH4A
        bool
@@ -169,12 +221,23 @@ config CPU_SH4AL_DSP
 config CPU_SH5
        bool
        select CPU_HAS_FPU
+       select SYS_SUPPORTS_TMU
+       select SYS_SUPPORTS_HUGETLBFS if MMU
 
 config CPU_SHX2
        bool
 
 config CPU_SHX3
        bool
+       select DMA_COHERENT
+
+config ARCH_SHMOBILE
+       bool
+       select ARCH_SUSPEND_POSSIBLE
+       select PM
+       select PM_RUNTIME
+
+if SUPERH32
 
 choice
        prompt "Processor sub-type selection"
@@ -188,6 +251,7 @@ choice
 config CPU_SUBTYPE_SH7619
        bool "Support SH7619 processor"
        select CPU_SH2
+       select SYS_SUPPORTS_CMT
 
 # SH-2A Processor Support
 
@@ -195,24 +259,32 @@ config CPU_SUBTYPE_SH7201
        bool "Support SH7201 processor"
        select CPU_SH2A
        select CPU_HAS_FPU
+       select SYS_SUPPORTS_MTU2
  
 config CPU_SUBTYPE_SH7203
        bool "Support SH7203 processor"
        select CPU_SH2A
        select CPU_HAS_FPU
+       select SYS_SUPPORTS_CMT
+       select SYS_SUPPORTS_MTU2
 
 config CPU_SUBTYPE_SH7206
        bool "Support SH7206 processor"
        select CPU_SH2A
+       select SYS_SUPPORTS_CMT
+       select SYS_SUPPORTS_MTU2
 
 config CPU_SUBTYPE_SH7263
        bool "Support SH7263 processor"
        select CPU_SH2A
        select CPU_HAS_FPU
+       select SYS_SUPPORTS_CMT
+       select SYS_SUPPORTS_MTU2
 
 config CPU_SUBTYPE_MXG
        bool "Support MX-G processor"
        select CPU_SH2A
+       select SYS_SUPPORTS_MTU2
        help
          Select MX-G if running on an R8A03022BG part.
 
@@ -265,6 +337,7 @@ config CPU_SUBTYPE_SH7720
        bool "Support SH7720 processor"
        select CPU_SH3
        select CPU_HAS_DSP
+       select SYS_SUPPORTS_CMT
        help
          Select SH7720 if you have a SH3-DSP SH7720 CPU.
 
@@ -272,6 +345,7 @@ config CPU_SUBTYPE_SH7721
        bool "Support SH7721 processor"
        select CPU_SH3
        select CPU_HAS_DSP
+       select SYS_SUPPORTS_CMT
        help
          Select SH7721 if you have a SH3-DSP SH7721 CPU.
 
@@ -323,10 +397,29 @@ config CPU_SUBTYPE_SH7723
        bool "Support SH7723 processor"
        select CPU_SH4A
        select CPU_SHX2
+       select ARCH_SHMOBILE
        select ARCH_SPARSEMEM_ENABLE
+       select SYS_SUPPORTS_CMT
        help
          Select SH7723 if you have an SH-MobileR2 CPU.
 
+config CPU_SUBTYPE_SH7724
+       bool "Support SH7724 processor"
+       select CPU_SH4A
+       select CPU_SHX2
+       select ARCH_SHMOBILE
+       select ARCH_SPARSEMEM_ENABLE
+       select SYS_SUPPORTS_CMT
+       help
+         Select SH7724 if you have an SH-MobileR2R CPU.
+
+config CPU_SUBTYPE_SH7757
+       bool "Support SH7757 processor"
+       select CPU_SH4A
+       select CPU_SHX2
+       help
+         Select SH7757 if you have a SH4A SH7757 CPU.
+
 config CPU_SUBTYPE_SH7763
        bool "Support SH7763 processor"
        select CPU_SH4A
@@ -348,6 +441,16 @@ config CPU_SUBTYPE_SH7785
        select ARCH_SPARSEMEM_ENABLE
        select SYS_SUPPORTS_NUMA
 
+config CPU_SUBTYPE_SH7786
+       bool "Support SH7786 processor"
+       select CPU_SH4A
+       select CPU_SHX3
+       select CPU_HAS_PTEAEX
+       select ARCH_SPARSEMEM_ENABLE
+       select SYS_SUPPORTS_NUMA
+       select SYS_SUPPORTS_SMP
+       select GENERIC_CLOCKEVENTS_BROADCAST if SMP
+
 config CPU_SUBTYPE_SHX3
        bool "Support SH-X3 processor"
        select CPU_SH4A
@@ -362,20 +465,35 @@ config CPU_SUBTYPE_SHX3
 config CPU_SUBTYPE_SH7343
        bool "Support SH7343 processor"
        select CPU_SH4AL_DSP
+       select ARCH_SHMOBILE
+       select SYS_SUPPORTS_CMT
 
 config CPU_SUBTYPE_SH7722
        bool "Support SH7722 processor"
        select CPU_SH4AL_DSP
        select CPU_SHX2
+       select ARCH_SHMOBILE
        select ARCH_SPARSEMEM_ENABLE
        select SYS_SUPPORTS_NUMA
+       select SYS_SUPPORTS_CMT
 
 config CPU_SUBTYPE_SH7366
        bool "Support SH7366 processor"
        select CPU_SH4AL_DSP
        select CPU_SHX2
+       select ARCH_SHMOBILE
        select ARCH_SPARSEMEM_ENABLE
        select SYS_SUPPORTS_NUMA
+       select SYS_SUPPORTS_CMT
+
+endchoice
+
+endif
+
+if SUPERH64
+
+choice
+       prompt "Processor sub-type selection"
 
 # SH-5 Processor Support
 
@@ -389,6 +507,8 @@ config CPU_SUBTYPE_SH5_103
 
 endchoice
 
+endif
+
 source "arch/sh/mm/Kconfig"
  
 source "arch/sh/Kconfig.cpu"
@@ -397,38 +517,26 @@ source "arch/sh/boards/Kconfig"
 
 menu "Timer and clock configuration"
 
-config SH_TMU
-       def_bool y
-       prompt "TMU timer support"
-       depends on CPU_SH3 || CPU_SH4
-       select GENERIC_TIME
-       select GENERIC_CLOCKEVENTS
+config SH_TIMER_TMU
+       bool "TMU timer driver"
+       depends on SYS_SUPPORTS_TMU
+       default y
        help
-         This enables the use of the TMU as the system timer.
+         This enables the build of the TMU timer driver.
 
-config SH_CMT
-       def_bool y
-       prompt "CMT timer support"
-       depends on CPU_SH2 && !CPU_SUBTYPE_MXG
+config SH_TIMER_CMT
+       bool "CMT timer driver"
+       depends on SYS_SUPPORTS_CMT
+       default y
        help
-         This enables the use of the CMT as the system timer.
+         This enables build of the CMT timer driver.
 
-config SH_MTU2
-       def_bool n
-       prompt "MTU2 timer support"
-       depends on CPU_SH2A
+config SH_TIMER_MTU2
+       bool "MTU2 timer driver"
+       depends on SYS_SUPPORTS_MTU2
+       default y
        help
-         This enables the use of the MTU2 as the system timer.
-
-config SH_TIMER_IRQ
-       int
-       default "28" if CPU_SUBTYPE_SH7780 || CPU_SUBTYPE_SH7785 || \
-                       CPU_SUBTYPE_SH7763
-       default "86" if CPU_SUBTYPE_SH7619
-       default "140" if CPU_SUBTYPE_SH7206
-       default "142" if CPU_SUBTYPE_SH7203
-       default "238" if CPU_SUBTYPE_MXG
-       default "16"
+         This enables build of the MTU2 timer driver.
 
 config SH_PCLK_FREQ
        int "Peripheral clock frequency (in Hz)"
@@ -438,7 +546,8 @@ config SH_PCLK_FREQ
        default "33333333" if CPU_SUBTYPE_SH7770 || CPU_SUBTYPE_SH7723 || \
                              CPU_SUBTYPE_SH7760 || CPU_SUBTYPE_SH7705 || \
                              CPU_SUBTYPE_SH7203 || CPU_SUBTYPE_SH7206 || \
-                             CPU_SUBTYPE_SH7263 || CPU_SUBTYPE_MXG
+                             CPU_SUBTYPE_SH7263 || CPU_SUBTYPE_MXG    || \
+                             CPU_SUBTYPE_SH7786 || CPU_SUBTYPE_SH7724
        default "60000000" if CPU_SUBTYPE_SH7751 || CPU_SUBTYPE_SH7751R
        default "66000000" if CPU_SUBTYPE_SH4_202
        default "50000000"
@@ -447,6 +556,13 @@ config SH_PCLK_FREQ
          This is necessary for determining the reference clock value on
          platforms lacking an RTC.
 
+config SH_CLK_CPG
+       def_bool y
+
+config SH_CLK_CPG_LEGACY
+       depends on SH_CLK_CPG
+       def_bool y if !CPU_SUBTYPE_SH7785 && !ARCH_SHMOBILE
+
 config SH_CLK_MD
        int "CPU Mode Pin Setting"
        depends on CPU_SH2
@@ -486,16 +602,13 @@ source "arch/sh/drivers/Kconfig"
 
 endmenu
 
-config ISA_DMA_API
-       bool
-
 menu "Kernel features"
 
 source kernel/Kconfig.hz
 
 config KEXEC
        bool "kexec system call (EXPERIMENTAL)"
-       depends on SUPERH32 && EXPERIMENTAL
+       depends on SUPERH32 && EXPERIMENTAL && MMU
        help
          kexec is a system call that implements the ability to shutdown your
          current kernel, and to start another kernel.  It is like a reboot
@@ -524,6 +637,13 @@ config CRASH_DUMP
 
          For more details see Documentation/kdump/kdump.txt
 
+config KEXEC_JUMP
+       bool "kexec jump (EXPERIMENTAL)"
+       depends on SUPERH32 && KEXEC && HIBERNATION && EXPERIMENTAL
+       help
+         Jump between original kernel and kexeced kernel and invoke
+         code via KEXEC
+
 config SECCOMP
        bool "Enable seccomp to safely compute untrusted bytecode"
        depends on PROC_FS
@@ -567,7 +687,7 @@ config NR_CPUS
        int "Maximum number of CPUs (2-32)"
        range 2 32
        depends on SMP
-       default "4" if CPU_SHX3
+       default "4" if CPU_SUBTYPE_SHX3
        default "2"
        help
          This allows you to specify the maximum number of CPUs which this
@@ -598,114 +718,114 @@ config GUSA_RB
        depends on GUSA && CPU_SH3 || (CPU_SH4 && !CPU_SH4A)
        help
          Enabling this option will allow the kernel to implement some
-         atomic operations using a software implemention of load-locked/
+         atomic operations using a software implementation of load-locked/
          store-conditional (LLSC). On machines which do not have hardware
          LLSC, this should be more efficient than the other alternative of
-         disabling insterrupts around the atomic sequence.
+         disabling interrupts around the atomic sequence.
+
+config SPARSE_IRQ
+       bool "Support sparse irq numbering"
+       depends on EXPERIMENTAL
+       help
+         This enables support for sparse irqs. This is useful in general
+         as most CPUs have a fairly sparse array of IRQ vectors, which
+         the irq_desc then maps directly on to. Systems with a high
+         number of off-chip IRQs will want to treat this as
+         experimental until they have been independently verified.
+
+         If you don't know what to do here, say N.
 
 endmenu
 
 menu "Boot options"
 
 config ZERO_PAGE_OFFSET
-       hex "Zero page offset"
-       default "0x00004000" if SH_SH03
-       default "0x00010000" if PAGE_SIZE_64KB
+       hex
+       default "0x00010000" if PAGE_SIZE_64KB || SH_RTS7751R2D || \
+                               SH_7751_SOLUTION_ENGINE
+       default "0x00004000" if PAGE_SIZE_16KB || SH_SH03
        default "0x00002000" if PAGE_SIZE_8KB
        default "0x00001000"
        help
          This sets the default offset of zero page.
 
 config BOOT_LINK_OFFSET
-       hex "Link address offset for booting"
+       hex
+       default "0x00210000" if SH_SHMIN
+       default "0x00400000" if SH_CAYMAN
+       default "0x00810000" if SH_7780_SOLUTION_ENGINE
+       default "0x009e0000" if SH_TITAN
+       default "0x01800000" if SH_SDK7780
+       default "0x02000000" if SH_EDOSK7760
        default "0x00800000"
        help
          This option allows you to set the link address offset of the zImage.
          This can be useful if you are on a board which has a small amount of
          memory.
 
-config UBC_WAKEUP
-       bool "Wakeup UBC on startup"
-       depends on CPU_SH4 && !CPU_SH4A
+config ENTRY_OFFSET
+       hex
+       default "0x00001000" if PAGE_SIZE_4KB
+       default "0x00002000" if PAGE_SIZE_8KB
+       default "0x00004000" if PAGE_SIZE_16KB
+       default "0x00010000" if PAGE_SIZE_64KB
+       default "0x00000000"
+
+choice
+       prompt "Kernel command line"
+       optional
+       default CMDLINE_OVERWRITE
        help
-         Selecting this option will wakeup the User Break Controller (UBC) on
-         startup. Although the UBC is left in an awake state when the processor
-         comes up, some boot loaders misbehave by putting the UBC to sleep in a
-         power saving state, which causes issues with things like ptrace().
+         Setting this option allows the kernel command line arguments
+         to be set.
 
-         If unsure, say N.
+config CMDLINE_OVERWRITE
+       bool "Overwrite bootloader kernel arguments"
+       help
+         Given string will overwrite any arguments passed in by
+         a bootloader.
+
+config CMDLINE_EXTEND
+       bool "Extend bootloader kernel arguments"
+       help
+         Given string will be concatenated with arguments passed in
+         by a bootloader.
 
-config CMDLINE_BOOL
-       bool "Default bootloader kernel arguments"
+endchoice
 
 config CMDLINE
-       string "Initial kernel command string"
-       depends on CMDLINE_BOOL
+       string "Kernel command line arguments string"
+       depends on CMDLINE_OVERWRITE || CMDLINE_EXTEND
        default "console=ttySC1,115200"
 
 endmenu
 
 menu "Bus options"
 
-# Even on SuperH devices which don't have an ISA bus,
-# this variable helps the PCMCIA modules handle
-# IRQ requesting properly -- Greg Banks.
-#
-# Though we're generally not interested in it when
-# we're not using PCMCIA, so we make it dependent on
-# PCMCIA outright. -- PFM.
-config ISA
-       def_bool y
-       depends on PCMCIA && HD6446X_SERIES
-       help
-         Find out whether you have ISA slots on your motherboard.  ISA is the
-         name of a bus system, i.e. the way the CPU talks to the other stuff
-         inside your box.  Other bus systems are PCI, EISA, MicroChannel
-         (MCA) or VESA.  ISA is an older system, now being displaced by PCI;
-         newer boards don't support it.  If you have ISA, say Y, otherwise N.
-
-config EISA
-       bool
-       ---help---
-         The Extended Industry Standard Architecture (EISA) bus was
-         developed as an open alternative to the IBM MicroChannel bus.
-
-         The EISA bus provided some of the features of the IBM MicroChannel
-         bus while maintaining backward compatibility with cards made for
-         the older ISA bus.  The EISA bus saw limited use between 1988 and
-         1995 when it was made obsolete by the PCI bus.
-
-         Say Y here if you are building a kernel for an EISA-based machine.
-
-         Otherwise, say N.
-
-config MCA
-       bool
-       help
-         MicroChannel Architecture is found in some IBM PS/2 machines and
-         laptops.  It is a bus system similar to PCI or ISA. See
-         <file:Documentation/mca.txt> (and especially the web page given
-         there) before attempting to build an MCA bus kernel.
-
-config SBUS
-       bool
-
 config SUPERHYWAY
        tristate "SuperHyway Bus support"
        depends on CPU_SUBTYPE_SH4_202
 
 config MAPLE
-       bool "Maple Bus support"
-       depends on SH_DREAMCAST
-       help
-         The Maple Bus is SEGA's serial communication bus for peripherals
-         on the Dreamcast. Without this bus support you won't be able to
-         get your Dreamcast keyboard etc to work, so most users
-         probably want to say 'Y' here, unless you are only using the
-         Dreamcast with a serial line terminal or a remote network
-         connection.
-
-source "arch/sh/drivers/pci/Kconfig"
+       bool "Maple Bus support"
+       depends on SH_DREAMCAST
+       help
+        The Maple Bus is SEGA's serial communication bus for peripherals
+        on the Dreamcast. Without this bus support you won't be able to
+        get your Dreamcast keyboard etc to work, so most users
+        probably want to say 'Y' here, unless you are only using the
+        Dreamcast with a serial line terminal or a remote network
+        connection.
+
+config PCI
+       bool "PCI support"
+       depends on SYS_SUPPORTS_PCI
+       help
+         Find out whether you have a PCI motherboard. PCI is the name of a
+         bus system, i.e. the way the CPU talks to the other stuff inside
+         your box. If you have PCI, say Y, otherwise N.
+
+source "drivers/pci/pcie/Kconfig"
 
 source "drivers/pci/Kconfig"