if ARCH_IMX8M

config IMX8M
	bool
	select HAS_CAAM
	select ROM_UNIFIED_SECTIONS

config IMX8MQ
	bool
	select IMX8M
	select ARMV8_SPL_EXCEPTION_VECTORS

config IMX8MM
	bool
	select IMX8M
	select ARMV8_SPL_EXCEPTION_VECTORS

config IMX8MN
	bool
	select IMX8M
	select ARMV8_SPL_EXCEPTION_VECTORS

config IMX8MP
	bool
	select IMX8M

config SYS_SOC
	default "imx8m"

config SECONDARY_BOOT_SECTOR_OFFSET
	hex "SD/MMC sector offset used for ROM secondary boot"
	default 0x0
	depends on IMX8MQ || IMX8MM
	help
	  Set the sector offset to non-zero value in SPL used for
	  secondary boot image. This value should be same as the
	  firstSectorNumber in secondary image table.

config SECURE_STICKY_BITS_LOCKUP
	bool "Enable workaround to fix sticky bits lock up issue"
	depends on IMX8MQ && IMX_HAB
	default y

config IMX_UNIQUE_ID
	hex "Enable workaround to fix sticky bits lock up issue"
	depends on IMX8MQ && IMX_HAB && !SECURE_STICKY_BITS_LOCKUP
	default 0x0

config IMX8M_MCU_RDC_START_CONFIG_ADDR
	hex "Start address of mcu rdc config when mcu starts"
	default 0x186000

config IMX8M_MCU_RDC_STOP_CONFIG_ADDR
	hex "Start address of mcu rdc config when mcu stops"
	default 0x187000

choice
	prompt  "NXP i.MX8M board select"
	optional

config TARGET_IMX8MQ_EVK
	bool "imx8mq_evk"
	select IMX8MQ
	select IMX8M_LPDDR4
	select FSL_CAAM
	select FSL_BLOB
	select MISC
	select SPL_CRYPTO_SUPPORT if SPL

config TARGET_IMX8MQ_PHANBELL
        bool "imx8mq_phanbell"
        select IMX8MQ
        select IMX8M_LPDDR4

config TARGET_IMX8MQ_DDR3L_VAL
	bool "imx8mq_ddr3l_val"
	select IMX8MQ

config TARGET_IMX8MQ_DDR4_VAL
	bool "imx8mq_ddr4_val"
	select IMX8MQ
	select IMX8M_DDR4

config TARGET_IMX8MM_DDR4_VAL
	bool "imx8mm DDR4 validation board"
	select IMX8MM
	select SUPPORT_SPL
	select IMX8M_DDR4

config TARGET_IMX8MM_DDR3L_VAL
	bool "imx8mm DDR3L validation board"
	select IMX8MM
	select SUPPORT_SPL
	select IMX8M_DDR3L

config TARGET_IMX8MM_EVK
	bool "imx8mm LPDDR4 EVK board"
	select IMX8MM
	select SUPPORT_SPL
	select IMX8M_LPDDR4
	select FSL_CAAM
	select FSL_BLOB
	select MISC
	select SPL_CRYPTO_SUPPORT if SPL

config TARGET_IMX8MM_VENICE
	bool "Support Gateworks Venice iMX8M Mini module"
	select IMX8MM
	select SUPPORT_SPL
	select IMX8M_LPDDR4

config TARGET_IMX8MM_EVK_QCA
	bool "imx8mm LPDDR4 EVK Legacy QCA WIFI board"
	select IMX8MM
	select SUPPORT_SPL
	select IMX8M_LPDDR4

config TARGET_IMX8MM_DDR4_EVK
	bool "imx8mm DDR4 EVK board"
	select IMX8MM
	select SUPPORT_SPL
	select IMX8M_DDR4
	select FSL_CAAM
	select FSL_BLOB
	select MISC
	select SPL_CRYPTO_SUPPORT if SPL

config TARGET_IMX8MN_EVK
	bool "imx8mn LPDDR4 EVK board"
	select IMX8MN
	select SUPPORT_SPL
	select IMX8M_LPDDR4
	select FSL_CAAM
	select FSL_BLOB
	select MISC
	select SPL_CRYPTO_SUPPORT if SPL

config TARGET_IMX8MN_DDR4_EVK
	bool "imx8mn DDR4 EVK board"
	select IMX8MN
	select SUPPORT_SPL
	select IMX8M_DDR4
	select FSL_CAAM
	select FSL_BLOB
	select MISC
	select SPL_CRYPTO_SUPPORT if SPL

config TARGET_IMX8MN_DDR3_EVK
	bool "imx8mn 11x11 DDR3 EVK board"
	select IMX8MN
	select SUPPORT_SPL
	select IMX8M_DDR3L
	select FSL_CAAM
	select FSL_BLOB
	select MISC
	select SPL_CRYPTO_SUPPORT if SPL

config TARGET_IMX8MP_EVK
	bool "imx8mp LPDDR4 EVK board"
	select IMX8MP
	select SUPPORT_SPL
	select IMX8M_LPDDR4
	select FSL_CAAM
	select FSL_BLOB
	select MISC
	select SPL_CRYPTO_SUPPORT if SPL

