if ARCH_IMX8

config AHAB_BOOT
	bool "Support i.MX8 AHAB features"
	imply CMD_DEKBLOB
	help
	  This option enables the support for AHAB secure boot.

config IMX8
	bool
	select HAS_CAAM

config MU_BASE_SPL
	hex "MU base address used in SPL"
	default 0x5d1b0000
	help
	  SPL runs in EL3 mode, it use MU0_A to communicate with SCU.
	  So we could not reuse the one in dts which is for normal U-Boot.

config IMX8QM
	select IMX8
	select SUPPORT_SPL
	select SPL_RECOVER_DATA_SECTION
	bool

config IMX8QXP
	select IMX8
	select SUPPORT_SPL
	select SPL_RECOVER_DATA_SECTION
	bool

config SYS_SOC
	default "imx8"

config BOOTAUX_RESERVED_MEM_BASE
	hex "i.MX auxiliary core dram memory base"
	default 0

config BOOTAUX_RESERVED_MEM_SIZE
	hex "i.MX auxiliary core dram memory size"
	default 0

choice
	prompt "i.MX8 board select"
	optional

config TARGET_APALIS_IMX8
	bool "Support Apalis iMX8 module"
	select BOARD_LATE_INIT
	select IMX8QM

config TARGET_COLIBRI_IMX8X
	bool "Support Colibri iMX8X module"
	select BOARD_LATE_INIT
	select IMX8QXP

config TARGET_APALIS_IMX8X
	bool "Support Apalis iMX8X module"
	select BOARD_LATE_INIT
	select IMX8QXP

config TARGET_DENEB
	bool "Support i.MX8QXP Capricorn Deneb board"
	select BOARD_LATE_INIT
	select IMX8QXP

config TARGET_GIEDI
	bool "Support i.MX8QXP Capricorn Giedi board"
	select BOARD_LATE_INIT
	select IMX8QXP

config TARGET_IMX8QM_MEK
	bool "Support i.MX8QM MEK board"
	select BOARD_LATE_INIT
	select IMX8QM
	select FSL_CAAM
	select ARCH_MISC_INIT
	select SPL_CRYPTO if SPL

config TARGET_CONGA_QMX8
	bool "Support congatec conga-QMX8 board"
	select BOARD_LATE_INIT
	select SUPPORT_SPL
	select IMX8QM

config TARGET_IMX8QM_ROM7720_A1
	bool "Support i.MX8QM ROM-7720-A1"
	select BOARD_LATE_INIT
	select SUPPORT_SPL
	select IMX8QM

config TARGET_IMX8QXP_MEK
	bool "Support i.MX8QXP MEK board"
	select BOARD_LATE_INIT
	select IMX8QXP
	select FSL_CAAM
	select ARCH_MISC_INIT
	select SPL_CRYPTO if SPL

endchoice

source "board/freescale/imx8qm_mek/Kconfig"
source "board/freescale/imx8qxp_mek/Kconfig"
source "board/congatec/cgtqmx8/Kconfig"
source "board/advantech/imx8qm_rom7720_a1/Kconfig"
source "board/toradex/apalis-imx8/Kconfig"
source "board/toradex/colibri-imx8x/Kconfig"
source "board/toradex/apalis-imx8x/Kconfig"
source "board/siemens/capricorn/Kconfig"

config IMX_SNVS_SEC_SC
	bool "Support SNVS configuration"
	help
	  Allow to configure the SNVS via SCU API to configure tampers and secure
	  violation.

config IMX_SNVS_SEC_SC_AUTO
	bool "Support SNVS configuration command"
	depends on IMX_SNVS_SEC_SC
	help
	  This configuration will apply the selected configurations automatically
	  at boot.

endif
