config HAS_CAAM
	bool

config IMX_CONFIG
	string

config ROM_UNIFIED_SECTIONS
	bool

config SYSCOUNTER_TIMER
	bool

config GPT_TIMER
	bool

config IMX_RDC
	bool "i.MX Resource domain controller driver"
	depends on ARCH_MX6 || ARCH_MX7
	help
	  i.MX Resource domain controller is used to assign masters
	  and peripherals to differet domains. This can be used to
	  isolate resources.

config IMX_BOOTAUX
	bool "Support boot auxiliary core"
	depends on ARCH_MX7 || ARCH_MX6
	help
	  bootaux [addr] to boot auxiliary core.

config USE_IMXIMG_PLUGIN
	bool "Use imximage plugin code"
	depends on ARCH_MX7 || ARCH_MX6
	help
	  i.MX6/7 supports DCD and Plugin. Enable this configuration
	  to use Plugin, otherwise DCD will be used.

config SECURE_BOOT
	bool "Support i.MX HAB features"
	depends on ARCH_MX7 || ARCH_MX6 || ARCH_MX5
	select FSL_CAAM if HAS_CAAM
	imply CMD_DEKBLOB
	help
	  This option enables the support for secure boot (HAB).
	  See doc/README.mxc_hab for more details.

config CMD_BMODE
	bool "Support the 'bmode' command"
	default y
	depends on ARCH_MX6 || ARCH_MX5
	help
	  This enables the 'bmode' (bootmode) command for forcing
	  a boot from specific media.

	  This is useful for forcing the ROM's usb downloader to
	  activate upon a watchdog reset which is nice when iterating
	  on U-Boot.  Using the reset button or running bmode normal
	  will set it back to normal.  This command currently
	  supports i.MX53 and i.MX6.

config CMD_DEKBLOB
	bool "Support the 'dek_blob' command"
	help
	  This enables the 'dek_blob' command which is used with the
	  Freescale secure boot mechanism. This command encapsulates and
	  creates a blob of data. See also CMD_BLOB and doc/README.mxc_hab for
	  more information.

config CMD_HDMIDETECT
	bool "Support the 'hdmidet' command"
	help
	  This enables the 'hdmidet' command which detects if an HDMI monitor
	  is connected.

config NXP_BOARD_REVISION
	bool "Read NXP board revision from fuses"
	depends on ARCH_MX6 || ARCH_MX7
	help
	  NXP boards based on i.MX6/7 contain the board revision information
	  stored in the fuses. Select this option if you want to be able to
	  retrieve the board revision information.
