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
	default "imx7d" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MP
	default "imx7d" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8ULP

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
	default "imx8"  if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8DXL

config BR2_PACKAGE_FIRMWARE_IMX_NEEDS_HDMI_FW
	bool
	default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M

config BR2_PACKAGE_FIRMWARE_IMX_NEEDS_EASRC_FW
	bool
	default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN

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
	default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MP

config BR2_PACKAGE_FIRMWARE_IMX_NEEDS_DDR_FW_IMX9
	bool
	default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX91
	default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX93

if BR2_PACKAGE_FIRMWARE_IMX_NEEDS_DDR_FW || BR2_PACKAGE_FIRMWARE_IMX_NEEDS_DDR_FW_IMX9

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)

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

config BR2_PACKAGE_FIRMWARE_IMX_DDR3
	bool "DDR3"
	help
	  Use DDR3 binaries (i.e.: ddr3_*_201810.bin).

endif
endchoice # DDR training FW

config BR2_PACKAGE_FIRMWARE_IMX_DDR_VERSION
	string "DDR3/DDR4/LPDDR4 firmware version"
	# Needed for backward compatibility, the package used to
	# unconditionally use HW version 201810 when DDR3/DDR4 was
	# selected
	default "201810" if BR2_PACKAGE_FIRMWARE_IMX_DDR3 || BR2_PACKAGE_FIRMWARE_IMX_DDR4
	help
	  Use a specific version of the imx ddr binaries. Leaving this
	  field empty will select the default version.

endif # BR2_PACKAGE_FIRMWARE_IMX_NEEDS_DDR_FW

if BR2_PACKAGE_FIRMWARE_IMX_NEEDS_DDR_FW || BR2_PACKAGE_FIRMWARE_IMX_NEEDS_DDR_FW_IMX9

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 || BR2_PACKAGE_FIRMWARE_IMX_NEEDS_DDR_FW_IMX9

endif # BR2_PACKAGE_FIRMWARE_IMX
