sh: Rework CPU/board dependencies.
authorPaul Mundt <lethal@linux-sh.org>
Mon, 14 May 2007 08:29:12 +0000 (17:29 +0900)
committerPaul Mundt <lethal@hera.kernel.org>
Fri, 8 Jun 2007 02:43:38 +0000 (02:43 +0000)
This was a big mess, rework the logic a bit so that we constrain
to a particular subtype and figure out the board support based
on that. This makes building subtype specific kernels supporting
multiple boards possible again.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
arch/sh/Kconfig
arch/sh/boards/renesas/r7780rp/Kconfig
arch/sh/mm/Kconfig

index 038179e..4c9d8fc 100644 (file)
@@ -81,24 +81,146 @@ source "init/Kconfig"
 
 menu "System type"
 
-config SOLUTION_ENGINE
-       bool
+source "arch/sh/mm/Kconfig"
+
+menu "Processor features"
 
 choice
-       prompt "SuperH system type"
-       default SH_UNKNOWN
+       prompt "Endianess selection" 
+       default CPU_LITTLE_ENDIAN
+       help
+         Some SuperH machines can be configured for either little or big
+         endian byte order. These modes require different kernels.
+
+config CPU_LITTLE_ENDIAN
+       bool "Little Endian"
+
+config CPU_BIG_ENDIAN
+       bool "Big Endian"
+
+endchoice
+
+config SH_FPU
+       bool "FPU support"
+       depends on !CPU_SH3
+       default y
+       help
+         Selecting this option will enable support for SH processors that
+         have FPU units (ie, SH77xx).
+
+         This option must be set in order to enable the FPU.
+
+config SH_FPU_EMU
+       bool "FPU emulation support"
+       depends on !SH_FPU && EXPERIMENTAL
+       default n
+       help
+         Selecting this option will enable support for software FPU emulation.
+         Most SH-3 users will want to say Y here, whereas most SH-4 users will
+         want to say N.
+
+config SH_DSP
+       bool "DSP support"
+       default y if SH4AL_DSP || !CPU_SH4
+       default n
+       help
+         Selecting this option will enable support for SH processors that
+         have DSP units (ie, SH2-DSP, SH3-DSP, and SH4AL-DSP).
+
+         This option must be set in order to enable the DSP.
+
+config SH_ADC
+       bool "ADC support"
+       depends on CPU_SH3
+       default y
+       help
+         Selecting this option will allow the Linux kernel to use SH3 on-chip
+         ADC module.
+
+         If unsure, say N.
+
+config SH_STORE_QUEUES
+       bool "Support for Store Queues"
+       depends on CPU_SH4
+       help
+         Selecting this option will enable an in-kernel API for manipulating
+         the store queues integrated in the SH-4 processors.
+
+config SPECULATIVE_EXECUTION
+       bool "Speculative subroutine return"
+       depends on CPU_SUBTYPE_SH7780 && EXPERIMENTAL
+       help
+         This enables support for a speculative instruction fetch for
+         subroutine return. There are various pitfalls associated with
+         this, as outlined in the SH7780 hardware manual.
+
+         If unsure, say N.
+
+config CPU_HAS_INTEVT
+       bool
+
+config CPU_HAS_PINT_IRQ
+       bool
+
+config CPU_HAS_MASKREG_IRQ
+       bool
+
+config CPU_HAS_INTC2_IRQ
+       bool
+
+config CPU_HAS_IPR_IRQ
+       bool
+
+config CPU_HAS_SR_RB
+       bool "CPU has SR.RB"
+       depends on CPU_SH3 || CPU_SH4
+       default y
+       help
+         This will enable the use of SR.RB register bank usage. Processors
+         that are lacking this bit must have another method in place for
+         accomplishing what is taken care of by the banked registers.
+
+         See <file:Documentation/sh/register-banks.txt> for further
+         information on SR.RB and register banking in the kernel in general.
+
+config CPU_HAS_PTEA
+       bool
+
+endmenu
+
+menu "Board support"
+
+config SOLUTION_ENGINE
+       bool
 
 config SH_SOLUTION_ENGINE
        bool "SolutionEngine"
        select SOLUTION_ENGINE
