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 if SPL
	bool

config IMX8QXP
	select IMX8
	select SUPPORT_SPL
	select SPL_RECOVER_DATA_SECTION if SPL
	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_DENEB
	bool "Support i.MX8QXP Capricorn Deneb board"
	select BOARD_LATE_INIT
	select FACTORYSET
	select IMX8QXP

config TARGET_GIEDI
	bool "Support i.MX8QXP Capricorn Giedi board"
	select BOARD_LATE_INIT
	select FACTORYSET
	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/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
