DistroKit Mailinglist
 help / color / mirror / Atom feed
From: Robert Schwebel <r.schwebel@pengutronix.de>
To: Alexander Dahl <ada@thorsis.com>
Cc: distrokit@pengutronix.de
Subject: Re: [DistroKit] [PATCH 2/9] platform: v8a: firmware-imx: Rework extract, install, and targetinstall
Date: Mon, 27 May 2024 18:13:30 +0200	[thread overview]
Message-ID: <ZlSxKhmZZBu7bFUG@pengutronix.de> (raw)
In-Reply-To: <20240425080303.171897-3-ada@thorsis.com>

applied to next

On Thu, Apr 25, 2024 at 10:02:55AM +0200, Alexander Dahl wrote:
> Usually in ptxdist stages work like this: in extract stage files are put
> into BUILDDIR.  From there `make install` or something similar in
> install stage copies build artifacts to PKGDIR.  The install.post stage
> copies everything from PKDIR to SYSROOT_TARGET.  Finally targetinstall
> stage uses the files from PKGDIR to populate root.
> 
> Here everything was extracted to PKGDIR.  Some files where manually
> copied from PKGDIR to $(SYSROOT_TARGET)/usr/lib/firmware, before
> install.post copied those files again to $(SYSROOT_TARGET)/firmware …
> 
> Now the usual cycle as described above is followed, hopefully leading to
> much less confusion, and avoiding duplicate files in sysroot-target.
> 
> This gives us predictable paths in SYSROOT_TARGET and allows to use
> files in $(SYSROOT_TARGET) to be used by other packages like U-Boot by
> directly pointing at them, or pointing to the folder they are in (most
> likely '$(SYSROOT_TARGET)/usr/lib/firmware').
> 
> (barebox does not point at those files, but copies them to its own
> sourcedir through the inject mechanism.)
> 
> Signed-off-by: Alexander Dahl <ada@thorsis.com>
> ---
>  configs/platform-v8a/rules/firmware-imx.make | 81 +++++++++++++-------
>  1 file changed, 52 insertions(+), 29 deletions(-)
> 
> diff --git a/configs/platform-v8a/rules/firmware-imx.make b/configs/platform-v8a/rules/firmware-imx.make
> index b640db6..57a10c3 100644
> --- a/configs/platform-v8a/rules/firmware-imx.make
> +++ b/configs/platform-v8a/rules/firmware-imx.make
> @@ -20,10 +20,11 @@ FIRMWARE_IMX_SKIP	:= 38918
>  FIRMWARE_IMX		:= firmware-imx-$(FIRMWARE_IMX_VERSION)
>  FIRMWARE_IMX_SUFFIX	:= bin
>  FIRMWARE_IMX_URL	:= http://www.nxp.com/lgfiles/NMG/MAD/YOCTO/$(FIRMWARE_IMX).$(FIRMWARE_IMX_SUFFIX)
> +FIRMWARE_IMX_SOURCE	:= $(SRCDIR)/$(FIRMWARE_IMX).$(FIRMWARE_IMX_SUFFIX)
> +FIRMWARE_IMX_DIR	:= $(BUILDDIR)/$(FIRMWARE_IMX)
>  FIRMWARE_IMX_LICENSE	:= NXP-Software-License-Agreement
>  FIRMWARE_IMX_LICENSE_FILES := \
> -	file://$(FIRMWARE_IMX_PKGDIR)/COPYING;md5=228c72f2a91452b8a03c4cab30f30ef9
> -FIRMWARE_IMX_SOURCE	:= $(SRCDIR)/$(FIRMWARE_IMX).$(FIRMWARE_IMX_SUFFIX)
> +	file://COPYING;md5=228c72f2a91452b8a03c4cab30f30ef9
>  
>  #
>  # Firmware blobs for barebox
> @@ -51,38 +52,31 @@ endif
>  
>  $(STATEDIR)/firmware-imx.extract:
>  	@$(call targetinfo)
> -	@mkdir -p "$(PKGDIR)"
> -	@dd if=$(FIRMWARE_IMX_SOURCE) bs=$(FIRMWARE_IMX_SKIP) skip=1 | tar xj -C $(PKGDIR)
> +	@$(call clean, $(FIRMWARE_IMX_DIR))
> +	@mkdir -p "$(FIRMWARE_IMX_DIR)"
> +	@dd if="$(FIRMWARE_IMX_SOURCE)" bs=$(FIRMWARE_IMX_SKIP) skip=1 \
> +		| tar -xj --strip-components=2 -C "$(FIRMWARE_IMX_DIR)"
> +	@$(call patchin, FIRMWARE_IMX)
> +	@$(call touch)
> +
> +# ----------------------------------------------------------------------------
> +# Prepare
> +# ----------------------------------------------------------------------------
> +
> +FIRMWARE_IMX_CONF_TOOL	:= NO
> +
> +# ----------------------------------------------------------------------------
> +# Compile
> +# ----------------------------------------------------------------------------
> +
> +$(STATEDIR)/firmware-imx.compile:
> +	@$(call targetinfo)
>  	@$(call touch)
>  
>  # ----------------------------------------------------------------------------
>  # Install
>  # ----------------------------------------------------------------------------
>  
> -$(STATEDIR)/firmware-imx.install:
> -	@$(call targetinfo)
> -
> -ifdef PTXCONF_FIRMWARE_IMX_BOOTIMAGE_IMX8
> -	@$(foreach f, lpddr4_pmu_train_1d_dmem.bin lpddr4_pmu_train_1d_imem.bin \
> -	              lpddr4_pmu_train_2d_dmem.bin lpddr4_pmu_train_2d_imem.bin, \
> -		install -v -D -m644 $(FIRMWARE_IMX_PKGDIR)/firmware/ddr/synopsys/$(f) \
> -		$(PTXCONF_SYSROOT_TARGET)/usr/lib/firmware/ddr/synopsys/$(f)$(ptx/nl))
> -
> -	@$(foreach f, ddr4_dmem_1d.bin ddr4_dmem_2d.bin \
> -	              ddr4_imem_1d.bin ddr4_imem_2d.bin, \
> -		install -v -D -m644 $(FIRMWARE_IMX_PKGDIR)/firmware/ddr/synopsys/$(f) \
> -		$(PTXCONF_SYSROOT_TARGET)/usr/lib/firmware/ddr/synopsys/$(f)$(ptx/nl))
> -
> -	@$(foreach f, signed_dp_imx8m.bin signed_hdmi_imx8m.bin, \
> -		install -v -D -m644 $(FIRMWARE_IMX_PKGDIR)/firmware/hdmi/cadence/$(f) \
> -		$(PTXCONF_SYSROOT_TARGET)/usr/lib/firmware/hdmi/cadence/$(f)$(ptx/nl))
> -endif
> -
> -	@$(call touch)
> -# ----------------------------------------------------------------------------
> -# Target-Install
> -# ----------------------------------------------------------------------------
> -
>  FIRMWARE_IMX_INSTALL-y					:=
>  FIRMWARE_IMX_INSTALL-$(PTXCONF_FIRMWARE_IMX_VPU_IMX27)	+= vpu_fw_imx27_TO2.bin
>  FIRMWARE_IMX_INSTALL-$(PTXCONF_FIRMWARE_IMX_VPU_IMX6Q)	+= vpu_fw_imx6q.bin
> @@ -90,6 +84,35 @@ FIRMWARE_IMX_INSTALL-$(PTXCONF_FIRMWARE_IMX_VPU_IMX6DL)	+= vpu_fw_imx6d.bin
>  FIRMWARE_IMX_INSTALL-$(PTXCONF_FIRMWARE_IMX_VPU_IMX53)	+= vpu_fw_imx53.bin
>  FIRMWARE_IMX_INSTALL-$(PTXCONF_FIRMWARE_IMX_VPU_IMX51)	+= vpu_fw_imx51.bin
>  
> +$(STATEDIR)/firmware-imx.install:
> +	@$(call targetinfo)
> +
> +	@$(foreach f,$(FIRMWARE_IMX_INSTALL-y), \
> +		install -v -D -m644 $(FIRMWARE_IMX_DIR)/firmware/vpu/$(f) \
> +		$(FIRMWARE_IMX_PKGDIR)/usr/lib/firmware/vpu/$(f)$(ptx/nl))
> +
> +ifdef PTXCONF_FIRMWARE_IMX_BOOTIMAGE_IMX8
> +	@$(foreach f, lpddr4_pmu_train_1d_dmem.bin lpddr4_pmu_train_1d_imem.bin \
> +	              lpddr4_pmu_train_2d_dmem.bin lpddr4_pmu_train_2d_imem.bin, \
> +		install -v -D -m644 $(FIRMWARE_IMX_DIR)/firmware/ddr/synopsys/$(f) \
> +		$(FIRMWARE_IMX_PKGDIR)/usr/lib/firmware/ddr/synopsys/$(f)$(ptx/nl))
> +
> +	@$(foreach f, ddr4_dmem_1d.bin ddr4_dmem_2d.bin \
> +	              ddr4_imem_1d.bin ddr4_imem_2d.bin, \
> +		install -v -D -m644 $(FIRMWARE_IMX_DIR)/firmware/ddr/synopsys/$(f) \
> +		$(FIRMWARE_IMX_PKGDIR)/usr/lib/firmware/ddr/synopsys/$(f)$(ptx/nl))
> +
> +	@$(foreach f, signed_dp_imx8m.bin signed_hdmi_imx8m.bin, \
> +		install -v -D -m644 $(FIRMWARE_IMX_DIR)/firmware/hdmi/cadence/$(f) \
> +		$(FIRMWARE_IMX_PKGDIR)/usr/lib/firmware/hdmi/cadence/$(f)$(ptx/nl))
> +endif
> +
> +	@$(call touch)
> +
> +# ----------------------------------------------------------------------------
> +# Target-Install
> +# ----------------------------------------------------------------------------
> +
>  $(STATEDIR)/firmware-imx.targetinstall:
>  	@$(call targetinfo)
>  
> @@ -100,7 +123,7 @@ $(STATEDIR)/firmware-imx.targetinstall:
>  	@$(call install_fixup, firmware-imx,DESCRIPTION,missing)
>  	@$(foreach f,$(FIRMWARE_IMX_INSTALL-y), \
>  		$(call install_copy, firmware-imx, 0, 0, 0644, \
> -			$(FIRMWARE_IMX_PKGDIR)/firmware/vpu/$(f), \
> +			$(FIRMWARE_IMX_PKGDIR)/usr/lib/firmware/vpu/$(f), \
>  			/usr/lib/firmware/$(f))$(ptx/nl))
>  	@$(call install_finish, firmware-imx)
>  
> -- 
> 2.39.2
> 
> 
> 

