if ARCH_IMX

config ARCH_TEXT_BASE
	hex
	default 0xa0000000 if MACH_EUKREA_CPUIMX27
	default 0x08f00000 if MACH_MX1ADS
	default 0xc0000000 if MACH_IMX21ADS
	default 0xa0000000 if MACH_IMX27ADS
	default 0x87f00000 if MACH_FREESCALE_MX25_3STACK
	default 0x87f00000 if MACH_FREESCALE_MX35_3STACK
	default 0xa7f00000 if MACH_PCA100
	default 0xa0000000 if MACH_PCM038
	default 0x87f00000 if MACH_PCM037
	default 0x87f00000 if MACH_PCM043
	default 0x08f80000 if MACH_SCB9328

config BOARDINFO
	default "Eukrea CPUIMX27" if MACH_EUKREA_CPUIMX27
	default "Freescale i.MX21 ADS" if MACH_IMX21ADS
	default "Freescale i.MX27 ADS" if MACH_IMX27ADS
	default "Freescale MX35 3Stack" if MACH_FREESCALE_MX35_3STACK
	default "Freescale MX25 3Stack" if MACH_FREESCALE_MX25_3STACK
	default "Phytec phyCard-i.MX27" if MACH_PCA100
	default "Phytec phyCORE-i.MX27" if MACH_PCM038
	default "Phytec phyCORE-i.MX31" if MACH_PCM037
	default "Phytec phyCORE-i.MX35" if MACH_PCM043
	default "Synertronixx scb9328" if MACH_SCB9328

config ARCH_HAS_FEC_IMX
	bool

config ARCH_IMX_INTERNAL_BOOT
	bool "support internal boot mode"
	depends on ARCH_IMX25 || ARCH_IMX35

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

choice
	prompt "Freescale i.MX Processor"

config ARCH_IMX1
	bool "i.MX1"
	select CPU_ARM920T

config ARCH_IMX21
	bool "i.MX21"
	select CPU_ARM926T

config ARCH_IMX25
	bool "i.MX25"
	select CPU_ARM926T
	select ARCH_HAS_FEC_IMX

config ARCH_IMX27
	bool "i.MX27"
	select CPU_ARM926T
	select ARCH_HAS_FEC_IMX

config ARCH_IMX31
	bool "i.MX31"

config ARCH_IMX35
	bool "i.MX35"
	select ARCH_HAS_FEC_IMX

endchoice

# ----------------------------------------------------------

if ARCH_IMX1

choice

	prompt "i.MX1 Board Type"

config MACH_MX1ADS
	bool "mx1ads"
	select HAS_CS8900
	help
	  Say Y here if you are using the Motorola MX1ADS board

config MACH_SCB9328
	bool "Synertronixx scb9328"
	select HAS_DM9000
	select HAS_CFI
	select MACH_HAS_LOWLEVEL_INIT
	select HAVE_MMU
	help
	  Say Y here if you are using the Synertronixx scb9328 board

endchoice

endif

# ----------------------------------------------------------

if ARCH_IMX21

choice

	prompt "i.MX21 Board Type"

config MACH_IMX21ADS
	bool "Freescale i.MX21ADS"
	select HAS_CFI
	select MACH_HAS_LOWLEVEL_INIT
	select HAS_CS8900
	help
	  Say Y here if you are using the Freescale i.MX21ads board equipped
	  with a Freescale i.MX21 Processor

endchoice

endif

# ----------------------------------------------------------

if ARCH_IMX25

choice

	prompt "i.MX25 Board Type"

config MACH_FREESCALE_MX25_3STACK
	bool "Freescale MX25 3stack"
	select HAS_CFI
	select MACH_HAS_LOWLEVEL_INIT
	help
	  Say Y here if you are using the Freescale MX25 3stack board equipped
	  with a Freescale i.MX25 Processor

endchoice

endif

# ----------------------------------------------------------

if ARCH_IMX27

choice

	prompt "i.MX27 Board Type"

config MACH_EUKREA_CPUIMX27
	bool "EUKREA CPUIMX27"
	select HAS_CFI
	select HAVE_MMU
	select MACH_HAS_LOWLEVEL_INIT
	help
	  Say Y here if you are using Eukrea's CPUIMX27 equipped
	  with a Freescale i.MX27 Processor

