if ARCH_IMX9

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

config SPL_IMX_BBSM
    bool "Support BBSM Tamper Detection feature"
	depends on IMX93
	default n
    help
      This option enables the support for BBSM Tamper Detection. This option is
      only supported on i.MX93.

config IMX_CRRM
    bool "Support i.MX9 cyber resilient recovery module (CRRM)"
	depends on IMX94
	select PSCI_BOARD_REBOOT
    help
      This option enables the support for IMX CRRM.

config IMX_CRRM_PROTECT_SIZE
	hex "Specify the size for XSPI protected image"
	depends on IMX_CRRM
	default 0x400000

config IMX_CRRM_AWDT_TIMEOUT
	int "Specify the initialized timeout(ms) for CRRM AWDT timer"
	depends on IMX_CRRM
	default 300000

config IMX_CRRM_SELFTEST
    bool "Enable CRRM self test routing in SPL/u-boot"
    help
      This option enables CRRM self test. No CRRM OS is needed in the test.

config IMX9
	bool
	select HAS_CAAM
	select ROM_UNIFIED_SECTIONS

config IMX93
	bool
	select IMX9
	select ARMV8_SPL_EXCEPTION_VECTORS
	select SYS_FSL_ERRATUM_052357

config IMX91
	bool
	select IMX9
	select ARMV8_SPL_EXCEPTION_VECTORS
	select SYS_FSL_ERRATUM_052357

config IMX95
	bool
	select ARMV8_SPL_EXCEPTION_VECTORS
	select IMX9
	select DM_MAILBOX
	select SCMI_FIRMWARE
	select SCMI_TRANSPORT_SMT_INTR
	select SPL_IMX_CONTAINER_USE_TRAMPOLINE
	select IMX_PQC_SUPPORT

config IMX94
	bool
	select IMX9
	select ARMV8_SPL_EXCEPTION_VECTORS
	select SCMI_FIRMWARE
	select DM_MAILBOX
	select SCMI_TRANSPORT_SMT_INTR
	select SPL_IMX_CONTAINER_USE_TRAMPOLINE
	select IMX_PQC_SUPPORT

config SYS_SOC
	default "imx9"

choice
	prompt  "NXP i.MX9 board select"
	optional

config TARGET_IMX91_11X11_EVK
	bool "imx91_11x11_evk"
	select OF_BOARD_FIXUP
	select IMX91
	imply OF_UPSTREAM
	imply BOOTSTD_FULL
	imply BOOTSTD_BOOTCOMMAND

config TARGET_IMX93_9X9_QSB
	bool "imx93_qsb"
	select OF_BOARD_FIXUP
	select IMX93
	select IMX9_LPDDR4X
	imply OF_UPSTREAM
	imply BOOTSTD_FULL
	imply BOOTSTD_BOOTCOMMAND
	select CMD_REMOTEPROC
	select REMOTEPROC_IMX
	select REGMAP
	select SYSCON

config TARGET_IMX91_11X11_FRDM
	bool "imx91_11x11_frdm"
	select OF_BOARD_FIXUP
	select IMX91
	select IMX9_LPDDR4X
	imply BOOTSTD_FULL
	imply BOOTSTD_BOOTCOMMAND

config TARGET_IMX91_11X11_FRDM_IMX91S
	bool "imx91_11x11_frdm_imx91s"
	select OF_BOARD_FIXUP
	select IMX91
	select IMX9_LPDDR4X
	imply BOOTSTD_FULL
	imply BOOTSTD_BOOTCOMMAND

config TARGET_IMX91_9X9_QSB
	bool "imx91_9x9_qsb"
	select OF_BOARD_FIXUP
	select IMX91
	select IMX9_LPDDR4X
	imply BOOTSTD_FULL
	imply BOOTSTD_BOOTCOMMAND

config TARGET_IMX93_14X14_EVK
	bool "imx93_14x14_evk"
	select OF_BOARD_FIXUP
	select IMX93
	imply OF_UPSTREAM
	imply BOOTSTD_FULL
	imply BOOTSTD_BOOTCOMMAND
	select CMD_REMOTEPROC
	select REMOTEPROC_IMX
	select REGMAP
	select SYSCON