config TARGET_PICO_IMX8MQ
	bool "Support Technexion Pico iMX8MQ"
	select IMX8MQ
	select IMX8M_LPDDR4

config TARGET_IMX8MP_DDR4_EVK
	bool "imx8mp DDR4 EVK board"
	select IMX8MP
	select SUPPORT_SPL
	select IMX8M_DDR4
	select FSL_CAAM
	select FSL_BLOB
	select MISC
	select SPL_CRYPTO_SUPPORT if SPL

config TARGET_IMX8MM_AB2
	bool "imx8mm LPDDR4 Audio board 2.0"
	select IMX8MM
	select SUPPORT_SPL
	select IMX8M_LPDDR4
	select FSL_CAAM
	select FSL_BLOB
	select MISC
	select SPL_CRYPTO_SUPPORT if SPL

config TARGET_IMX8MM_DDR4_AB2
	bool "imx8mm DDR4 Audio board 2.0"
	select IMX8MM
	select SUPPORT_SPL
	select IMX8M_DDR4
	select FSL_CAAM
	select FSL_BLOB
	select MISC
	select SPL_CRYPTO_SUPPORT if SPL

config TARGET_IMX8MN_AB2
	bool "imx8mn LPDDR4 Audio board 2.0"
	select IMX8MN
	select SUPPORT_SPL
	select IMX8M_LPDDR4
	select FSL_CAAM
	select FSL_BLOB
	select MISC
	select SPL_CRYPTO_SUPPORT if SPL

config TARGET_IMX8MN_DDR4_AB2
	bool "imx8mn DDR4 Audio board 2.0"
	select IMX8MN
	select SUPPORT_SPL
	select IMX8M_DDR4
	select FSL_CAAM
	select FSL_BLOB
	select MISC
	select SPL_CRYPTO_SUPPORT if SPL

config TARGET_IMX8MN_DDR3L_AB2
	bool "imx8mn DDR3L Audio board 2.0"
	select IMX8MN
	select SUPPORT_SPL
	select IMX8M_DDR3L
	select FSL_CAAM
	select FSL_BLOB
	select MISC
	select SPL_CRYPTO_SUPPORT if SPL

config TARGET_VERDIN_IMX8MM
       bool "Support Toradex Verdin iMX8M Mini module"
       select IMX8MM
       select SUPPORT_SPL
       select IMX8M_LPDDR4

config TARGET_IMX8MM_BEACON
	bool "imx8mm Beacon Embedded devkit"
	select IMX8MM
	select SUPPORT_SPL
	select IMX8M_LPDDR4

config TARGET_IMX8MN_BEACON
	bool "imx8mn Beacon Embedded devkit"
	select IMX8MN
	select SUPPORT_SPL
	select IMX8M_LPDDR4

config TARGET_PHYCORE_IMX8MM
	bool "PHYTEC PHYCORE i.MX8MM"
	select IMX8MM
        select SUPPORT_SPL
	select IMX8M_LPDDR4

config TARGET_PHYCORE_IMX8MP
	bool "PHYTEC PHYCORE i.MX8MP"
	select IMX8MP
        select SUPPORT_SPL
	select IMX8M_LPDDR4

config TARGET_IMX8MM_SONY_HA_BB
        bool "imx8mm LPDDR4 Sony HA Bread board"
        select IMX8MM
        select SUPPORT_SPL
        select IMX8M_LPDDR4
        select FSL_CAAM
        select FSL_BLOB
        select SPL_CRYPTO_SUPPORT if SPL

config TARGET_IMX8MM_SONY_HA_VA
	bool "imx8mm LPDDR4 Sony HA VA board"
	select IMX8MM
	select SUPPORT_SPL
	select IMX8M_LPDDR4
	select FSL_CAAM
	select FSL_BLOB
	select SPL_CRYPTO_SUPPORT if SPL

config TARGET_IMX8MM_SONY_HA_SF
	bool "imx8mm LPDDR4 Sony HA SF board"
	select IMX8MM
	select SUPPORT_SPL
	select IMX8M_LPDDR4
	select FSL_CAAM
	select FSL_BLOB
	select SPL_CRYPTO_SUPPORT if SPL

endchoice

source "board/freescale/imx8mq_evk/Kconfig"
source "board/freescale/imx8mq_val/Kconfig"
source "board/freescale/imx8mm_ab2/Kconfig"
source "board/freescale/imx8mm_evk/Kconfig"
source "board/freescale/imx8mm_val/Kconfig"
source "board/freescale/imx8mn_evk/Kconfig"
source "board/freescale/imx8mp_evk/Kconfig"
source "board/gateworks/venice/Kconfig"
source "board/google/imx8mq_phanbell/Kconfig"
source "board/technexion/pico-imx8mq/Kconfig"
source "board/toradex/verdin-imx8mm/Kconfig"
source "board/beacon/imx8mm/Kconfig"
source "board/beacon/imx8mn/Kconfig"
source "board/phytec/phycore_imx8mm/Kconfig"
source "board/phytec/phycore_imx8mp/Kconfig"

source "board/freescale/imx8mm_sony_ha_va/Kconfig"
source "board/freescale/imx8mm_sony_ha_sf/Kconfig"

endif