config MACH_IMX27ADS
	bool "Freescale i.MX27ADS"
	select HAS_CFI
	select MACH_HAS_LOWLEVEL_INIT
	help
	  Say Y here if you are using the Freescale i.MX27ads board equipped
	  with a Freescale i.MX27 Processor

config MACH_PCA100
	bool "phyCard-i.MX27"
	select MACH_HAS_LOWLEVEL_INIT
	select HAVE_MMU
	help
	  Say Y here if you are using Phytec's phyCard-i.MX27 (pca100) equipped
	  with a Freescale i.MX27 Processor

config MACH_PCM038
	bool "phyCORE-i.MX27"
	select HAS_CFI
	select MACH_HAS_LOWLEVEL_INIT
	select SPI
	select DRIVER_SPI_IMX
	select DRIVER_SPI_MC13783
	select HAVE_MMU
	help
	  Say Y here if you are using Phytec's phyCORE-i.MX27 (pcm038) equipped
	  with a Freescale i.MX27 Processor

endchoice

endif

# ----------------------------------------------------------

if ARCH_IMX31

choice

	prompt "i.MX31 Board Type"

config MACH_PCM037
	bool "phyCORE-i.MX31"
	select MACH_HAS_LOWLEVEL_INIT
	select USB_ISP1504 if USB
	help
	  Say Y here if you are using Phytec's phyCORE-i.MX31 (pcm037) equipped
	  with a Freescale i.MX31 Processor

endchoice

endif

# ----------------------------------------------------------

if ARCH_IMX35

choice

	prompt "i.MX35 Board Type"

config MACH_FREESCALE_MX35_3STACK
	bool "Freescale MX35 3stack"
	select HAS_CFI
	select MACH_HAS_LOWLEVEL_INIT
	select I2C
	select DRIVER_I2C_IMX
	select DRIVER_I2C_MC13892
	select DRIVER_I2C_MC9SDZ60
	help
	  Say Y here if you are using the Freescale MX35 3stack board equipped
	  with a Freescale i.MX35 Processor

config MACH_PCM043
        bool "phyCORE-i.MX35"
        select HAS_CFI
	select HAVE_MMU
        select MACH_HAS_LOWLEVEL_INIT
        help
          Say Y here if you are using Phytec's phyCORE-i.MX35 (pcm043) equipped
          with a Freescale i.MX35 Processor

endchoice

endif

# ----------------------------------------------------------

menu "Board specific settings       "

if MACH_PCM043
choice
	prompt "Display type"
config PCM043_DISPLAY_SHARP
	bool "Sharp LQ035Q7"
config PCM043_DISPLAY_TY090
	bool "TX090"
endchoice
endif

if MACH_PCM037
choice
	prompt "SDRAM Bank0"
config PCM037_SDRAM_BANK0_128MB
	bool "128MB"
config PCM037_SDRAM_BANK0_256MB
	bool "256MB"
endchoice

choice
	prompt "SDRAM Bank1"
config PCM037_SDRAM_BANK1_NONE
	bool "none"
config PCM037_SDRAM_BANK1_128MB
	bool "128MB"
config PCM037_SDRAM_BANK1_256MB
	bool "256MB"
endchoice
endif

if MACH_EUKREA_CPUIMX27
choice
	prompt "SDRAM Size"
config EUKREA_CPUIMX27_SDRAM_128MB
	bool "128 MB"
config EUKREA_CPUIMX27_SDRAM_256MB
	bool "256 MB"
endchoice
choice
	prompt "NOR Flash Size"
config EUKREA_CPUIMX27_NOR_32MB
	bool "<= 32 MB"
config EUKREA_CPUIMX27_NOR_64MB
	bool "> 32 MB"
endchoice
choice
	prompt "Quad UART Port"
	depends on DRIVER_SERIAL_NS16550
config EUKREA_CPUIMX27_QUART1
	bool "Q1"
config EUKREA_CPUIMX27_QUART2
	bool "Q2"
config EUKREA_CPUIMX27_QUART3
	bool "Q3"
config EUKREA_CPUIMX27_QUART4
	bool "Q4"
endchoice
endif
endmenu

menu "i.MX specific settings        "

config IMX_CLKO
	bool "clko command"
	depends on ARCH_IMX21 || ARCH_IMX27 || ARCH_IMX35 || ARCH_IMX25
	help
	  The i.MX SoCs have a Pin which can output different reference frequencies.
	  Say y here if you want to have the clko command which lets you select the
	  frequency to output on this pin.
endmenu

endif