config TARGET_IMX93_11X11_EVK
	bool "imx93_11x11_evk"
	select OF_BOARD_FIXUP
	select IMX93
	imply OF_UPSTREAM
	imply BOOTSTD_FULL
	imply BOOTSTD_BOOTCOMMAND
	select CMD_REMOTEPROC
	select REMOTEPROC_IMX
	select REGMAP
	select SYSCON

config TARGET_IMX93_11X11_FRDM
	bool "imx93_11x11_frdm"
	select OF_BOARD_FIXUP
	select IMX93
	imply BOOTSTD_FULL
	imply BOOTSTD_BOOTCOMMAND
	select CMD_REMOTEPROC
	select REMOTEPROC_IMX
	select REGMAP
	select SYSCON

config TARGET_IMX93_VAR_SOM
	bool "imx93_var_som"
	select IMX93
	select IMX9_LPDDR4X

config TARGET_PHYCORE_IMX93
	bool "phycore_imx93"
	select IMX93
	select IMX9_LPDDR4X
	select OF_BOARD_FIXUP
	select OF_BOARD_SETUP

config TARGET_IMX95_19X19_EVK
	bool "imx95_19x19_evk"
	select IMX95
	imply BOOTSTD_BOOTCOMMAND
	imply BOOTSTD_FULL
	select CMD_REMOTEPROC
	select REMOTEPROC_IMX
	select REGMAP
	select SYSCON
	select IMX_SM_LMM
	select IMX_SM_CPU

config TARGET_VERDIN_IMX95_19X19
	bool "imx95_verdin_evk"
	select IMX95
	imply BOOTSTD_BOOTCOMMAND
	imply BOOTSTD_FULL
	select CMD_REMOTEPROC
	select REMOTEPROC_IMX
	select REGMAP
	select SYSCON
	select IMX_SM_LMM
	select IMX_SM_CPU

config TARGET_IMX95_15X15_EVK
	bool "imx95_15x15_evk"
	select IMX95
	imply BOOTSTD_BOOTCOMMAND
	imply BOOTSTD_FULL
	select CMD_REMOTEPROC
	select REMOTEPROC_IMX
	select REGMAP
	select SYSCON
	select IMX_SM_LMM
	select IMX_SM_CPU

config TARGET_IMX95_15X15_FRDM
	bool "imx95_15x15_frdm"
	select IMX95
	imply BOOTSTD_BOOTCOMMAND
	imply BOOTSTD_FULL
	select CMD_REMOTEPROC
	select REMOTEPROC_IMX
	select REGMAP
	select SYSCON
	select IMX_SM_LMM
	select IMX_SM_CPU

config TARGET_IMX95_19X19_FRDM_PRO
	bool "imx95_19x19_frdm_pro"
	select IMX95
	imply BOOTSTD_BOOTCOMMAND
	imply BOOTSTD_FULL
	select CMD_REMOTEPROC
	select REMOTEPROC_IMX
	select REGMAP
	select SYSCON
	select IMX_SM_LMM
	select IMX_SM_CPU

config TARGET_IMX943_EVK
	bool "imx943_evk"
	select IMX94
	select CMD_REMOTEPROC
	select REMOTEPROC_IMX
	select REGMAP
	select SYSCON
	select IMX_SM_LMM
	select IMX_SM_CPU
	imply BOOTSTD_BOOTCOMMAND
	imply BOOTSTD_FULL

config TARGET_IMX943_ORANGEBOX
	bool "imx943_orangebox"
	select IMX94
	imply BOOTSTD_BOOTCOMMAND
	imply BOOTSTD_FULL

endchoice

source "board/freescale/imx91_evk/Kconfig"
source "board/freescale/imx91_qsb/Kconfig"
source "board/freescale/imx91_frdm/Kconfig"
source "board/freescale/imx91_frdm_imx91s/Kconfig"
source "board/freescale/imx93_evk/Kconfig"
source "board/freescale/imx93_qsb/Kconfig"
source "board/freescale/imx93_frdm/Kconfig"
source "board/phytec/phycore_imx93/Kconfig"
source "board/variscite/imx93_var_som/Kconfig"
source "board/freescale/imx95_evk/Kconfig"
source "board/freescale/imx95_frdm/Kconfig"
source "board/toradex/verdin-imx95/Kconfig"
source "board/freescale/imx94_evk/Kconfig"
source "board/freescale/imx94_orangebox/Kconfig"

endif