+       depends on CPU_SUBTYPE_SH7709 || CPU_SUBTYPE_SH7750
        help
          Select SolutionEngine if configuring for a Hitachi SH7709
          or SH7750 evaluation board.
 
+config SH_7206_SOLUTION_ENGINE
+       bool "SolutionEngine7206"
+       select SOLUTION_ENGINE
+       depends on CPU_SUBTYPE_SH7206
+       help
+         Select 7206 SolutionEngine if configuring for a Hitachi SH7206
+         evaluation board.
+
+config SH_7619_SOLUTION_ENGINE
+       bool "SolutionEngine7619"
+       select SOLUTION_ENGINE
+       depends on CPU_SUBTYPE_SH7619
+       help
+         Select 7619 SolutionEngine if configuring for a Hitachi SH7619
+         evaluation board.
+       
 config SH_7722_SOLUTION_ENGINE
        bool "SolutionEngine7722"
        select SOLUTION_ENGINE
-       select CPU_SUBTYPE_SH7722
+       depends on CPU_SUBTYPE_SH7722
        help
          Select 7722 SolutionEngine if configuring for a Hitachi SH772
          evaluation board.
@@ -106,7 +228,7 @@ config SH_7722_SOLUTION_ENGINE
 config SH_7751_SOLUTION_ENGINE
        bool "SolutionEngine7751"
        select SOLUTION_ENGINE
-       select CPU_SUBTYPE_SH7751
+       depends on CPU_SUBTYPE_SH7751
        help
          Select 7751 SolutionEngine if configuring for a Hitachi SH7751
          evaluation board.
@@ -114,7 +236,7 @@ config SH_7751_SOLUTION_ENGINE
 config SH_7780_SOLUTION_ENGINE
        bool "SolutionEngine7780"
        select SOLUTION_ENGINE
-       select CPU_SUBTYPE_SH7780
+       depends on CPU_SUBTYPE_SH7780
        help
          Select 7780 SolutionEngine if configuring for a Renesas SH7780
          evaluation board.
@@ -122,7 +244,7 @@ config SH_7780_SOLUTION_ENGINE
 config SH_7300_SOLUTION_ENGINE
        bool "SolutionEngine7300"
        select SOLUTION_ENGINE
-       select CPU_SUBTYPE_SH7300
+       depends on CPU_SUBTYPE_SH7300
        help
          Select 7300 SolutionEngine if configuring for a Hitachi
          SH7300(SH-Mobile V) evaluation board.
@@ -130,22 +252,22 @@ config SH_7300_SOLUTION_ENGINE
 config SH_7343_SOLUTION_ENGINE
        bool "SolutionEngine7343"
        select SOLUTION_ENGINE
-       select CPU_SUBTYPE_SH7343
+       depends on CPU_SUBTYPE_SH7343
        help
          Select 7343 SolutionEngine if configuring for a Hitachi
          SH7343 (SH-Mobile 3AS) evaluation board.
 
 config SH_73180_SOLUTION_ENGINE
-       bool "SolutionEngine73180"
+       bool "SolutionEngine73180"
        select SOLUTION_ENGINE
-       select CPU_SUBTYPE_SH73180
+       depends on CPU_SUBTYPE_SH73180
        help
          Select 73180 SolutionEngine if configuring for a Hitachi
          SH73180(SH-Mobile 3) evaluation board.
 
 config SH_7751_SYSTEMH
        bool "SystemH7751R"
-       select CPU_SUBTYPE_SH7751R
+       depends on CPU_SUBTYPE_SH7751R
        help
          Select SystemH if you are configuring for a Renesas SystemH
          7751R evaluation board.
@@ -153,6 +275,7 @@ config SH_7751_SYSTEMH
 config SH_HP6XX
        bool "HP6XX"
        select SYS_SUPPORTS_APM_EMULATION
+       depends on CPU_SUBTYPE_SH7709
        help
          Select HP6XX if configuring for a HP jornada HP6xx.
          More information (hardware only) at
@@ -160,13 +283,13 @@ config SH_HP6XX
 
 config SH_SATURN
        bool "Saturn"
-       select CPU_SUBTYPE_SH7604
+       depends on CPU_SUBTYPE_SH7604
        help
          Select Saturn if configuring for a SEGA Saturn.
 
 config SH_DREAMCAST
        bool "Dreamcast"
-       select CPU_SUBTYPE_SH7091
+       depends on CPU_SUBTYPE_SH7091
        help
          Select Dreamcast if configuring for a SEGA Dreamcast.
          More information at
@@ -175,6 +298,7 @@ config SH_DREAMCAST
 
 config SH_MPC1211
        bool "Interface MPC1211"
+       depends on CPU_SUBTYPE_SH7751 && BROKEN
        help
          CTP/PCI-SH02 is a CPU module computer that is produced
          by Interface Corporation.
@@ -182,6 +306,7 @@ config SH_MPC1211
 
 config SH_SH03
        bool "Interface CTP/PCI-SH03"
+       depends on CPU_SUBTYPE_SH7751 && BROKEN
        help
          CTP/PCI-SH03 is a CPU module computer that is produced
          by Interface Corporation.
@@ -189,7 +314,7 @@ config SH_SH03
 
 config SH_SECUREEDGE5410
        bool "SecureEdge5410"
-       select CPU_SUBTYPE_SH7751R
+       depends on CPU_SUBTYPE_SH7751R
        help
          Select SecureEdge5410 if configuring for a SnapGear SH board.
          This includes both the OEM SecureEdge products as well as the
@@ -197,75 +322,62 @@ config SH_SECUREEDGE5410
 
 config SH_HS7751RVOIP
        bool "HS7751RVOIP"
-       select CPU_SUBTYPE_SH7751R
+       depends on CPU_SUBTYPE_SH7751R
        help
          Select HS7751RVOIP if configuring for a Renesas Technology
          Sales VoIP board.
 
 config SH_7710VOIPGW
        bool "SH7710-VOIP-GW"
-       select CPU_SUBTYPE_SH7710
+       depends on CPU_SUBTYPE_SH7710
        help
          Select this option to build a kernel for the SH7710 based
          VOIP GW.
 
 config SH_RTS7751R2D
        bool "RTS7751R2D"
-       select CPU_SUBTYPE_SH7751R
+       depends on CPU_SUBTYPE_SH7751R
        help
          Select RTS7751R2D if configuring for a Renesas Technology
          Sales SH-Graphics board.
 
 config SH_HIGHLANDER
        bool "Highlander"
+       depends on CPU_SUBTYPE_SH7780 || CPU_SUBTYPE_SH7785
 
 config SH_EDOSK7705
        bool "EDOSK7705"
-       select CPU_SUBTYPE_SH7705
+       depends on CPU_SUBTYPE_SH7705
 
 config SH_SH4202_MICRODEV
        bool "SH4-202 MicroDev"
-       select CPU_SUBTYPE_SH4_202
+       depends on CPU_SUBTYPE_SH4_202
        help
          Select SH4-202 MicroDev if configuring for a SuperH MicroDev board
          with an SH4-202 CPU.
 
 config SH_LANDISK
        bool "LANDISK"
-       select CPU_SUBTYPE_SH7751R
+       depends on CPU_SUBTYPE_SH7751R
        help
          I-O DATA DEVICE, INC. "LANDISK Series" support.
 
 config SH_TITAN
        bool "TITAN"
-       select CPU_SUBTYPE_SH7751R
+       depends on CPU_SUBTYPE_SH7751R
        help
          Select Titan if you are configuring for a Nimble Microsystems
          NetEngine NP51R.
 
 config SH_SHMIN
        bool "SHMIN"
-       select CPU_SUBTYPE_SH7706
+       depends on CPU_SUBTYPE_SH7706
        help
          Select SHMIN if configuring for the SHMIN board.
 
