Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+151 −145
Original line number Diff line number Diff line
@@ -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,7 +252,7 @@ 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.
@@ -138,14 +260,14 @@ config SH_7343_SOLUTION_ENGINE
config SH_73180_SOLUTION_ENGINE
	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"

+3 −3
Original line number Diff line number Diff line
@@ -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

+11 −10
Original line number Diff line number Diff line
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"