package/freescale-imx/firmware-imx: allow ddr firmware version override

Add support for selecting a specific version of the DDR firmware
version. For example Variscite's imx8mp-var-dart SOM requires the
"_202006" version of the lpddr4_pmu_train_* binaries.

Signed-off-by: Bram Vlerick <bram.vlerick@openpixelsystems.org>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
Bram Vlerick 2022-08-16 09:05:17 +02:00 committed by Thomas Petazzoni
parent 75cb88ae66
commit 4c2f0b918c
2 changed files with 37 additions and 12 deletions

View File

@ -82,6 +82,16 @@ config BR2_PACKAGE_FIRMWARE_IMX_DDR3
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.
config BR2_PACKAGE_FIRMWARE_IMX_IMEM_LEN
hex "(LP)DDR IMEM padding length"
default 0x8000

View File

@ -36,6 +36,11 @@ define FIRMWARE_IMX_PREPARE_DDR_FW
$(FIRMWARE_IMX_DDRFW_DIR)/$(strip $(3)).bin
endef
FIRMWARE_IMX_DDR_VERSION = $(call qstrip,$(BR2_PACKAGE_FIRMWARE_IMX_DDR_VERSION))
ifneq ($(FIRMWARE_IMX_DDR_VERSION),)
FIRMWARE_IMX_DDR_VERSION_SUFFIX = _$(FIRMWARE_IMX_DDR_VERSION)
endif
ifeq ($(BR2_PACKAGE_FIRMWARE_IMX_LPDDR4),y)
FIRMWARE_IMX_DDRFW_DIR = $(@D)/firmware/ddr/synopsys
@ -44,9 +49,13 @@ define FIRMWARE_IMX_INSTALL_IMAGE_DDR_FW
# lpddr4_pmu_train_fw.bin is needed when generating imx8-boot-sd.bin
# which is done in post-image script.
$(call FIRMWARE_IMX_PREPARE_DDR_FW, \
lpddr4_pmu_train_1d_imem,lpddr4_pmu_train_1d_dmem,lpddr4_pmu_train_1d_fw)
lpddr4_pmu_train_1d_imem$(FIRMWARE_IMX_DDR_VERSION_SUFFIX),
lpddr4_pmu_train_1d_dmem$(FIRMWARE_IMX_DDR_VERSION_SUFFIX),
lpddr4_pmu_train_1d_fw)
$(call FIRMWARE_IMX_PREPARE_DDR_FW, \
lpddr4_pmu_train_2d_imem,lpddr4_pmu_train_2d_dmem,lpddr4_pmu_train_2d_fw)
lpddr4_pmu_train_2d_imem$(FIRMWARE_IMX_DDR_VERSION_SUFFIX),
lpddr4_pmu_train_2d_dmem$(FIRMWARE_IMX_DDR_VERSION_SUFFIX),
lpddr4_pmu_train_2d_fw)
cat $(FIRMWARE_IMX_DDRFW_DIR)/lpddr4_pmu_train_1d_fw.bin \
$(FIRMWARE_IMX_DDRFW_DIR)/lpddr4_pmu_train_2d_fw.bin > \
$(BINARIES_DIR)/lpddr4_pmu_train_fw.bin
@ -67,13 +76,17 @@ define FIRMWARE_IMX_INSTALL_IMAGE_DDR_FW
# ddr4_fw.bin is needed when generating imx8-boot-sd.bin
# which is done in post-image script.
$(call FIRMWARE_IMX_PREPARE_DDR_FW, \
ddr4_imem_1d_201810,ddr4_dmem_1d_201810,ddr4_1d_201810_fw)
ddr4_imem_1d$(FIRMWARE_IMX_DDR_VERSION_SUFFIX),
ddr4_dmem_1d$(FIRMWARE_IMX_DDR_VERSION_SUFFIX),
ddr4_1d_fw)
$(call FIRMWARE_IMX_PREPARE_DDR_FW, \
ddr4_imem_2d_201810,ddr4_dmem_2d_201810,ddr4_2d_201810_fw)
cat $(FIRMWARE_IMX_DDRFW_DIR)/ddr4_1d_201810_fw.bin \
$(FIRMWARE_IMX_DDRFW_DIR)/ddr4_2d_201810_fw.bin > \
$(BINARIES_DIR)/ddr4_201810_fw.bin
ln -sf $(BINARIES_DIR)/ddr4_201810_fw.bin $(BINARIES_DIR)/ddr_fw.bin
ddr4_imem_2d$(FIRMWARE_IMX_DDR_VERSION_SUFFIX),
ddr4_dmem_2d$(FIRMWARE_IMX_DDR_VERSION_SUFFIX),
ddr4_2d_fw)
cat $(FIRMWARE_IMX_DDRFW_DIR)/ddr4_1d_fw.bin \
$(FIRMWARE_IMX_DDRFW_DIR)/ddr4_2d_fw.bin > \
$(BINARIES_DIR)/ddr4_fw.bin
ln -sf $(BINARIES_DIR)/ddr4_fw.bin $(BINARIES_DIR)/ddr_fw.bin
# U-Boot supports creation of the combined flash.bin image. To make
# sure that U-Boot can access all available files copy them to
@ -90,10 +103,12 @@ define FIRMWARE_IMX_INSTALL_IMAGE_DDR_FW
# ddr3_fw.bin is needed when generating imx8-boot-sd.bin
# which is done in post-image script.
$(call FIRMWARE_IMX_PREPARE_DDR_FW, \
ddr3_imem_1d_201810,ddr3_dmem_1d_201810,ddr3_1d_201810_fw)
cat $(FIRMWARE_IMX_DDRFW_DIR)/ddr3_1d_201810_fw.bin > \
$(BINARIES_DIR)/ddr3_201810_fw.bin
ln -sf $(BINARIES_DIR)/ddr3_201810_fw.bin $(BINARIES_DIR)/ddr_fw.bin
ddr3_imem_1d$(FIRMWARE_IMX_DDR_VERSION_SUFFIX),
ddr3_dmem_1d$(FIRMWARE_IMX_DDR_VERSION_SUFFIX),
ddr3_1d_fw)
cat $(FIRMWARE_IMX_DDRFW_DIR)/ddr3_1d_fw.bin > \
$(BINARIES_DIR)/ddr3_fw.bin
ln -sf $(BINARIES_DIR)/ddr3_fw.bin $(BINARIES_DIR)/ddr_fw.bin
# U-Boot supports creation of the combined flash.bin image. To make
# sure that U-Boot can access all available files copy them to