-config SH_7206_SOLUTION_ENGINE
-       bool "SolutionEngine7206"
-       select CPU_SUBTYPE_SH7206
-       help
-         Select 7206 SolutionEngine if configuring for a Hitachi SH7206
-         evaluation board.
-
-config SH_7619_SOLUTION_ENGINE
-       bool "SolutionEngine7619"
-       select CPU_SUBTYPE_SH7619
-       help
-         Select 7619 SolutionEngine if configuring for a Hitachi SH7619
-         evaluation board.
-       
 config SH_LBOX_RE2
        bool "L-BOX RE2"
-       select CPU_SUBTYPE_SH7751R
+       depends on CPU_SUBTYPE_SH7751R
        help
          Select L-BOX RE2 if configuring for the NTT COMWARE L-BOX RE2.
 
@@ -281,14 +393,12 @@ config SH_UNKNOWN
 
          This option is for the early stages of porting to a new machine.
 
-endchoice
+endmenu
 
 source "arch/sh/boards/renesas/hs7751rvoip/Kconfig"
 source "arch/sh/boards/renesas/rts7751r2d/Kconfig"
 source "arch/sh/boards/renesas/r7780rp/Kconfig"
 
-source "arch/sh/mm/Kconfig"
-
 config CF_ENABLER
        bool "Compact Flash Enabler support"
        depends on SH_SOLUTION_ENGINE || SH_UNKNOWN || SH_SH03
@@ -332,110 +442,6 @@ config CF_BASE_ADDR
        default "0xb8000000" if CF_AREA6
        default "0xb4000000" if CF_AREA5
 
-menu "Processor features"
-
-choice
-       prompt "Endianess selection" 
-       default CPU_LITTLE_ENDIAN
-       help
-         Some SuperH machines can be configured for either little or big
-         endian byte order. These modes require different kernels.
-
-config CPU_LITTLE_ENDIAN
-       bool "Little Endian"
-
-config CPU_BIG_ENDIAN
-       bool "Big Endian"
-
-endchoice
-
-config SH_FPU
-       bool "FPU support"
-       depends on !CPU_SH3
-       default y
-       help
-         Selecting this option will enable support for SH processors that
-         have FPU units (ie, SH77xx).
-
-         This option must be set in order to enable the FPU.
-
-config SH_FPU_EMU
-       bool "FPU emulation support"
-       depends on !SH_FPU && EXPERIMENTAL
-       default n
-       help
-         Selecting this option will enable support for software FPU emulation.
-         Most SH-3 users will want to say Y here, whereas most SH-4 users will
-         want to say N.
-
-config SH_DSP
-       bool "DSP support"
-       default y if SH4AL_DSP || !CPU_SH4
-       default n
-       help
-         Selecting this option will enable support for SH processors that
-         have DSP units (ie, SH2-DSP, SH3-DSP, and SH4AL-DSP).
-
-         This option must be set in order to enable the DSP.
-
-config SH_ADC
-       bool "ADC support"
-       depends on CPU_SH3
-       default y
-       help
-         Selecting this option will allow the Linux kernel to use SH3 on-chip
-         ADC module.
-
-         If unsure, say N.
-
-config SH_STORE_QUEUES
-       bool "Support for Store Queues"
-       depends on CPU_SH4
-       help
-         Selecting this option will enable an in-kernel API for manipulating
-         the store queues integrated in the SH-4 processors.
-
-config SPECULATIVE_EXECUTION
-       bool "Speculative subroutine return"
-       depends on CPU_SUBTYPE_SH7780 && EXPERIMENTAL
-       help
-         This enables support for a speculative instruction fetch for
-         subroutine return. There are various pitfalls associated with
-         this, as outlined in the SH7780 hardware manual.
-
-         If unsure, say N.
-
-config CPU_HAS_INTEVT
-       bool
-
-config CPU_HAS_PINT_IRQ
-       bool
-
-config CPU_HAS_MASKREG_IRQ
-       bool
-
-config CPU_HAS_INTC2_IRQ
-       bool
-
-config CPU_HAS_IPR_IRQ
-       bool
-
-config CPU_HAS_SR_RB
-       bool "CPU has SR.RB"
-       depends on CPU_SH3 || CPU_SH4
-       default y
-       help
-         This will enable the use of SR.RB register bank usage. Processors
-         that are lacking this bit must have another method in place for
-         accomplishing what is taken care of by the banked registers.
-
-         See <file:Documentation/sh/register-banks.txt> for further
-         information on SR.RB and register banking in the kernel in general.
-
-config CPU_HAS_PTEA
-       bool
-
-endmenu
 
 menu "Timer and clock configuration"
 
