if ARCH_MXS

config ARCH_TEXT_BASE
	hex
	default 0x41000000 if MACH_MX23EVK
	default 0x42000000 if MACH_CHUMBY
	default 0x47000000 if MACH_TX28

config BOARDINFO
	default "Freescale i.MX23-EVK" if MACH_MX23EVK
	default "Chumby Falconwing" if MACH_CHUMBY
	default "Karo TX28" if MACH_TX28

comment "Freescale i.MX System-on-Chip"

choice
	prompt "Freescale i.MX Processor"

config ARCH_IMX23
	bool "i.MX23"
	select CPU_ARM926T

config ARCH_IMX28
	bool "i.MX28"
	select CPU_ARM926T
	select ARCH_HAS_FEC_IMX

endchoice

if ARCH_IMX23

choice
	prompt "i.MX23 Board Type"

config MACH_MX23EVK
	bool "mx23-evk"
	help
	  Say Y here if you are using the Freescale i.MX23-EVK board

config MACH_CHUMBY
	bool "Chumby Falconwing"
	select HAVE_MMU
	help
	  Say Y here if you are using the "chumby one" aka falconwing from
	  Chumby Industries

endchoice

endif

if ARCH_IMX28

choice
	prompt "i.MX28 Board Type"

config MACH_TX28
	bool "KARO tx28"
	select HAVE_MMU
	help
	  Say Y here if you are using the KARO TX28 CPU module.

endchoice

endif

menu "Board specific settings       "

if MACH_TX28

choice
	prompt "TX28 Base Board Type"

config MACH_TX28STK5
	bool "TX28-stk5"
	help
	  Select this entry if you are running the TX28 CPU module on the
	  KARO TX28 Starterkit5.

endchoice

endif

endmenu

endif
