From af99e7a5f386304967480fcf68e55131f26f9b4f Mon Sep 17 00:00:00 2001 From: Heiko Thiery Date: Sun, 12 Sep 2021 07:09:06 +0200 Subject: [PATCH] boot/uboot: copy IMX firmware files to uboot package dir 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 Reviewed-by: Fabio Estevam [yann.morin.1998@free.fr: simplify hook] Signed-off-by: Yann E. MORIN --- boot/uboot/Config.in | 11 +++++++++++ boot/uboot/uboot.mk | 17 +++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/boot/uboot/Config.in b/boot/uboot/Config.in index 0854fb13cc..8cc40cd9c5 100644 --- a/boot/uboot/Config.in +++ b/boot/uboot/Config.in @@ -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 diff --git a/boot/uboot/uboot.mk b/boot/uboot/uboot.mk index 1a840d9cc1..184f822af4 100644 --- a/boot/uboot/uboot.mk +++ b/boot/uboot/uboot.mk @@ -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 -- 2.30.2