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

Commit f6557331 authored by David Gibson's avatar David Gibson Committed by Paul Mackerras
Browse files

[POWERPC] Re-organize Kconfig code for 4xx in arch/powerpc



Now that we always take a device tree in arch/powerpc, there's no good
reason not to allow a single kernel to support multiple embedded 4xx
boards - the correct platform code can be selected based on the device
tree information.

Therefore, this patch re-arranges the 4xx Kconfig code to allow this.
In addition we:
	- use "select" instead of depends to configure the correct
	  config options for specific 4xx CPUs and workarounds, which
	  makes the information about specific boards and CPUs less
	  scattered.
	- Some old, unused (in arch/powerpc) config options are
	  removed: WANT_EARLY_SERIAL, IBM_OCP, etc.

Signed-off-by: default avatarDavid Gibson <dwg@au1.ibm.com>
Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
parent e6349a95
Loading
Loading
Loading
Loading
+150 −222
Original line number Diff line number Diff line
@@ -3,278 +3,206 @@ config 4xx
	depends on 40x || 44x
	default y

config WANT_EARLY_SERIAL
config BOOKE
	bool
	select SERIAL_8250
	default n

menu "AMCC 4xx options"
	depends on 4xx

choice
	prompt "Machine Type"
	depends on 40x
	default WALNUT

config BUBINGA
	bool "Bubinga"
	select WANT_EARLY_SERIAL
	help
	  This option enables support for the IBM 405EP evaluation board.

config CPCI405
	bool "CPCI405"
	help
	  This option enables support for the CPCI405 board.

config EP405
	bool "EP405/EP405PC"
	help
	  This option enables support for the EP405/EP405PC boards.

config REDWOOD_5
	bool "Redwood-5"
	help
	  This option enables support for the IBM STB04 evaluation board.

config REDWOOD_6
	bool "Redwood-6"
	help
	  This option enables support for the IBM STBx25xx evaluation board.

config SYCAMORE
	bool "Sycamore"
	help
	  This option enables support for the IBM PPC405GPr evaluation board.

config WALNUT
	bool "Walnut"
	help
	  This option enables support for the IBM PPC405GP evaluation board.

config XILINX_ML300
	bool "Xilinx-ML300"
	help
	  This option enables support for the Xilinx ML300 evaluation board.

endchoice

choice
	prompt "Machine Type"
	depends on 44x
	default EBONY

config BAMBOO
	bool "Bamboo"
	select WANT_EARLY_SERIAL
	help
	  This option enables support for the IBM PPC440EP evaluation board.

config EBONY
	bool "Ebony"
	select WANT_EARLY_SERIAL
	help
	  This option enables support for the IBM PPC440GP evaluation board.

config LUAN
	bool "Luan"
	select WANT_EARLY_SERIAL
	help
	  This option enables support for the IBM PPC440SP evaluation board.

config OCOTEA
	bool "Ocotea"
	select WANT_EARLY_SERIAL
	help
	  This option enables support for the IBM PPC440GX evaluation board.
	default y

endchoice
menu "AMCC 40x options"
	depends on 40x

config EP405PC
	bool "EP405PC Support"
	depends on EP405
#config BUBINGA
#	bool "Bubinga"
#	depends on 40x
#	default n
#	select 405EP
#	help
#	  This option enables support for the IBM 405EP evaluation board.

#config CPCI405
#	bool "CPCI405"
#	depends on 40x
#	default n
#	select 405GP
#	help
#	  This option enables support for the CPCI405 board.

#config EP405
#	bool "EP405/EP405PC"
#	depends on 40x
#	default n
#	select 405GP
#	help
#	  This option enables support for the EP405/EP405PC boards.

#config EP405PC
#	bool "EP405PC Support"
#	depends on EP405
#	default y
#	help
#	  This option enables support for the extra features of the EP405PC board.

#config REDWOOD_5
#	bool "Redwood-5"
#	depends on 40x
#	default n
#	select STB03xxx
#	help
#	  This option enables support for the IBM STB04 evaluation board.

#config REDWOOD_6
#	bool "Redwood-6"
#	depends on 40x
#	default n
#	select STB03xxx
#	help
#	  This option enables support for the IBM STBx25xx evaluation board.

#config SYCAMORE
#	bool "Sycamore"
#	depends on 40x
#	default n
#	select 405GPR
#	help
#	  This option enables support for the IBM PPC405GPr evaluation board.

#config WALNUT
#	bool "Walnut"
#	depends on 40x
#	default y
#	select 405GP
#	help
#	  This option enables support for the IBM PPC405GP evaluation board.

#config XILINX_ML300
#	bool "Xilinx-ML300"
#	depends on 40x
#	default y
#	select VIRTEX_II_PRO
#	help
#	  This option enables support for the Xilinx ML300 evaluation board.

endmenu

# It's often necessary to know the specific 4xx processor type.
# Fortunately, it is impled (so far) from the board type, so we
# don't need to ask more redundant questions.
# 40x specific CPU modules, selected based on the board above.
config NP405H
	bool
	depends on ASH
	default y
	#depends on ASH

config 440EP
# OAK doesn't exist but wanted to keep this around for any future 403GCX boards
config 403GCX
	bool
	depends on BAMBOO
	select PPC_FPU
	default y
	#depends on OAK
	select IBM405_ERR51

