config BR2_PACKAGE_FIRMWARE_IMX
	bool "firmware-imx"
	depends on BR2_arm || BR2_aarch64 # Only relevant for i.MX
	help
	  Firmware blobs for the Freescale i.MX SoCs.

	  It contains blobs for SDMA, VPU, HDMI, EDPC, and DDR
	  training.

	  This library is provided by Freescale as-is and doesn't have
	  an upstream.

if BR2_PACKAGE_FIRMWARE_IMX

config BR2_PACKAGE_FIRMWARE_IMX_SDMA_FW_NAME
	string
	default "imx25" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX25_3STACK
	default "imx51" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX51
	default "imx53" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX53
	default "imx6q" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q
	default "imx6q" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6S
	default "imx6q" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6UL
	default "imx7d" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7
	default "imx7d" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M
	default "imx7d" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM
	default "imx7d" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN

config BR2_PACKAGE_FIRMWARE_IMX_VPU_FW_NAME
	string
	default "imx27" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX27ADS
	default "imx51" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX51
	default "imx53" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX53
	default "imx6"  if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q
	default "imx8"  if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8
	default "imx8"  if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X

config BR2_PACKAGE_FIRMWARE_IMX_NEEDS_HDMI_FW
	bool
	default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M

config BR2_PACKAGE_FIRMWARE_IMX_NEEDS_EPDC_FW
	bool
	default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q
	default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6S

config BR2_PACKAGE_FIRMWARE_IMX_NEEDS_DDR_FW
	bool
	default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M
	default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM
	default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN

if BR2_PACKAGE_FIRMWARE_IMX_NEEDS_DDR_FW

choice
	bool "DDR training binaries"
	default BR2_PACKAGE_FIRMWARE_IMX_LPDDR4
	help
	  Choose the DDR training binaries to be used depending on the
	  kind of memory that is available on the target board (DDR4,
	  LPDDR4, etc...).

config BR2_PACKAGE_FIRMWARE_IMX_LPDDR4
	bool "lpddr4"
	help
	  Use LPDDR4 binaries (i.e.: lpddr4_pmu_train_*.bin)

config BR2_PACKAGE_FIRMWARE_IMX_DDR4
	bool "DDR4"
	help
	  Use DDR4 binaries (i.e.: ddr4_*_201810.bin).

endchoice # DDR training FW

config BR2_PACKAGE_FIRMWARE_IMX_IMEM_LEN
	hex "(LP)DDR IMEM padding length"
	default 0x8000
	help
	  The IMEM firmware will be padded to this length

config BR2_PACKAGE_FIRMWARE_IMX_DMEM_LEN
	hex "(LP)DDR DMEM padding length"
	default 0x4000
	help
	  The DMEM firmware will be padded to this length

endif # BR2_PACKAGE_FIRMWARE_IMX_NEEDS_DDR_FW

endif # BR2_PACKAGE_FIRMWARE_IMX
