choice
	prompt "Machine Type"
	depends on EMBEDDED6xx

config KATANA
	bool "Artesyn-Katana"
	help
	  Select KATANA if configuring an Artesyn KATANA 750i or 3750
	  cPCI board.

config WILLOW
	bool "Cogent-Willow"

config CPCI690
	bool "Force-CPCI690"
	help
	  Select CPCI690 if configuring a Force CPCI690 cPCI board.

config POWERPMC250
	bool "Force-PowerPMC250"

config CHESTNUT
	bool "IBM 750FX Eval board or 750GX Eval board"
	help
	  Select CHESTNUT if configuring an IBM 750FX Eval Board or a
	  IBM 750GX Eval board.

config SPRUCE
	bool "IBM-Spruce"
	select PPC_INDIRECT_PCI

config HDPU
	bool "Sky-HDPU"
	help
	  Select HDPU if configuring a Sky Computers Compute Blade.

config HDPU_FEATURES
	depends HDPU
	tristate "HDPU-Features"
	help
	  Select to enable HDPU enhanced features.

config EV64260
	bool "Marvell-EV64260BP"
	help
	  Select EV64260 if configuring a Marvell (formerly Galileo)
	  EV64260BP Evaluation platform.

config LOPEC
	bool "Motorola-LoPEC"
	select PPC_I8259

config MVME5100
	bool "Motorola-MVME5100"
	select PPC_INDIRECT_PCI

config PPLUS
	bool "Motorola-PowerPlus"
	select PPC_I8259
	select PPC_INDIRECT_PCI

config PRPMC750
	bool "Motorola-PrPMC750"
	select PPC_INDIRECT_PCI

config PRPMC800
	bool "Motorola-PrPMC800"
	select PPC_INDIRECT_PCI

config SANDPOINT
	bool "Motorola-Sandpoint"
	select PPC_I8259
	help
	  Select SANDPOINT if configuring for a Motorola Sandpoint X3
	  (any flavor).

config RADSTONE_PPC7D
	bool "Radstone Technology PPC7D board"
	select PPC_I8259

config PAL4
	bool "SBS-Palomar4"

config GEMINI
	bool "Synergy-Gemini"
	select PPC_INDIRECT_PCI
	depends on BROKEN
	help
	  Select Gemini if configuring for a Synergy Microsystems' Gemini
	  series Single Board Computer.  More information is available at:
	  <http://www.synergymicro.com/PressRel/97_10_15.html>.

config EST8260
	bool "EST8260"
	---help---
	  The EST8260 is a single-board computer manufactured by Wind River
	  Systems, Inc. (formerly Embedded Support Tools Corp.) and based on
	  the MPC8260.  Wind River Systems has a website at
	  <http://www.windriver.com/>, but the EST8260 cannot be found on it
	  and has probably been discontinued or rebadged.

config SBC82xx
	bool "SBC82xx"
	---help---
	  SBC PowerQUICC II, single-board computer with MPC82xx CPU
	  Manufacturer: Wind River Systems, Inc.
	  Date of Release: May 2003
	  End of Life: -
	  URL: <http://www.windriver.com/>

config SBS8260
	bool "SBS8260"

config RPX8260
	bool "RPXSUPER"

config TQM8260
	bool "TQM8260"
	---help---
	  MPC8260 based module, little larger than credit card,
	  up to 128 MB global + 64 MB local RAM, 32 MB Flash,
	  32 kB EEPROM, 256 kB L@ Cache, 10baseT + 100baseT Ethernet,
	  2 x serial ports, ...
	  Manufacturer: TQ Components, www.tq-group.de
	  Date of Release: June 2001
	  End of Life: not yet :-)
	  URL: <http://www.denx.de/PDF/TQM82xx_SPEC_Rev005.pdf>

config ADS8272
	bool "ADS8272"

config PQ2FADS
	bool "Freescale-PQ2FADS"
	help
	  Select PQ2FADS if you wish to configure for a Freescale
	  PQ2FADS board (-VR or -ZU).

config LITE5200
	bool "Freescale LITE5200 / (IceCube)"
	select PPC_MPC52xx
	help
	  Support for the LITE5200 dev board for the MPC5200 from Freescale.
	  This is for the LITE5200 version 2.0 board. Don't know if it changes
	  much but it's only been tested on this board version. I think this
	  board is also known as IceCube.