config 440GP
config 405GP
	bool
	depends on EBONY
	default y
	select IBM405_ERR77
	select IBM405_ERR51

config 440GX
config 405EP
	bool
	depends on OCOTEA
	default y

config 440SP
config 405GPR
	bool
	depends on LUAN
	default y

config 440
config VIRTEX_II_PRO
	bool
	depends on 440GP || 440SP || 440EP
	default y
	select IBM405_ERR77
	select IBM405_ERR51

config 440A
config STB03xxx
	bool
	depends on 440GX
	default y
	select IBM405_ERR77
	select IBM405_ERR51

config IBM440EP_ERR42
	bool
	depends on 440EP
	default y
# 40x errata/workaround config symbols, selected by the CPU models above

# All 405-based cores up until the 405GPR and 405EP have this errata.
config IBM405_ERR77
	bool
	depends on 40x && !403GCX && !405GPR && !405EP
	default y

# All 40x-based cores, up until the 405GPR and 405EP have this errata.
config IBM405_ERR51
	bool
	depends on 40x && !405GPR && !405EP
	default y

config BOOKE
	bool
menu "AMCC 44x options"
	depends on 44x
	default y

config IBM_OCP
	bool
	depends on ASH || BAMBOO || BUBINGA || CPCI405 || EBONY || EP405 || LUAN || OCOTEA || REDWOOD_5 || REDWOOD_6 || SYCAMORE || WALNUT
	default y

config XILINX_OCP
	bool
	depends on XILINX_ML300
	default y
#config BAMBOO
#	bool "Bamboo"
#	depends on 44x
#	default n
#	select 440EP
#	help
#	  This option enables support for the IBM PPC440EP evaluation board.

config IBM_EMAC4
	bool
	depends on 440GX || 440SP
	default y

config BIOS_FIXUP
	bool
	depends on BUBINGA || EP405 || SYCAMORE || WALNUT
	default y

# OAK doesn't exist but wanted to keep this around for any future 403GCX boards
config 403GCX
	bool
	depends on OAK
	default y

config 405EP
	bool
	depends on BUBINGA
	default y

config 405GP
	bool
	depends on CPCI405 || EP405 || WALNUT
	default y

config 405GPR
	bool
	depends on SYCAMORE
config EBONY
	bool "Ebony"
	depends on 44x
	default y
	select 440GP
	help
	  This option enables support for the IBM PPC440GP evaluation board.

config VIRTEX_II_PRO
	bool
	depends on XILINX_ML300
	default y
#config LUAN
#	bool "Luan"
#	depends on 44x
#	default n
#	select 440SP
#	help
#	  This option enables support for the IBM PPC440SP evaluation board.

#config OCOTEA
#	bool "Ocotea"
#	depends on 44x
#	default n
#	select 440GX
#	help
#	  This option enables support for the IBM PPC440GX evaluation board.

config STB03xxx
	bool
	depends on REDWOOD_5 || REDWOOD_6
	default y
endmenu

config EMBEDDEDBOOT
# 44x specific CPU modules, selected based on the board above.
config 440EP
	bool
	depends on EP405 || XILINX_ML300
	default y
	select PPC_FPU
	select IBM440EP_ERR42

config IBM_OPENBIOS
config 440GP
	bool
	depends on ASH || BUBINGA || REDWOOD_5 || REDWOOD_6 || SYCAMORE || WALNUT
	default y
	select IBM_NEW_EMAC_ZMII

config PPC4xx_DMA
	bool "PPC4xx DMA controller support"
	depends on 4xx

config PPC4xx_EDMA
config 440GX
	bool
	depends on !STB03xxx && PPC4xx_DMA
	default y

config PPC_GEN550
config 440SP
	bool
	depends on 4xx
	default y

choice
	prompt "TTYS0 device and default console"
	depends on 40x
	default UART0_TTYS0

config UART0_TTYS0
	bool "UART0"

config UART0_TTYS1
	bool "UART1"

endchoice

config SERIAL_SICC
	bool "SICC Serial port support"
	depends on STB03xxx

config UART1_DFLT_CONSOLE
config 440A
	bool
	depends on SERIAL_SICC && UART0_TTYS1
	depends on 440GX
	default y

config SERIAL_SICC_CONSOLE
# 44x errata/workaround config symbols, selected by the CPU models above
config IBM440EP_ERR42
	bool
	depends on SERIAL_SICC && UART0_TTYS1
	default y
endmenu

#config XILINX_OCP
#	bool
#	depends on XILINX_ML300
#	default y

menu "IBM 40x options"
	depends on 40x

config SERIAL_SICC
	bool "SICC Serial port"
	depends on STB03xxx

config UART1_DFLT_CONSOLE
	bool
	depends on SERIAL_SICC && UART0_TTYS1
	default y
#config BIOS_FIXUP
#	bool
#	depends on BUBINGA || EP405 || SYCAMORE || WALNUT
#	default y

config SERIAL_SICC_CONSOLE
	bool
	depends on SERIAL_SICC && UART0_TTYS1
	default y
#config PPC4xx_DMA
#	bool "PPC4xx DMA controller support"
#	depends on 4xx

endmenu
#config PPC4xx_EDMA
#	bool
#	depends on !STB03xxx && PPC4xx_DMA
#	default y