boot/uboot: copy IMX firmware files to uboot package dir
authorHeiko Thiery <heiko.thiery@gmail.com>
Sun, 12 Sep 2021 05:09:06 +0000 (07:09 +0200)
committerYann E. MORIN <yann.morin.1998@free.fr>
Sun, 12 Sep 2021 08:48:06 +0000 (10:48 +0200)
The mainline U-Boot can create an i.MX specific firmware image (e.g. flash.bin).
For this the i.MX firmware files (DDR, HDMI) must be in the toplevel directory.

Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
[yann.morin.1998@free.fr: simplify hook]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
boot/uboot/Config.in
boot/uboot/uboot.mk

index 0854fb13cc7f6b5e3a7b3fe4be2a094db5b2bc7a..8cc40cd9c5cc8354fea01c12b0c0fa71114e1142 100644 (file)
@@ -239,6 +239,17 @@ config BR2_TARGET_UBOOT_NEEDS_OPENSBI
          and that the OpenSBI variable pointing to OpenSBI binary,
          is passed during the Buildroot build.
 
+config BR2_TARGET_UBOOT_NEEDS_IMX_FIRMWARE
+       bool "U-Boot needs firmware-imx"
+       depends on BR2_PACKAGE_FIRMWARE_IMX
+       depends on BR2_PACKAGE_FIRMWARE_IMX_NEEDS_DDR_FW || \
+               BR2_PACKAGE_FIRMWARE_IMX_NEEDS_HDMI_FW
+       help
+         Some i.MX8 platforms (such as i.MX8 M, i.MX 8M Mini, i.MX 8M Nano)
+         encapsulate NXP specific firmware (DDR, HDMI) inside U-Boot.
+         This option makes sure that the i.MX firmwares are copied into
+         the U-Boot source directory.
+
 menu "U-Boot binary format"
 
 config BR2_TARGET_UBOOT_FORMAT_AIS
index 1a840d9cc165792d4c701cbb2252b97255baff5e..184f822af4dc20b4fa6e043f1cd57910027be87f 100644 (file)
@@ -180,6 +180,23 @@ UBOOT_DEPENDENCIES += opensbi
 UBOOT_MAKE_OPTS += OPENSBI=$(BINARIES_DIR)/fw_dynamic.bin
 endif
 
+# Mainline U-Boot versions can create the i.MX specific boot images
+# and need some NXP firmware blobs.
+ifeq ($(BR2_TARGET_UBOOT_NEEDS_IMX_FIRMWARE),y)
+UBOOT_DEPENDENCIES += firmware-imx
+UBOOT_IMX_FW_FILES = \
+       $(if $(BR2_PACKAGE_FIRMWARE_IMX_NEEDS_HDMI_FW),signed_hdmi_imx8m.bin) \
+       $(if $(BR2_PACKAGE_FIRMWARE_IMX_LPDDR4),lpddr4*.bin) \
+       $(if $(BR2_PACKAGE_FIRMWARE_IMX_DDR4),ddr4*.bin)
+
+define UBOOT_COPY_IMX_FW_FILES
+       $(foreach fw,$(UBOOT_IMX_FW_FILES),\
+               cp $(BINARIES_DIR)/$(fw) $(@D)/
+       )
+endef
+UBOOT_PRE_BUILD_HOOKS += UBOOT_COPY_IMX_DDR_FIRMWARE
+endif
+
 ifeq ($(BR2_TARGET_UBOOT_NEEDS_DTC),y)
 UBOOT_DEPENDENCIES += host-dtc
 endif