config MPC834x_SYS
	bool "Freescale MPC834x SYS"
	help
	  This option enables support for the MPC 834x SYS evaluation board.

	  Be aware that PCI buses can only function when SYS board is plugged
	  into the PIB (Platform IO Board) board from Freescale which provide
	  3 PCI slots.  The PIBs PCI initialization is the bootloader's
	  responsiblilty.

config EV64360
	bool "Marvell-EV64360BP"
	help
	  Select EV64360 if configuring a Marvell EV64360BP Evaluation
	  platform.
endchoice

config PQ2ADS
	bool
	depends on ADS8272
	default y

config TQM8xxL
	bool
	depends on 8xx && (TQM823L || TQM850L || FPS850L || TQM855L || TQM860L)
	default y

config PPC_MPC52xx
	bool

config 8260
	bool "CPM2 Support" if WILLOW
	depends on 6xx
	default y if TQM8260 || RPX8260 || EST8260 || SBS8260 || SBC82xx || PQ2FADS
	help
	  The MPC8260 is a typical embedded CPU made by Motorola.  Selecting
	  this option means that you wish to build a kernel for a machine with
	  an 8260 class CPU.

config 8272
	bool
	depends on 6xx
	default y if ADS8272
	select 8260
	help
	  The MPC8272 CPM has a different internal dpram setup than other CPM2
	  devices

config 83xx
	bool
	default y if MPC834x_SYS

config MPC834x
	bool
	default y if MPC834x_SYS

config CPM2
	bool
	depends on 8260 || MPC8560 || MPC8555
	default y
	help
	  The CPM2 (Communications Processor Module) is a coprocessor on
	  embedded CPUs made by Motorola.  Selecting this option means that
	  you wish to build a kernel for a machine with a CPM2 coprocessor
	  on it (826x, 827x, 8560).

config PPC_GEN550
	bool
	depends on SANDPOINT || SPRUCE || PPLUS || \
		PRPMC750 || PRPMC800 || LOPEC || \
		(EV64260 && !SERIAL_MPSC) || CHESTNUT || RADSTONE_PPC7D || \
		83xx
	default y

config FORCE
	bool
	depends on 6xx && POWERPMC250
	default y

config GT64260
	bool
	depends on EV64260 || CPCI690
	default y

config MV64360		# Really MV64360 & MV64460
	bool
	depends on CHESTNUT || KATANA || RADSTONE_PPC7D || HDPU || EV64360
	default y

config MV64X60
	bool
	depends on (GT64260 || MV64360)
	select PPC_INDIRECT_PCI
	default y

menu "Set bridge options"
	depends on MV64X60

config NOT_COHERENT_CACHE
	bool "Turn off Cache Coherency"
	default n
	help
	  Some 64x60 bridges lock up when trying to enforce cache coherency.
	  When this option is selected, cache coherency will be turned off.
	  Note that this can cause other problems (e.g., stale data being
	  speculatively loaded via a cached mapping).  Use at your own risk.

config MV64X60_BASE
	hex "Set bridge base used by firmware"
	default "0xf1000000"
	help
	  A firmware can leave the base address of the bridge's registers at
	  a non-standard location.  If so, set this value to reflect the
	  address of that non-standard location.

config MV64X60_NEW_BASE
	hex "Set bridge base used by kernel"
	default "0xf1000000"
	help
	  If the current base address of the bridge's registers is not where
	  you want it, set this value to the address that you want it moved to.

endmenu

config NONMONARCH_SUPPORT
	bool "Enable Non-Monarch Support"
	depends on PRPMC800

config HARRIER
	bool
	depends on PRPMC800
	default y

config EPIC_SERIAL_MODE
	bool
	depends on 6xx && (LOPEC || SANDPOINT)
	default y

config MPC10X_BRIDGE
	bool
	depends on POWERPMC250 || LOPEC || SANDPOINT
	select PPC_INDIRECT_PCI
	default y

config MPC10X_OPENPIC
	bool
	depends on POWERPMC250 || LOPEC || SANDPOINT
	default y

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

config SANDPOINT_ENABLE_UART1
	bool "Enable DUART mode on Sandpoint"
	depends on SANDPOINT
	help
	  If this option is enabled then the MPC824x processor will run
	  in DUART mode instead of UART mode.

config HARRIER_STORE_GATHERING
	bool "Enable Harrier store gathering"
	depends on HARRIER

config MVME5100_IPMC761_PRESENT
	bool "MVME5100 configured with an IPMC761"
	depends on MVME5100
	select PPC_I8259

config SPRUCE_BAUD_33M
	bool "Spruce baud clock support"
	depends on SPRUCE
