Commit f3d22298 authored by Paul Mundt's avatar Paul Mundt Committed by Paul Mundt

sh: Rework CPU/board dependencies.

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: default avatarPaul Mundt <lethal@linux-sh.org>
parent 882c12c4
...@@ -81,24 +81,146 @@ source "init/Kconfig" ...@@ -81,24 +81,146 @@ source "init/Kconfig"
menu "System type" menu "System type"
config SOLUTION_ENGINE source "arch/sh/mm/Kconfig"
bool
menu "Processor features"
choice choice
prompt "SuperH system type" prompt "Endianess selection"
default SH_UNKNOWN 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 config SH_SOLUTION_ENGINE
bool "SolutionEngine" bool "SolutionEngine"
select SOLUTION_ENGINE select SOLUTION_ENGINE
depends on CPU_SUBTYPE_SH7709 || CPU_SUBTYPE_SH7750
help help
Select SolutionEngine if configuring for a Hitachi SH7709 Select SolutionEngine if configuring for a Hitachi SH7709
or SH7750 evaluation board. 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 config SH_7722_SOLUTION_ENGINE
bool "SolutionEngine7722" bool "SolutionEngine7722"
select SOLUTION_ENGINE select SOLUTION_ENGINE
select CPU_SUBTYPE_SH7722 depends on CPU_SUBTYPE_SH7722
help help
Select 7722 SolutionEngine if configuring for a Hitachi SH772 Select 7722 SolutionEngine if configuring for a Hitachi SH772
evaluation board. evaluation board.
...@@ -106,7 +228,7 @@ config SH_7722_SOLUTION_ENGINE ...@@ -106,7 +228,7 @@ config SH_7722_SOLUTION_ENGINE
config SH_7751_SOLUTION_ENGINE config SH_7751_SOLUTION_ENGINE
bool "SolutionEngine7751" bool "SolutionEngine7751"
select SOLUTION_ENGINE select SOLUTION_ENGINE
select CPU_SUBTYPE_SH7751 depends on CPU_SUBTYPE_SH7751
help help
Select 7751 SolutionEngine if configuring for a Hitachi SH7751 Select 7751 SolutionEngine if configuring for a Hitachi SH7751
evaluation board. evaluation board.
...@@ -114,7 +236,7 @@ config SH_7751_SOLUTION_ENGINE ...@@ -114,7 +236,7 @@ config SH_7751_SOLUTION_ENGINE
config SH_7780_SOLUTION_ENGINE config SH_7780_SOLUTION_ENGINE
bool "SolutionEngine7780" bool "SolutionEngine7780"
select SOLUTION_ENGINE select SOLUTION_ENGINE
select CPU_SUBTYPE_SH7780 depends on CPU_SUBTYPE_SH7780
help help
Select 7780 SolutionEngine if configuring for a Renesas SH7780 Select 7780 SolutionEngine if configuring for a Renesas SH7780
evaluation board. evaluation board.
...@@ -122,7 +244,7 @@ config SH_7780_SOLUTION_ENGINE ...@@ -122,7 +244,7 @@ config SH_7780_SOLUTION_ENGINE
config SH_7300_SOLUTION_ENGINE config SH_7300_SOLUTION_ENGINE
bool "SolutionEngine7300" bool "SolutionEngine7300"
select SOLUTION_ENGINE select SOLUTION_ENGINE
select CPU_SUBTYPE_SH7300 depends on CPU_SUBTYPE_SH7300
help help
Select 7300 SolutionEngine if configuring for a Hitachi Select 7300 SolutionEngine if configuring for a Hitachi
SH7300(SH-Mobile V) evaluation board. SH7300(SH-Mobile V) evaluation board.
...@@ -130,22 +252,22 @@ config SH_7300_SOLUTION_ENGINE ...@@ -130,22 +252,22 @@ config SH_7300_SOLUTION_ENGINE
config SH_7343_SOLUTION_ENGINE config SH_7343_SOLUTION_ENGINE
bool "SolutionEngine7343" bool "SolutionEngine7343"
select SOLUTION_ENGINE select SOLUTION_ENGINE
select CPU_SUBTYPE_SH7343 depends on CPU_SUBTYPE_SH7343
help help
Select 7343 SolutionEngine if configuring for a Hitachi Select 7343 SolutionEngine if configuring for a Hitachi
SH7343 (SH-Mobile 3AS) evaluation board. SH7343 (SH-Mobile 3AS) evaluation board.
config SH_73180_SOLUTION_ENGINE config SH_73180_SOLUTION_ENGINE
bool "SolutionEngine73180" bool "SolutionEngine73180"
select SOLUTION_ENGINE select SOLUTION_ENGINE
select CPU_SUBTYPE_SH73180 depends on CPU_SUBTYPE_SH73180
help help
Select 73180 SolutionEngine if configuring for a Hitachi Select 73180 SolutionEngine if configuring for a Hitachi
SH73180(SH-Mobile 3) evaluation board. SH73180(SH-Mobile 3) evaluation board.
config SH_7751_SYSTEMH config SH_7751_SYSTEMH
bool "SystemH7751R" bool "SystemH7751R"
select CPU_SUBTYPE_SH7751R depends on CPU_SUBTYPE_SH7751R
help help
Select SystemH if you are configuring for a Renesas SystemH Select SystemH if you are configuring for a Renesas SystemH
7751R evaluation board. 7751R evaluation board.
...@@ -153,6 +275,7 @@ config SH_7751_SYSTEMH ...@@ -153,6 +275,7 @@ config SH_7751_SYSTEMH
config SH_HP6XX config SH_HP6XX
bool "HP6XX" bool "HP6XX"
select SYS_SUPPORTS_APM_EMULATION select SYS_SUPPORTS_APM_EMULATION
depends on CPU_SUBTYPE_SH7709
help help
Select HP6XX if configuring for a HP jornada HP6xx. Select HP6XX if configuring for a HP jornada HP6xx.
More information (hardware only) at More information (hardware only) at
...@@ -160,13 +283,13 @@ config SH_HP6XX ...@@ -160,13 +283,13 @@ config SH_HP6XX
config SH_SATURN config SH_SATURN
bool "Saturn" bool "Saturn"
select CPU_SUBTYPE_SH7604 depends on CPU_SUBTYPE_SH7604
help help
Select Saturn if configuring for a SEGA Saturn. Select Saturn if configuring for a SEGA Saturn.
config SH_DREAMCAST config SH_DREAMCAST
bool "Dreamcast" bool "Dreamcast"
select CPU_SUBTYPE_SH7091 depends on CPU_SUBTYPE_SH7091
help help
Select Dreamcast if configuring for a SEGA Dreamcast. Select Dreamcast if configuring for a SEGA Dreamcast.
More information at More information at
...@@ -175,6 +298,7 @@ config SH_DREAMCAST ...@@ -175,6 +298,7 @@ config SH_DREAMCAST
config SH_MPC1211 config SH_MPC1211
bool "Interface MPC1211" bool "Interface MPC1211"
depends on CPU_SUBTYPE_SH7751 && BROKEN
help help
CTP/PCI-SH02 is a CPU module computer that is produced CTP/PCI-SH02 is a CPU module computer that is produced
by Interface Corporation. by Interface Corporation.
...@@ -182,6 +306,7 @@ config SH_MPC1211 ...@@ -182,6 +306,7 @@ config SH_MPC1211
config SH_SH03 config SH_SH03
bool "Interface CTP/PCI-SH03" bool "Interface CTP/PCI-SH03"
depends on CPU_SUBTYPE_SH7751 && BROKEN
help help
CTP/PCI-SH03 is a CPU module computer that is produced CTP/PCI-SH03 is a CPU module computer that is produced
by Interface Corporation. by Interface Corporation.
...@@ -189,7 +314,7 @@ config SH_SH03 ...@@ -189,7 +314,7 @@ config SH_SH03
config SH_SECUREEDGE5410 config SH_SECUREEDGE5410
bool "SecureEdge5410" bool "SecureEdge5410"
select CPU_SUBTYPE_SH7751R depends on CPU_SUBTYPE_SH7751R
help help
Select SecureEdge5410 if configuring for a SnapGear SH board. Select SecureEdge5410 if configuring for a SnapGear SH board.
This includes both the OEM SecureEdge products as well as the This includes both the OEM SecureEdge products as well as the
...@@ -197,75 +322,62 @@ config SH_SECUREEDGE5410 ...@@ -197,75 +322,62 @@ config SH_SECUREEDGE5410
config SH_HS7751RVOIP config SH_HS7751RVOIP
bool "HS7751RVOIP" bool "HS7751RVOIP"
select CPU_SUBTYPE_SH7751R depends on CPU_SUBTYPE_SH7751R
help help
Select HS7751RVOIP if configuring for a Renesas Technology Select HS7751RVOIP if configuring for a Renesas Technology
Sales VoIP board. Sales VoIP board.
config SH_7710VOIPGW config SH_7710VOIPGW
bool "SH7710-VOIP-GW" bool "SH7710-VOIP-GW"
select CPU_SUBTYPE_SH7710 depends on CPU_SUBTYPE_SH7710
help help
Select this option to build a kernel for the SH7710 based Select this option to build a kernel for the SH7710 based
VOIP GW. VOIP GW.
config SH_RTS7751R2D config SH_RTS7751R2D
bool "RTS7751R2D" bool "RTS7751R2D"
select CPU_SUBTYPE_SH7751R depends on CPU_SUBTYPE_SH7751R
help help
Select RTS7751R2D if configuring for a Renesas Technology Select RTS7751R2D if configuring for a Renesas Technology
Sales SH-Graphics board. Sales SH-Graphics board.
config SH_HIGHLANDER config SH_HIGHLANDER
bool "Highlander" bool "Highlander"
depends on CPU_SUBTYPE_SH7780 || CPU_SUBTYPE_SH7785
config SH_EDOSK7705 config SH_EDOSK7705
bool "EDOSK7705" bool "EDOSK7705"
select CPU_SUBTYPE_SH7705 depends on CPU_SUBTYPE_SH7705
config SH_SH4202_MICRODEV config SH_SH4202_MICRODEV
bool "SH4-202 MicroDev" bool "SH4-202 MicroDev"
select CPU_SUBTYPE_SH4_202 depends on CPU_SUBTYPE_SH4_202
help help
Select SH4-202 MicroDev if configuring for a SuperH MicroDev board Select SH4-202 MicroDev if configuring for a SuperH MicroDev board
with an SH4-202 CPU. with an SH4-202 CPU.
config SH_LANDISK config SH_LANDISK
bool "LANDISK" bool "LANDISK"
select CPU_SUBTYPE_SH7751R depends on CPU_SUBTYPE_SH7751R
help help
I-O DATA DEVICE, INC. "LANDISK Series" support. I-O DATA DEVICE, INC. "LANDISK Series" support.
config SH_TITAN config SH_TITAN
bool "TITAN" bool "TITAN"
select CPU_SUBTYPE_SH7751R depends on CPU_SUBTYPE_SH7751R
help help
Select Titan if you are configuring for a Nimble Microsystems Select Titan if you are configuring for a Nimble Microsystems
NetEngine NP51R. NetEngine NP51R.
config SH_SHMIN config SH_SHMIN
bool "SHMIN" bool "SHMIN"
select CPU_SUBTYPE_SH7706 depends on CPU_SUBTYPE_SH7706
help help
Select SHMIN if configuring for the SHMIN board. 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 config SH_LBOX_RE2
bool "L-BOX RE2" bool "L-BOX RE2"
select CPU_SUBTYPE_SH7751R depends on CPU_SUBTYPE_SH7751R
help help
Select L-BOX RE2 if configuring for the NTT COMWARE L-BOX RE2. Select L-BOX RE2 if configuring for the NTT COMWARE L-BOX RE2.
...@@ -281,14 +393,12 @@ config SH_UNKNOWN ...@@ -281,14 +393,12 @@ config SH_UNKNOWN
This option is for the early stages of porting to a new machine. 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/hs7751rvoip/Kconfig"
source "arch/sh/boards/renesas/rts7751r2d/Kconfig" source "arch/sh/boards/renesas/rts7751r2d/Kconfig"
source "arch/sh/boards/renesas/r7780rp/Kconfig" source "arch/sh/boards/renesas/r7780rp/Kconfig"
source "arch/sh/mm/Kconfig"
config CF_ENABLER config CF_ENABLER
bool "Compact Flash Enabler support" bool "Compact Flash Enabler support"
depends on SH_SOLUTION_ENGINE || SH_UNKNOWN || SH_SH03 depends on SH_SOLUTION_ENGINE || SH_UNKNOWN || SH_SH03
...@@ -332,110 +442,6 @@ config CF_BASE_ADDR ...@@ -332,110 +442,6 @@ config CF_BASE_ADDR
default "0xb8000000" if CF_AREA6 default "0xb8000000" if CF_AREA6
default "0xb4000000" if CF_AREA5 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" menu "Timer and clock configuration"
......
...@@ -6,18 +6,18 @@ choice ...@@ -6,18 +6,18 @@ choice
config SH_R7780RP config SH_R7780RP
bool "R7780RP-1 board support" bool "R7780RP-1 board support"
select CPU_SUBTYPE_SH7780 depends on CPU_SUBTYPE_SH7780
config SH_R7780MP config SH_R7780MP
bool "R7780MP board support" bool "R7780MP board support"
select CPU_SUBTYPE_SH7780 depends on CPU_SUBTYPE_SH7780
help help
Selecting this option will enable support for the mass-production Selecting this option will enable support for the mass-production
version of the R7780RP. If in doubt, say Y. version of the R7780RP. If in doubt, say Y.
config SH_R7785RP config SH_R7785RP
bool "R7785RP board support" bool "R7785RP board support"
select CPU_SUBTYPE_SH7785 depends on CPU_SUBTYPE_SH7785
endchoice endchoice
......
menu "Processor selection"
# #
# Processor families # Processor families
# #
...@@ -38,11 +36,14 @@ config CPU_SUBTYPE_ST40 ...@@ -38,11 +36,14 @@ config CPU_SUBTYPE_ST40
config CPU_SHX2 config CPU_SHX2
bool bool
choice
prompt "Processor sub-type selection"
# #
# Processor subtypes # Processor subtypes
# #
comment "SH-2 Processor Support" # SH-2 Processor Support
config CPU_SUBTYPE_SH7604 config CPU_SUBTYPE_SH7604
bool "Support SH7604 processor" bool "Support SH7604 processor"
...@@ -52,13 +53,13 @@ config CPU_SUBTYPE_SH7619 ...@@ -52,13 +53,13 @@ config CPU_SUBTYPE_SH7619
bool "Support SH7619 processor" bool "Support SH7619 processor"
select CPU_SH2 select CPU_SH2
comment "SH-2A Processor Support" # SH-2A Processor Support
config CPU_SUBTYPE_SH7206 config CPU_SUBTYPE_SH7206
bool "Support SH7206 processor" bool "Support SH7206 processor"
select CPU_SH2A select CPU_SH2A
comment "SH-3 Processor Support" # SH-3 Processor Support
config CPU_SUBTYPE_SH7300 config CPU_SUBTYPE_SH7300
bool "Support SH7300 processor" bool "Support SH7300 processor"
...@@ -113,7 +114,7 @@ config CPU_SUBTYPE_SH7712 ...@@ -113,7 +114,7 @@ config CPU_SUBTYPE_SH7712
help help
Select SH7712 if you have a SH3-DSP SH7712 CPU. Select SH7712 if you have a SH3-DSP SH7712 CPU.
comment "SH-4 Processor Support" # SH-4 Processor Support
config CPU_SUBTYPE_SH7750 config CPU_SUBTYPE_SH7750
bool "Support SH7750 processor" bool "Support SH7750 processor"
...@@ -166,7 +167,7 @@ config CPU_SUBTYPE_SH4_202 ...@@ -166,7 +167,7 @@ config CPU_SUBTYPE_SH4_202
bool "Support SH4-202 processor" bool "Support SH4-202 processor"
select CPU_SH4 select CPU_SH4
comment "ST40 Processor Support" # ST40 Processor Support
config CPU_SUBTYPE_ST40STB1 config CPU_SUBTYPE_ST40STB1
bool "Support ST40STB1/ST40RA processors" bool "Support ST40STB1/ST40RA processors"
...@@ -181,7 +182,7 @@ config CPU_SUBTYPE_ST40GX1 ...@@ -181,7 +182,7 @@ config CPU_SUBTYPE_ST40GX1
help help
Select ST40GX1 if you have a ST40GX1 CPU. Select ST40GX1 if you have a ST40GX1 CPU.
comment "SH-4A Processor Support" # SH-4A Processor Support
config CPU_SUBTYPE_SH7770 config CPU_SUBTYPE_SH7770
bool "Support SH7770 processor" bool "Support SH7770 processor"
...@@ -198,7 +199,7 @@ config CPU_SUBTYPE_SH7785 ...@@ -198,7 +199,7 @@ config CPU_SUBTYPE_SH7785
select CPU_SHX2 select CPU_SHX2
select CPU_HAS_INTC2_IRQ select CPU_HAS_INTC2_IRQ
comment "SH4AL-DSP Processor Support" # SH4AL-DSP Processor Support
config CPU_SUBTYPE_SH73180 config CPU_SUBTYPE_SH73180
bool "Support SH73180 processor" bool "Support SH73180 processor"
...@@ -214,7 +215,7 @@ config CPU_SUBTYPE_SH7722 ...@@ -214,7 +215,7 @@ config CPU_SUBTYPE_SH7722
select CPU_SHX2 select CPU_SHX2
select CPU_HAS_IPR_IRQ select CPU_HAS_IPR_IRQ
endmenu endchoice
menu "Memory management options" menu "Memory management options"
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment