Message ID | 20210912050905.21355-1-heiko.thiery@gmail.com |
---|---|
State | Accepted |
Headers | show |
Series | [v3] boot/uboot: copy IMX firmware files to uboot package dir | expand |
Heiko, All, On 2021-09-12 07:09 +0200, Heiko Thiery spake thusly: > 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> > --- > > v3: > - included the comments from Fabio > - add Fabio's SOB > > v2: > - small changes in commit messages (thanks Stephane) > - use "i.MX 8M" for consistency (thanks Stephane) > > boot/uboot/Config.in | 11 +++++++++++ > boot/uboot/uboot.mk | 27 +++++++++++++++++++++++++++ > 2 files changed, 38 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..a446830c6f 100644 > --- a/boot/uboot/uboot.mk > +++ b/boot/uboot/uboot.mk > @@ -180,6 +180,33 @@ 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 > + > +ifeq ($(BR2_PACKAGE_FIRMWARE_IMX_NEEDS_HDMI_FW),y) > +define UBOOT_COPY_IMX_DDR_FIRMWARE > + cp $(BINARIES_DIR)/signed_hdmi_imx8m.bin $(@D)/ > +endef > +UBOOT_PRE_BUILD_HOOKS += UBOOT_COPY_IMX_DDR_FIRMWARE > +endif > + > +ifeq ($(BR2_PACKAGE_FIRMWARE_IMX_LPDDR4),y) > +define UBOOT_COPY_IMX_LPDDR4_FIRMWARE > + cp $(BINARIES_DIR)/lpddr4*.bin $(@D)/ > +endef > +UBOOT_PRE_BUILD_HOOKS += UBOOT_COPY_IMX_LPDDR4_FIRMWARE > +endif > + > +ifeq ($(BR2_PACKAGE_FIRMWARE_IMX_DDR4),y) > +define UBOOT_COPY_IMX_DDR4_FIRMWARE > + cp $(BINARIES_DIR)/ddr4*.bin $(@D)/ > +endef > +UBOOT_PRE_BUILD_HOOKS += UBOOT_COPY_IMX_DDR4_FIRMWARE > +endif > +endif I've changed that to a simpler hook: 185 ifeq ($(BR2_TARGET_UBOOT_NEEDS_IMX_FIRMWARE),y) 186 UBOOT_DEPENDENCIES += firmware-imx 187 UBOOT_IMX_FW_FILES = \ 188 $(if $(BR2_PACKAGE_FIRMWARE_IMX_NEEDS_HDMI_FW),signed_hdmi_imx8m.bin) \ 189 $(if $(BR2_PACKAGE_FIRMWARE_IMX_LPDDR4),lpddr4*.bin) \ 190 $(if $(BR2_PACKAGE_FIRMWARE_IMX_DDR4),ddr4*.bin) 191 192 define UBOOT_COPY_IMX_FW_FILES 193 $(foreach fw,$(UBOOT_IMX_FW_FILES),\ 194 cp $(BINARIES_DIR)/$(fw) $(@D)/ 195 ) 196 endef 197 UBOOT_PRE_BUILD_HOOKS += UBOOT_COPY_IMX_DDR_FIRMWARE 198 endif Applied to master with this change, thanks. Regards, Yann E. MORIN. > ifeq ($(BR2_TARGET_UBOOT_NEEDS_DTC),y) > UBOOT_DEPENDENCIES += host-dtc > endif > -- > 2.20.1 > > _______________________________________________ > buildroot mailing list > buildroot@lists.buildroot.org > https://lists.buildroot.org/mailman/listinfo/buildroot
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..a446830c6f 100644 --- a/boot/uboot/uboot.mk +++ b/boot/uboot/uboot.mk @@ -180,6 +180,33 @@ 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 + +ifeq ($(BR2_PACKAGE_FIRMWARE_IMX_NEEDS_HDMI_FW),y) +define UBOOT_COPY_IMX_DDR_FIRMWARE + cp $(BINARIES_DIR)/signed_hdmi_imx8m.bin $(@D)/ +endef +UBOOT_PRE_BUILD_HOOKS += UBOOT_COPY_IMX_DDR_FIRMWARE +endif + +ifeq ($(BR2_PACKAGE_FIRMWARE_IMX_LPDDR4),y) +define UBOOT_COPY_IMX_LPDDR4_FIRMWARE + cp $(BINARIES_DIR)/lpddr4*.bin $(@D)/ +endef +UBOOT_PRE_BUILD_HOOKS += UBOOT_COPY_IMX_LPDDR4_FIRMWARE +endif + +ifeq ($(BR2_PACKAGE_FIRMWARE_IMX_DDR4),y) +define UBOOT_COPY_IMX_DDR4_FIRMWARE + cp $(BINARIES_DIR)/ddr4*.bin $(@D)/ +endef +UBOOT_PRE_BUILD_HOOKS += UBOOT_COPY_IMX_DDR4_FIRMWARE +endif +endif + ifeq ($(BR2_TARGET_UBOOT_NEEDS_DTC),y) UBOOT_DEPENDENCIES += host-dtc endif