index 9fb1164..fc8f28e 100644 (file)
@@ -6,18 +6,18 @@ choice
 
 config SH_R7780RP
        bool "R7780RP-1 board support"
-       select CPU_SUBTYPE_SH7780
+       depends on CPU_SUBTYPE_SH7780
 
 config SH_R7780MP
        bool "R7780MP board support"
-       select CPU_SUBTYPE_SH7780
+       depends on CPU_SUBTYPE_SH7780
        help
          Selecting this option will enable support for the mass-production
          version of the R7780RP. If in doubt, say Y.
 
 config SH_R7785RP
        bool "R7785RP board support"
-       select CPU_SUBTYPE_SH7785
+       depends on CPU_SUBTYPE_SH7785
 
 endchoice
 
index 253346d..8f826b0 100644 (file)
@@ -1,5 +1,3 @@
-menu "Processor selection"
-
 #
 # Processor families
 #
@@ -38,11 +36,14 @@ config CPU_SUBTYPE_ST40
 config CPU_SHX2
        bool
 
+choice
+       prompt "Processor sub-type selection"
+
 #
 # Processor subtypes
 #
 
-comment "SH-2 Processor Support"
+# SH-2 Processor Support
 
 config CPU_SUBTYPE_SH7604
        bool "Support SH7604 processor"
@@ -52,13 +53,13 @@ config CPU_SUBTYPE_SH7619
        bool "Support SH7619 processor"
        select CPU_SH2
 
-comment "SH-2A Processor Support"
+# SH-2A Processor Support
 
 config CPU_SUBTYPE_SH7206
        bool "Support SH7206 processor"
        select CPU_SH2A
 
-comment "SH-3 Processor Support"
+# SH-3 Processor Support
 
 config CPU_SUBTYPE_SH7300
        bool "Support SH7300 processor"
@@ -113,7 +114,7 @@ config CPU_SUBTYPE_SH7712
        help
          Select SH7712 if you have a SH3-DSP SH7712 CPU.
 
-comment "SH-4 Processor Support"
+# SH-4 Processor Support
 
 config CPU_SUBTYPE_SH7750
        bool "Support SH7750 processor"
@@ -166,7 +167,7 @@ config CPU_SUBTYPE_SH4_202
        bool "Support SH4-202 processor"
        select CPU_SH4
 
-comment "ST40 Processor Support"
+# ST40 Processor Support
 
 config CPU_SUBTYPE_ST40STB1
        bool "Support ST40STB1/ST40RA processors"
@@ -181,7 +182,7 @@ config CPU_SUBTYPE_ST40GX1
        help
          Select ST40GX1 if you have a ST40GX1 CPU.
 
-comment "SH-4A Processor Support"
+# SH-4A Processor Support
 
 config CPU_SUBTYPE_SH7770
        bool "Support SH7770 processor"
@@ -198,7 +199,7 @@ config CPU_SUBTYPE_SH7785
        select CPU_SHX2
        select CPU_HAS_INTC2_IRQ
 
-comment "SH4AL-DSP Processor Support"
+# SH4AL-DSP Processor Support
 
 config CPU_SUBTYPE_SH73180
        bool "Support SH73180 processor"
@@ -214,7 +215,7 @@ config CPU_SUBTYPE_SH7722
        select CPU_SHX2
        select CPU_HAS_IPR_IRQ
 
-endmenu
+endchoice
 
 menu "Memory management options"