if ARCH_OMAP2PLUS

choice
	prompt "OMAP2+ platform select"
	default OMAP34XX

config OMAP34XX
	bool "OMAP34XX SoC"
	select ARM_ERRATA_430973
	select ARM_ERRATA_454179
	select ARM_ERRATA_621766
	select ARM_ERRATA_725233
	select USE_TINY_PRINTF
	imply SPL_EXT_SUPPORT
	imply SPL_FAT_SUPPORT
	imply SPL_GPIO_SUPPORT
	imply SPL_I2C_SUPPORT
	imply SPL_LIBCOMMON_SUPPORT
	imply SPL_LIBDISK_SUPPORT
	imply SPL_LIBGENERIC_SUPPORT
	imply SPL_MMC_SUPPORT
	imply SPL_NAND_SUPPORT
	imply SPL_OMAP3_ID_NAND
	imply SPL_POWER_SUPPORT
	imply SPL_SERIAL_SUPPORT
	imply SYS_I2C_OMAP24XX
	imply SYS_THUMB_BUILD
	imply TWL4030_POWER

config OMAP44XX
	bool "OMAP44XX SoC"
	select USE_TINY_PRINTF
	imply SPL_DISPLAY_PRINT
	imply SPL_EXT_SUPPORT
	imply SPL_FAT_SUPPORT
	imply SPL_GPIO_SUPPORT
	imply SPL_I2C_SUPPORT
	imply SPL_LIBCOMMON_SUPPORT
	imply SPL_LIBDISK_SUPPORT
	imply SPL_LIBGENERIC_SUPPORT
	imply SPL_MMC_SUPPORT
	imply SPL_NAND_SUPPORT
	imply SPL_POWER_SUPPORT
	imply SPL_SERIAL_SUPPORT
	imply SYS_I2C_OMAP24XX
	imply SYS_THUMB_BUILD

config OMAP54XX
	bool "OMAP54XX SoC"
	select ARM_ERRATA_798870
	select SYS_THUMB_BUILD
	imply SPL_DISPLAY_PRINT
	imply SPL_ENV_SUPPORT
	imply SPL_EXT_SUPPORT
	imply SPL_FAT_SUPPORT
	imply SPL_GPIO_SUPPORT
	imply SPL_I2C_SUPPORT
	imply SPL_LIBCOMMON_SUPPORT
	imply SPL_LIBDISK_SUPPORT
	imply SPL_LIBGENERIC_SUPPORT
	imply SPL_MMC_SUPPORT
	imply SPL_NAND_SUPPORT
	imply SPL_POWER_SUPPORT
	imply SPL_SERIAL_SUPPORT
	imply SYS_I2C_OMAP24XX

config TI814X
	bool "TI814X SoC"
	help
	  Support for AM335x SOC from Texas Instruments.
	  The AM335x high performance SOC features a Cortex-A8
	  ARM core and more.

config TI816X
	bool "TI816X SoC"
	help
	  Support for AM335x SOC from Texas Instruments.
	  The AM335x high performance SOC features a Cortex-A8
	  ARM core and more.

config AM43XX
	bool "AM43XX SoC"
	imply SPL_DM
	imply SPL_DM_SEQ_ALIAS
	imply SPL_OF_CONTROL
	imply SPL_OF_TRANSLATE
	imply SPL_SEPARATE_BSS
	imply SPL_SYS_MALLOC_SIMPLE
	imply SYS_I2C_OMAP24XX
	imply SYS_THUMB_BUILD
	help
	  Support for AM43xx SOC from Texas Instruments.
	  The AM43xx high performance SOC features a Cortex-A9
	  ARM core, a quad core PRU-ICSS for industrial Ethernet
	  protocols, dual camera support, optional 3D graphics
	  and an optional customer programmable secure boot.

config AM33XX
	bool "AM33XX SoC"
	imply SYS_I2C_OMAP24XX
	imply SYS_THUMB_BUILD
	imply USE_TINY_PRINTF
	help
	  Support for AM335x SOC from Texas Instruments.
	  The AM335x high performance SOC features a Cortex-A8
	  ARM core, a dual core PRU-ICSS for industrial Ethernet
	  protocols, optional 3D graphics and an optional customer
	  programmable secure boot.

endchoice

config SYS_MPUCLK
	int "MPU CLK speed"
	default 500
	help
	  Defines the MPU clock speed (in MHz).

config TI_SECURE_DEVICE
	bool "HS Device Type Support"
	depends on OMAP54XX || AM43XX || AM33XX || ARCH_KEYSTONE
	help
	  If a high secure (HS) device type is being used, this config
	  must be set. This option impacts various aspects of the
	  build system (to create signed boot images that can be
	  authenticated) and the code. See the doc/README.ti-secure
	  file for further details.

config TI_SECURE_EMIF_REGION_START
	hex "Reserved EMIF region start address"
	depends on TI_SECURE_DEVICE
	default 0x0
	help
	  Reserved EMIF region start address. Set to "0" to auto-select
	  to be at the end of the external memory region.

config TI_SECURE_EMIF_TOTAL_REGION_SIZE
	hex "Reserved EMIF region size"
	depends on TI_SECURE_DEVICE
	default 0x0
	help
	  Total reserved EMIF region size. Default is 0, which means no reserved EMIF
	  region on secure devices.

config TI_SECURE_EMIF_PROTECTED_REGION_SIZE
	hex "Size of protected region within reserved EMIF region"
	depends on TI_SECURE_DEVICE
	default 0x0
	help
	  This config option is used to specify the size of the portion of the total
	  reserved EMIF region set aside for secure OS needs that will  be protected
	  using hardware memory firewalls. This value must be smaller than the
	  TI_SECURE_EMIF_TOTAL_REGION_SIZE value.

source "arch/arm/mach-omap2/omap3/Kconfig"

source "arch/arm/mach-omap2/omap4/Kconfig"

source "arch/arm/mach-omap2/omap5/Kconfig"

source "arch/arm/mach-omap2/am33xx/Kconfig"

source "board/BuR/brxre1/Kconfig"
source "board/BuR/brppt1/Kconfig"
source "board/siemens/draco/Kconfig"
source "board/siemens/pxm2/Kconfig"
source "board/siemens/rut/Kconfig"
source "board/ti/ti814x/Kconfig"
source "board/ti/ti816x/Kconfig"
source "board/ti/am43xx/Kconfig"
source "board/ti/am335x/Kconfig"
source "board/compulab/cm_t335/Kconfig"
source "board/compulab/cm_t43/Kconfig"

config SPL_LDSCRIPT
        default "arch/arm/mach-omap2/u-boot-spl.lds"

endif
