config EMBEDDED6xx
	bool "Embedded 6xx/7xx/7xxx-based boards"
	depends on 6xx && BROKEN_ON_SMP

config LINKSTATION
	bool "Linkstation / Kurobox(HG) from Buffalo"
	depends on EMBEDDED6xx
	select MPIC
	select FSL_SOC
	select PPC_UDBG_16550 if SERIAL_8250
	select DEFAULT_UIMAGE
	select MPC10X_OPENPIC
	select MPC10X_BRIDGE
	help
	  Select LINKSTATION if configuring for one of PPC- (MPC8241)
	  based NAS systems from Buffalo Technology. So far only
	  KuroboxHG has been tested. In the future classical Kurobox,
	  Linkstation-I HD-HLAN and HD-HGLAN versions, and PPC-based
	  Terastation systems should be supported too.

config STORCENTER
	bool "IOMEGA StorCenter"
	depends on EMBEDDED6xx
	select MPIC
	select FSL_SOC
	select PPC_UDBG_16550 if SERIAL_8250
	select MPC10X_OPENPIC
	select MPC10X_BRIDGE
	help
	  Select STORCENTER if configuring for the iomega StorCenter
	  with an 8241 CPU in it.

config MPC7448HPC2
	bool "Freescale MPC7448HPC2(Taiga)"
	depends on EMBEDDED6xx
	select TSI108_BRIDGE
	select DEFAULT_UIMAGE
	select PPC_UDBG_16550
	select TSI108_BRIDGE
	help
	  Select MPC7448HPC2 if configuring for Freescale MPC7448HPC2 (Taiga)
	  platform

config PPC_HOLLY
	bool "PPC750GX/CL with TSI10x bridge (Hickory/Holly)"
	depends on EMBEDDED6xx
	select TSI108_BRIDGE
	select PPC_UDBG_16550
	select TSI108_BRIDGE
	help
	  Select PPC_HOLLY if configuring for an IBM 750GX/CL Eval
	  Board with TSI108/9 bridge (Hickory/Holly)

config PPC_PRPMC2800
	bool "Motorola-PrPMC2800"
	depends on EMBEDDED6xx
	select MV64X60
	select NOT_COHERENT_CACHE
	help
	  This option enables support for the Motorola PrPMC2800 board

config PPC_C2K
	bool "SBS/GEFanuc C2K board"
	depends on EMBEDDED6xx
	select MV64X60
	select NOT_COHERENT_CACHE
	select MTD_CFI_I4
	help
	  This option enables support for the GE Fanuc C2K board (formerly
	  an SBS board).

config TSI108_BRIDGE
	bool
	select PCI
	select MPIC
	select MPIC_WEIRD

config MPC10X_BRIDGE
	bool
	select PPC_INDIRECT_PCI

config MV64X60
	bool
	select PPC_INDIRECT_PCI
	select CHECK_CACHE_COHERENCY

config MPC10X_OPENPIC
	bool

config MPC10X_STORE_GATHERING
	bool "Enable MPC10x store gathering"
	depends on MPC10X_BRIDGE

config GAMECUBE_COMMON
	bool

config USBGECKO_UDBG
	bool "USB Gecko udbg console for the Nintendo GameCube/Wii"
	depends on GAMECUBE_COMMON
	help
	  If you say yes to this option, support will be included for the
	  USB Gecko adapter as an udbg console.
	  The USB Gecko is a EXI to USB Serial converter that can be plugged
	  into a memcard slot in the Nintendo GameCube/Wii.

	  This driver bypasses the EXI layer completely.

	  If in doubt, say N here.

config GAMECUBE
	bool "Nintendo-GameCube"
	depends on EMBEDDED6xx
	select GAMECUBE_COMMON
	help
	  Select GAMECUBE if configuring for the Nintendo GameCube.
	  More information at: <http://gc-linux.sourceforge.net/>

config WII
	bool "Nintendo-Wii"
	depends on EMBEDDED6xx
	select GAMECUBE_COMMON
	help
	  Select WII if configuring for the Nintendo Wii.
	  More information at: <http://gc-linux.sourceforge.net/>