-- 
Pengutronix e.K.                           | Dipl.-Ing. Robert Schwebel  |
Steuerwalder Str. 21                       | https://www.pengutronix.de/ |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-9    |



  reply	other threads:[~2024-05-27 16:13 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-25  8:02 [DistroKit] [PATCH 0/9] platform: v8a: firmware: Rework for upper layers with different boards Alexander Dahl
2024-04-25  8:02 ` [DistroKit] [PATCH 1/9] platform: v8a: firmware-imx: Fix dependencies Alexander Dahl
2024-05-27 16:13   ` Robert Schwebel
2024-04-25  8:02 ` [DistroKit] [PATCH 2/9] platform: v8a: firmware-imx: Rework extract, install, and targetinstall Alexander Dahl
2024-05-27 16:13   ` Robert Schwebel [this message]
2024-04-25  8:02 ` [DistroKit] [PATCH 3/9] platform: v8a: firmware-imx: Version bump 8.8 -> 8.23 Alexander Dahl
2024-05-27 16:13   ` Robert Schwebel
2024-04-25  8:02 ` [DistroKit] [PATCH 4/9] platform: v8a: firmware-imx: Install more files for U-Boot Alexander Dahl
2024-05-27 16:14   ` Robert Schwebel
2024-04-25  8:02 ` [DistroKit] [PATCH 5/9] platform: v8a: firmware-imx: Install more files for i.MX93 Alexander Dahl
2024-05-27 16:15   ` Robert Schwebel
2024-04-25  8:02 ` [DistroKit] [PATCH 6/9] platform: v8a: firmware-imx: Move barebox injects to separate package Alexander Dahl
2024-04-25 12:33   ` Alexander Dahl
2024-05-27 16:15     ` Robert Schwebel
2024-05-28  6:32       ` Alexander Dahl
2024-04-25  8:03 ` [DistroKit] [PATCH 7/9] platform: v8a: firmware-rockchip: " Alexander Dahl
2024-05-27 16:16   ` Robert Schwebel
2024-04-25  8:03 ` [DistroKit] [PATCH 8/9] platform: v8a: barebox: Remove extra host prog Alexander Dahl
2024-05-27 16:16   ` Robert Schwebel
2024-05-28  6:14     ` Alexander Dahl
2024-05-28  8:23       ` Robert Schwebel
2024-04-25  8:03 ` [DistroKit] [PATCH 8/8] platform: v8a: firmware-sentinel: Add new package Alexander Dahl
2024-04-25  8:03 ` [DistroKit] [PATCH 9/9] " Alexander Dahl
2024-05-27 16:17   ` Robert Schwebel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ZlSxKhmZZBu7bFUG@pengutronix.de \
    --to=r.schwebel@pengutronix.de \
    --cc=ada@thorsis.com \
    --cc=distrokit@pengutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox