DistroKit Mailinglist
 help / color / mirror / Atom feed
* [DistroKit] [PATCH 0/9] platform: v8a: firmware: Rework for upper layers with different boards
@ 2024-04-25  8:02 Alexander Dahl
  2024-04-25  8:02 ` [DistroKit] [PATCH 1/9] platform: v8a: firmware-imx: Fix dependencies Alexander Dahl
                   ` (9 more replies)
  0 siblings, 10 replies; 12+ messages in thread
From: Alexander Dahl @ 2024-04-25  8:02 UTC (permalink / raw)
  To: distrokit

Using DistroKit as a base layer people (like me) use other bootloaders
than barebox, but require the same external firmware blobs for modern
ARM boards.

This series collects changes to the firmware packages for i.MX
platforms, made to successfully build U-Boot for Ka-Ro QSXP-ML81 (i.MX8)
and Ka-Ro QS93-5210 (i.MX93).  The series also has some additional
cleanup of the firmware-rockchip package for uniformity.

Due to lack of hardware I did not test on any v8a board supported by
DistroKit mainline, so please test carefully.

Note: the necessary changes to the U-Boot package are not part of this
series, but the extension for ptxdist to inject firmware blobs into
other directories than the source tree was sent to ptxdist mailinglist
already.

Bonus question: why do those firmware packages reside in DistroKit, and
are not part of ptxdist?

Greets
Alex

Link: https://lore.ptxdist.org/ptxdist/20240424143109.277373-1-ada@thorsis.com/T/#t

Alexander Dahl (9):
  platform: v8a: firmware-imx: Fix dependencies
  platform: v8a: firmware-imx: Rework extract, install, and
    targetinstall
  platform: v8a: firmware-imx: Version bump 8.8 -> 8.23
  platform: v8a: firmware-imx: Install more files for U-Boot
  platform: v8a: firmware-imx: Install more files for i.MX93
  platform: v8a: firmware-imx: Move barebox injects to separate package
  platform: v8a: firmware-rockchip: Move barebox injects to separate
    package
  platform: v8a: barebox: Remove extra host prog
  platform: v8a: firmware-sentinel: Add new package

 configs/platform-v8a/platformconfig           |   4 +
 configs/platform-v8a/platforms/barebox.imx.in |  12 ++
 .../platforms/barebox.rockchip.in             |  14 +++
 .../platform-v8a/platforms/firmware-imx.in    |   9 +-
 .../platforms/firmware-rockchip.in            |   5 -
 .../platforms/firmware-sentinel.in            |   5 +
 configs/platform-v8a/rules/barebox.imx.make   |  26 ++++
 .../platform-v8a/rules/barebox.rockchip.make  |  21 +++-
 configs/platform-v8a/rules/firmware-imx.make  | 117 ++++++++++--------
 .../platform-v8a/rules/firmware-rockchip.make |  10 --
 .../platform-v8a/rules/firmware-sentinel.make |  69 +++++++++++
 11 files changed, 223 insertions(+), 69 deletions(-)
 create mode 100644 configs/platform-v8a/platforms/barebox.imx.in
 create mode 100644 configs/platform-v8a/platforms/barebox.rockchip.in
 create mode 100644 configs/platform-v8a/platforms/firmware-sentinel.in
 create mode 100644 configs/platform-v8a/rules/barebox.imx.make
 create mode 100644 configs/platform-v8a/rules/firmware-sentinel.make


base-commit: 3e11c53d98c0bd3283b0adc4489ffb45f7c8c68f
-- 
2.39.2




^ permalink raw reply	[flat|nested] 12+ messages in thread

* [DistroKit] [PATCH 1/9] platform: v8a: firmware-imx: Fix dependencies
  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 ` Alexander Dahl
  2024-04-25  8:02 ` [DistroKit] [PATCH 2/9] platform: v8a: firmware-imx: Rework extract, install, and targetinstall Alexander Dahl
                   ` (8 subsequent siblings)
  9 siblings, 0 replies; 12+ messages in thread
From: Alexander Dahl @ 2024-04-25  8:02 UTC (permalink / raw)
  To: distrokit

This dependency was fixed already with commit cb9e16dd1aa0 ("v8a:
barebox-imx8m: fix firmware-imx dependencies") but after commit
7a176f41a826 ("v8a: barebox: switch to upstream rule") and 8e9db9c88725
("v8a: barebox: remove left-over SoC-specific rules") the file carrying
the dependency is gone.  So now if FIRMWARE_IMX_BOOTIMAGE_IMX8 was
disabled barebox.prepare failed like this:

    -----------------------
    target: barebox.prepare
    -----------------------

    Inject file DistroKit/platform-v8a/sysroot-target/usr/lib/firmware/imx8mm-bl31.bin into DistroKit/platform-v8a/build-target/barebox-2024.03.0/firmware/imx8mm-bl31.bin...

    Inject file DistroKit/platform-v8a/sysroot-target/usr/lib/firmware/imx8mn-bl31.bin into DistroKit/platform-v8a/build-target/barebox-2024.03.0/firmware/imx8mn-bl31.bin...

    Inject file DistroKit/platform-v8a/sysroot-target/usr/lib/firmware/imx8mp-bl31.bin into DistroKit/platform-v8a/build-target/barebox-2024.03.0/firmware/imx8mp-bl31.bin...

    Inject file DistroKit/platform-v8a/sysroot-target/usr/lib/firmware/imx8mq-bl31.bin into DistroKit/platform-v8a/build-target/barebox-2024.03.0/firmware/imx8mq-bl31.bin...

    ptxdist: error: Blob 'ddr/synopsys/lpddr4_pmu_train_1d_dmem.bin' not found in '/mnt/data/adahl/src/DistroKit/platform-v8a/sysroot-target/usr/lib/firmware'.

    make: *** [/usr/local/lib/ptxdist-2024.03.0/rules/barebox.make:83: /mnt/data/adahl/src/DistroKit/platform-v8a/state/barebox.prepare] Error 1

Signed-off-by: Alexander Dahl <ada@thorsis.com>
---
 configs/platform-v8a/platforms/firmware-imx.in | 1 +
 configs/platform-v8a/rules/firmware-imx.make   | 2 ++
 2 files changed, 3 insertions(+)

diff --git a/configs/platform-v8a/platforms/firmware-imx.in b/configs/platform-v8a/platforms/firmware-imx.in
index 19d89ac..fc89001 100644
--- a/configs/platform-v8a/platforms/firmware-imx.in
+++ b/configs/platform-v8a/platforms/firmware-imx.in
@@ -50,5 +50,6 @@ endif
 config BAREBOX_DEPENDENCIES
 	tristate
 	select FIRMWARE_IMX
+	select FIRMWARE_IMX_BOOTIMAGE_IMX8
 	select TF_A
 
diff --git a/configs/platform-v8a/rules/firmware-imx.make b/configs/platform-v8a/rules/firmware-imx.make
index bd49885..b640db6 100644
--- a/configs/platform-v8a/rules/firmware-imx.make
+++ b/configs/platform-v8a/rules/firmware-imx.make
@@ -33,6 +33,7 @@ BAREBOX_INJECT_FILES	+= imx8mm-bl31.bin:firmware/imx8mm-bl31.bin
 BAREBOX_INJECT_FILES	+= imx8mn-bl31.bin:firmware/imx8mn-bl31.bin
 BAREBOX_INJECT_FILES	+= imx8mp-bl31.bin:firmware/imx8mp-bl31.bin
 BAREBOX_INJECT_FILES	+= imx8mq-bl31.bin:firmware/imx8mq-bl31.bin
+ifdef PTXCONF_FIRMWARE_IMX_BOOTIMAGE_IMX8
 BAREBOX_INJECT_FILES	+= ddr/synopsys/lpddr4_pmu_train_1d_dmem.bin:firmware/lpddr4_pmu_train_1d_dmem.bin
 BAREBOX_INJECT_FILES	+= ddr/synopsys/lpddr4_pmu_train_1d_imem.bin:firmware/lpddr4_pmu_train_1d_imem.bin
 BAREBOX_INJECT_FILES	+= ddr/synopsys/lpddr4_pmu_train_2d_dmem.bin:firmware/lpddr4_pmu_train_2d_dmem.bin
@@ -42,6 +43,7 @@ BAREBOX_INJECT_FILES	+= ddr/synopsys/ddr4_dmem_2d.bin:firmware/ddr4_dmem_2d.bin
 BAREBOX_INJECT_FILES	+= ddr/synopsys/ddr4_imem_1d.bin:firmware/ddr4_imem_1d.bin
 BAREBOX_INJECT_FILES	+= ddr/synopsys/ddr4_imem_2d.bin:firmware/ddr4_imem_2d.bin
 endif
+endif
 
 # ----------------------------------------------------------------------------
 # Extract
-- 
2.39.2




^ permalink raw reply	[flat|nested] 12+ messages in thread

* [DistroKit] [PATCH 2/9] platform: v8a: firmware-imx: Rework extract, install, and targetinstall
  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-04-25  8:02 ` Alexander Dahl
  2024-04-25  8:02 ` [DistroKit] [PATCH 3/9] platform: v8a: firmware-imx: Version bump 8.8 -> 8.23 Alexander Dahl
                   ` (7 subsequent siblings)
  9 siblings, 0 replies; 12+ messages in thread
From: Alexander Dahl @ 2024-04-25  8:02 UTC (permalink / raw)
  To: distrokit

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




^ permalink raw reply	[flat|nested] 12+ messages in thread

* [DistroKit] [PATCH 3/9] platform: v8a: firmware-imx: Version bump 8.8 -> 8.23
  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-04-25  8:02 ` [DistroKit] [PATCH 2/9] platform: v8a: firmware-imx: Rework extract, install, and targetinstall Alexander Dahl
@ 2024-04-25  8:02 ` Alexander Dahl
  2024-04-25  8:02 ` [DistroKit] [PATCH 4/9] platform: v8a: firmware-imx: Install more files for U-Boot Alexander Dahl
                   ` (6 subsequent siblings)
  9 siblings, 0 replies; 12+ messages in thread
From: Alexander Dahl @ 2024-04-25  8:02 UTC (permalink / raw)
  To: distrokit

Contains some new files required by U-Boot for certain boards (not
used/installed yet).

Checksums of firmware files in 'ddr/synopsys' are the same.
Files in 'hdmi/cadence' changed.

Signed-off-by: Alexander Dahl <ada@thorsis.com>
---
 configs/platform-v8a/rules/firmware-imx.make | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/configs/platform-v8a/rules/firmware-imx.make b/configs/platform-v8a/rules/firmware-imx.make
index 57a10c3..7c4801e 100644
--- a/configs/platform-v8a/rules/firmware-imx.make
+++ b/configs/platform-v8a/rules/firmware-imx.make
@@ -14,9 +14,9 @@ PACKAGES-$(PTXCONF_FIRMWARE_IMX) += firmware-imx
 #
 # Paths and names
 #
-FIRMWARE_IMX_VERSION	:= 8.8
-FIRMWARE_IMX_MD5	:= eabb27d28bba375a9f14d6306c07af5f
-FIRMWARE_IMX_SKIP	:= 38918
+FIRMWARE_IMX_VERSION	:= 8.23
+FIRMWARE_IMX_MD5	:= eb03efb3a8fb98d99ed1df88537e72f4
+FIRMWARE_IMX_SKIP	:= 48479
 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)
@@ -24,7 +24,7 @@ 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://COPYING;md5=228c72f2a91452b8a03c4cab30f30ef9
+	file://COPYING;md5=44a8052c384584ba09077e85a3d1654f
 
 #
 # Firmware blobs for barebox
-- 
2.39.2




^ permalink raw reply	[flat|nested] 12+ messages in thread

* [DistroKit] [PATCH 4/9] platform: v8a: firmware-imx: Install more files for U-Boot
  2024-04-25  8:02 [DistroKit] [PATCH 0/9] platform: v8a: firmware: Rework for upper layers with different boards Alexander Dahl
                   ` (2 preceding siblings ...)
  2024-04-25  8:02 ` [DistroKit] [PATCH 3/9] platform: v8a: firmware-imx: Version bump 8.8 -> 8.23 Alexander Dahl
@ 2024-04-25  8:02 ` Alexander Dahl
  2024-04-25  8:02 ` [DistroKit] [PATCH 5/9] platform: v8a: firmware-imx: Install more files for i.MX93 Alexander Dahl
                   ` (5 subsequent siblings)
  9 siblings, 0 replies; 12+ messages in thread
From: Alexander Dahl @ 2024-04-25  8:02 UTC (permalink / raw)
  To: distrokit

U-Boot builds for some i.MX8 boards (like Ka-Ro QSXP-ML81 SoM) require
different files than barebox.

Signed-off-by: Alexander Dahl <ada@thorsis.com>
---
 configs/platform-v8a/rules/firmware-imx.make | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/configs/platform-v8a/rules/firmware-imx.make b/configs/platform-v8a/rules/firmware-imx.make
index 7c4801e..20f102e 100644
--- a/configs/platform-v8a/rules/firmware-imx.make
+++ b/configs/platform-v8a/rules/firmware-imx.make
@@ -92,6 +92,11 @@ $(STATEDIR)/firmware-imx.install:
 		$(FIRMWARE_IMX_PKGDIR)/usr/lib/firmware/vpu/$(f)$(ptx/nl))
 
 ifdef PTXCONF_FIRMWARE_IMX_BOOTIMAGE_IMX8
+	@$(foreach f, lpddr4_pmu_train_1d_imem_202006.bin lpddr4_pmu_train_1d_dmem_202006.bin \
+	              lpddr4_pmu_train_2d_imem_202006.bin lpddr4_pmu_train_2d_dmem_202006.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, 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) \
-- 
2.39.2




^ permalink raw reply	[flat|nested] 12+ messages in thread

* [DistroKit] [PATCH 5/9] platform: v8a: firmware-imx: Install more files for i.MX93
  2024-04-25  8:02 [DistroKit] [PATCH 0/9] platform: v8a: firmware: Rework for upper layers with different boards Alexander Dahl
                   ` (3 preceding siblings ...)
  2024-04-25  8:02 ` [DistroKit] [PATCH 4/9] platform: v8a: firmware-imx: Install more files for U-Boot Alexander Dahl
@ 2024-04-25  8:02 ` Alexander Dahl
  2024-04-25  8:02 ` [DistroKit] [PATCH 6/9] platform: v8a: firmware-imx: Move barebox injects to separate package Alexander Dahl
                   ` (4 subsequent siblings)
  9 siblings, 0 replies; 12+ messages in thread
From: Alexander Dahl @ 2024-04-25  8:02 UTC (permalink / raw)
  To: distrokit

U-Boot builds for some i.MX93 boards (like Ka-Ro QS93-5210 SoM) require
different files than barebox.

Signed-off-by: Alexander Dahl <ada@thorsis.com>
---
 configs/platform-v8a/platformconfig            | 1 +
 configs/platform-v8a/platforms/firmware-imx.in | 8 +++++++-
 configs/platform-v8a/rules/firmware-imx.make   | 7 +++++++
 3 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/configs/platform-v8a/platformconfig b/configs/platform-v8a/platformconfig
index 664ed1b..65c767a 100644
--- a/configs/platform-v8a/platformconfig
+++ b/configs/platform-v8a/platformconfig
@@ -356,6 +356,7 @@ PTXCONF_FIRMWARE_IMX=y
 # PTXCONF_FIRMWARE_IMX_VPU_IMX6DL is not set
 # PTXCONF_FIRMWARE_IMX_VPU_IMX6Q is not set
 PTXCONF_FIRMWARE_IMX_BOOTIMAGE_IMX8=y
+# PTXCONF_FIRMWARE_IMX_BOOTIMAGE_IMX9 is not set
 PTXCONF_FIRMWARE_ROCKCHIP=y
 # PTXCONF_FIRMWARE_ROCKCHIP_RK3566_SDRAM is not set
 PTXCONF_FIRMWARE_ROCKCHIP_RK3568_SDRAM=y
diff --git a/configs/platform-v8a/platforms/firmware-imx.in b/configs/platform-v8a/platforms/firmware-imx.in
index fc89001..c93e9f8 100644
--- a/configs/platform-v8a/platforms/firmware-imx.in
+++ b/configs/platform-v8a/platforms/firmware-imx.in
@@ -45,6 +45,13 @@ config FIRMWARE_IMX_BOOTIMAGE_IMX8
 	  Install the Synopsis DDR PHY controller and Cadence HDMI TX
 	  firmware used to build a boot image.
 
+config FIRMWARE_IMX_BOOTIMAGE_IMX9
+	bool
+	prompt "Install i.MX9 DDR PHY firmware"
+	help
+	  Install the Synopsis DDR PHY controller firmware used to build
+	  a boot image.
+
 endif
 
 config BAREBOX_DEPENDENCIES
@@ -52,4 +59,3 @@ config BAREBOX_DEPENDENCIES
 	select FIRMWARE_IMX
 	select FIRMWARE_IMX_BOOTIMAGE_IMX8
 	select TF_A
-
diff --git a/configs/platform-v8a/rules/firmware-imx.make b/configs/platform-v8a/rules/firmware-imx.make
index 20f102e..1cdc3ee 100644
--- a/configs/platform-v8a/rules/firmware-imx.make
+++ b/configs/platform-v8a/rules/firmware-imx.make
@@ -112,6 +112,13 @@ ifdef PTXCONF_FIRMWARE_IMX_BOOTIMAGE_IMX8
 		$(FIRMWARE_IMX_PKGDIR)/usr/lib/firmware/hdmi/cadence/$(f)$(ptx/nl))
 endif
 
+ifdef PTXCONF_FIRMWARE_IMX_BOOTIMAGE_IMX9
+	@$(foreach f, lpddr4_imem_1d_v202201.bin lpddr4_dmem_1d_v202201.bin \
+	              lpddr4_imem_2d_v202201.bin lpddr4_dmem_2d_v202201.bin, \
+		install -v -D -m644 $(FIRMWARE_IMX_DIR)/firmware/ddr/synopsys/$(f) \
+		$(FIRMWARE_IMX_PKGDIR)/usr/lib/firmware/ddr/synopsys/$(f)$(ptx/nl))
+endif
+
 	@$(call touch)
 
 # ----------------------------------------------------------------------------
-- 
2.39.2




^ permalink raw reply	[flat|nested] 12+ messages in thread

* [DistroKit] [PATCH 6/9] platform: v8a: firmware-imx: Move barebox injects to separate package
  2024-04-25  8:02 [DistroKit] [PATCH 0/9] platform: v8a: firmware: Rework for upper layers with different boards Alexander Dahl
                   ` (4 preceding siblings ...)
  2024-04-25  8:02 ` [DistroKit] [PATCH 5/9] platform: v8a: firmware-imx: Install more files for i.MX93 Alexander Dahl
@ 2024-04-25  8:02 ` Alexander Dahl
  2024-04-25 12:33   ` Alexander Dahl
  2024-04-25  8:03 ` [DistroKit] [PATCH 7/9] platform: v8a: firmware-rockchip: " Alexander Dahl
                   ` (3 subsequent siblings)
  9 siblings, 1 reply; 12+ messages in thread
From: Alexander Dahl @ 2024-04-25  8:02 UTC (permalink / raw)
  To: distrokit

This is what 'barebox_firmware' was invented for.  Done to avoid
cluttering the firmware-imx package even more.

Before duplicating the firmware-imx package files in an upper layer and
adding more such stuff for a different bootloader, we rather move this
stuff to multiple barebox_firmware packages (which can also sit in other
layers) and inject files from there.

The same approach can then be followed by other bootloaders depending on
firmware-imx package.  This way we can depend on firmware-imx from one,
the other, or both bootloaders, respectively their firmware packages,
without the need to touch the firmware-imx package itself.

Approach inspired by the patch series which introduced that
infrastructure in ptxdist.

Link: https://lore.ptxdist.org/ptxdist/20220129070330.2601433-6-michael.riesch@wolfvision.net/
Signed-off-by: Alexander Dahl <ada@thorsis.com>
---
 configs/platform-v8a/platformconfig           |  1 +
 configs/platform-v8a/platforms/barebox.imx.in | 12 +++++++++
 .../platform-v8a/platforms/firmware-imx.in    |  2 --
 configs/platform-v8a/rules/barebox.imx.make   | 26 +++++++++++++++++++
 configs/platform-v8a/rules/firmware-imx.make  | 20 --------------
 5 files changed, 39 insertions(+), 22 deletions(-)
 create mode 100644 configs/platform-v8a/platforms/barebox.imx.in
 create mode 100644 configs/platform-v8a/rules/barebox.imx.make

diff --git a/configs/platform-v8a/platformconfig b/configs/platform-v8a/platformconfig
index 65c767a..ba33191 100644
--- a/configs/platform-v8a/platformconfig
+++ b/configs/platform-v8a/platformconfig
@@ -183,6 +183,7 @@ PTXCONF_BAREBOX_BUILDSYSTEM_VERSION="${PTXDIST_VCS_VERSION}"
 PTXCONF_BAREBOX_MD5="dcb443c48b64662b52974502c502427e"
 PTXCONF_BAREBOX_CONFIG="barebox.config"
 PTXCONF_BAREBOX_FIRMWARE=y
+PTXCONF_BAREBOX_NEEDS_FIRMWARE_IMX=y
 PTXCONF_BAREBOX_EXTRA_ENV=y
 PTXCONF_BAREBOX_EXTRA_ENV_PATH="barebox-common-defaultenv"
 # PTXCONF_BAREBOX_BAREBOXENV is not set
diff --git a/configs/platform-v8a/platforms/barebox.imx.in b/configs/platform-v8a/platforms/barebox.imx.in
new file mode 100644
index 0000000..971fc9b
--- /dev/null
+++ b/configs/platform-v8a/platforms/barebox.imx.in
@@ -0,0 +1,12 @@
+## SECTION=barebox_firmware
+
+config BAREBOX_NEEDS_FIRMWARE_IMX
+	bool
+	prompt "barebox needs firmware-imx"
+	help
+	  Select this if barebox needs the non-free IMX firmware blobs.
+
+config BAREBOX_DEPENDENCIES
+	tristate
+	select FIRMWARE_IMX if BAREBOX_NEEDS_FIRMWARE_IMX
+	select FIRMWARE_IMX_BOOTIMAGE_IMX8 if BAREBOX_NEEDS_FIRMWARE_IMX
diff --git a/configs/platform-v8a/platforms/firmware-imx.in b/configs/platform-v8a/platforms/firmware-imx.in
index c93e9f8..a08afbe 100644
--- a/configs/platform-v8a/platforms/firmware-imx.in
+++ b/configs/platform-v8a/platforms/firmware-imx.in
@@ -56,6 +56,4 @@ endif
 
 config BAREBOX_DEPENDENCIES
 	tristate
-	select FIRMWARE_IMX
-	select FIRMWARE_IMX_BOOTIMAGE_IMX8
 	select TF_A
diff --git a/configs/platform-v8a/rules/barebox.imx.make b/configs/platform-v8a/rules/barebox.imx.make
new file mode 100644
index 0000000..4c6404c
--- /dev/null
+++ b/configs/platform-v8a/rules/barebox.imx.make
@@ -0,0 +1,26 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2024 by Alexander Dahl <ada@thorsis.com>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+ifdef PTXCONF_FIRMWARE_IMX
+BAREBOX_INJECT_FILES	+= imx8mm-bl31.bin:firmware/imx8mm-bl31.bin
+BAREBOX_INJECT_FILES	+= imx8mn-bl31.bin:firmware/imx8mn-bl31.bin
+BAREBOX_INJECT_FILES	+= imx8mp-bl31.bin:firmware/imx8mp-bl31.bin
+BAREBOX_INJECT_FILES	+= imx8mq-bl31.bin:firmware/imx8mq-bl31.bin
+ifdef PTXCONF_FIRMWARE_IMX_BOOTIMAGE_IMX8
+BAREBOX_INJECT_FILES	+= ddr/synopsys/lpddr4_pmu_train_1d_dmem.bin:firmware/lpddr4_pmu_train_1d_dmem.bin
+BAREBOX_INJECT_FILES	+= ddr/synopsys/lpddr4_pmu_train_1d_imem.bin:firmware/lpddr4_pmu_train_1d_imem.bin
+BAREBOX_INJECT_FILES	+= ddr/synopsys/lpddr4_pmu_train_2d_dmem.bin:firmware/lpddr4_pmu_train_2d_dmem.bin
+BAREBOX_INJECT_FILES	+= ddr/synopsys/lpddr4_pmu_train_2d_imem.bin:firmware/lpddr4_pmu_train_2d_imem.bin
+BAREBOX_INJECT_FILES	+= ddr/synopsys/ddr4_dmem_1d.bin:firmware/ddr4_dmem_1d.bin
+BAREBOX_INJECT_FILES	+= ddr/synopsys/ddr4_dmem_2d.bin:firmware/ddr4_dmem_2d.bin
+BAREBOX_INJECT_FILES	+= ddr/synopsys/ddr4_imem_1d.bin:firmware/ddr4_imem_1d.bin
+BAREBOX_INJECT_FILES	+= ddr/synopsys/ddr4_imem_2d.bin:firmware/ddr4_imem_2d.bin
+endif
+endif
+
+# vim: syntax=make
diff --git a/configs/platform-v8a/rules/firmware-imx.make b/configs/platform-v8a/rules/firmware-imx.make
index 1cdc3ee..906691c 100644
--- a/configs/platform-v8a/rules/firmware-imx.make
+++ b/configs/platform-v8a/rules/firmware-imx.make
@@ -26,26 +26,6 @@ FIRMWARE_IMX_LICENSE	:= NXP-Software-License-Agreement
 FIRMWARE_IMX_LICENSE_FILES := \
 	file://COPYING;md5=44a8052c384584ba09077e85a3d1654f
 
-#
-# Firmware blobs for barebox
-#
-ifdef PTXCONF_FIRMWARE_IMX
-BAREBOX_INJECT_FILES	+= imx8mm-bl31.bin:firmware/imx8mm-bl31.bin
-BAREBOX_INJECT_FILES	+= imx8mn-bl31.bin:firmware/imx8mn-bl31.bin
-BAREBOX_INJECT_FILES	+= imx8mp-bl31.bin:firmware/imx8mp-bl31.bin
-BAREBOX_INJECT_FILES	+= imx8mq-bl31.bin:firmware/imx8mq-bl31.bin
-ifdef PTXCONF_FIRMWARE_IMX_BOOTIMAGE_IMX8
-BAREBOX_INJECT_FILES	+= ddr/synopsys/lpddr4_pmu_train_1d_dmem.bin:firmware/lpddr4_pmu_train_1d_dmem.bin
-BAREBOX_INJECT_FILES	+= ddr/synopsys/lpddr4_pmu_train_1d_imem.bin:firmware/lpddr4_pmu_train_1d_imem.bin
-BAREBOX_INJECT_FILES	+= ddr/synopsys/lpddr4_pmu_train_2d_dmem.bin:firmware/lpddr4_pmu_train_2d_dmem.bin
-BAREBOX_INJECT_FILES	+= ddr/synopsys/lpddr4_pmu_train_2d_imem.bin:firmware/lpddr4_pmu_train_2d_imem.bin
-BAREBOX_INJECT_FILES	+= ddr/synopsys/ddr4_dmem_1d.bin:firmware/ddr4_dmem_1d.bin
-BAREBOX_INJECT_FILES	+= ddr/synopsys/ddr4_dmem_2d.bin:firmware/ddr4_dmem_2d.bin
-BAREBOX_INJECT_FILES	+= ddr/synopsys/ddr4_imem_1d.bin:firmware/ddr4_imem_1d.bin
-BAREBOX_INJECT_FILES	+= ddr/synopsys/ddr4_imem_2d.bin:firmware/ddr4_imem_2d.bin
-endif
-endif
-
 # ----------------------------------------------------------------------------
 # Extract
 # ----------------------------------------------------------------------------
-- 
2.39.2




^ permalink raw reply	[flat|nested] 12+ messages in thread

* [DistroKit] [PATCH 7/9] platform: v8a: firmware-rockchip: Move barebox injects to separate package
  2024-04-25  8:02 [DistroKit] [PATCH 0/9] platform: v8a: firmware: Rework for upper layers with different boards Alexander Dahl
                   ` (5 preceding siblings ...)
  2024-04-25  8:02 ` [DistroKit] [PATCH 6/9] platform: v8a: firmware-imx: Move barebox injects to separate package Alexander Dahl
@ 2024-04-25  8:03 ` Alexander Dahl
  2024-04-25  8:03 ` [DistroKit] [PATCH 8/9] platform: v8a: barebox: Remove extra host prog Alexander Dahl
                   ` (2 subsequent siblings)
  9 siblings, 0 replies; 12+ messages in thread
From: Alexander Dahl @ 2024-04-25  8:03 UTC (permalink / raw)
  To: distrokit

This is what 'barebox_firmware' was invented for.  Done to avoid
cluttering the firmware-rockchip package with bootloader specific stuff.

Approach inspired by the patch series which introduced that
infrastructure in ptxdist.  Same as with firmware-imx package.

Link: https://lore.ptxdist.org/ptxdist/20220129070330.2601433-6-michael.riesch@wolfvision.net/
Signed-off-by: Alexander Dahl <ada@thorsis.com>
---
 configs/platform-v8a/platformconfig           |  1 +
 .../platforms/barebox.rockchip.in             | 14 +++++++++++++
 .../platforms/firmware-rockchip.in            |  5 -----
 .../platform-v8a/rules/barebox.rockchip.make  | 20 +++++++++++++++++++
 .../platform-v8a/rules/firmware-rockchip.make | 10 ----------
 5 files changed, 35 insertions(+), 15 deletions(-)
 create mode 100644 configs/platform-v8a/platforms/barebox.rockchip.in

diff --git a/configs/platform-v8a/platformconfig b/configs/platform-v8a/platformconfig
index ba33191..342aa11 100644
--- a/configs/platform-v8a/platformconfig
+++ b/configs/platform-v8a/platformconfig
@@ -184,6 +184,7 @@ PTXCONF_BAREBOX_MD5="dcb443c48b64662b52974502c502427e"
 PTXCONF_BAREBOX_CONFIG="barebox.config"
 PTXCONF_BAREBOX_FIRMWARE=y
 PTXCONF_BAREBOX_NEEDS_FIRMWARE_IMX=y
+PTXCONF_BAREBOX_NEEDS_FIRMWARE_ROCKCHIP=y
 PTXCONF_BAREBOX_EXTRA_ENV=y
 PTXCONF_BAREBOX_EXTRA_ENV_PATH="barebox-common-defaultenv"
 # PTXCONF_BAREBOX_BAREBOXENV is not set
diff --git a/configs/platform-v8a/platforms/barebox.rockchip.in b/configs/platform-v8a/platforms/barebox.rockchip.in
new file mode 100644
index 0000000..3291085
--- /dev/null
+++ b/configs/platform-v8a/platforms/barebox.rockchip.in
@@ -0,0 +1,14 @@
+## SECTION=barebox_firmware
+
+config BAREBOX_NEEDS_FIRMWARE_ROCKCHIP
+	bool
+	prompt "barebox needs firmware-rockchip"
+	help
+	  Select this if barebox needs the non-free Rockchip firmware blobs.
+
+config BAREBOX_DEPENDENCIES
+	tristate
+	select FIRMWARE_ROCKCHIP if BAREBOX_NEEDS_FIRMWARE_ROCKCHIP
+	select FIRMWARE_ROCKCHIP_RK3568_SDRAM if BAREBOX_NEEDS_FIRMWARE_ROCKCHIP
+	select FIRMWARE_ROCKCHIP_RK356x_BL31 if BAREBOX_NEEDS_FIRMWARE_ROCKCHIP
+	select FIRMWARE_ROCKCHIP_RK356x_BL32 if BAREBOX_NEEDS_FIRMWARE_ROCKCHIP
diff --git a/configs/platform-v8a/platforms/firmware-rockchip.in b/configs/platform-v8a/platforms/firmware-rockchip.in
index 87a1490..aa70241 100644
--- a/configs/platform-v8a/platforms/firmware-rockchip.in
+++ b/configs/platform-v8a/platforms/firmware-rockchip.in
@@ -39,8 +39,3 @@ config FIRMWARE_ROCKCHIP_RK356x_BL32
 	  and the Rockchip RK3568 EVB1 board.
 
 endif
-
-config BAREBOX_DEPENDENCIES
-	tristate
-	select FIRMWARE_ROCKCHIP
-
diff --git a/configs/platform-v8a/rules/barebox.rockchip.make b/configs/platform-v8a/rules/barebox.rockchip.make
index 17092a9..fad39c9 100644
--- a/configs/platform-v8a/rules/barebox.rockchip.make
+++ b/configs/platform-v8a/rules/barebox.rockchip.make
@@ -9,4 +9,24 @@
 # TODO: remove this when it is added in PTXdist upstream
 BAREBOX_PROGS_HOST += rk-usb-loader
 
+#
+# Firmware blobs for barebox
+#
+ifdef PTXCONF_FIRMWARE_ROCKCHIP
+
+ifdef PTXCONF_FIRMWARE_ROCKCHIP_RK356x_BL31
+BAREBOX_INJECT_FILES += rk3568_bl31_v1.24.elf:firmware/rk3568-bl31.bin
+endif
+
+ifdef PTXCONF_FIRMWARE_ROCKCHIP_RK356x_BL32
+BAREBOX_INJECT_FILES += rk3568_bl32_v1.05.bin:firmware/rk3568-op-tee.bin
+endif
+
+ifdef PTXCONF_FIRMWARE_ROCKCHIP_RK3568_SDRAM
+BAREBOX_INJECT_FILES += rk3568_ddr_1560MHz_v1.08.bin:arch/arm/boards/rockchip-rk3568-evb/sdram-init.bin
+BAREBOX_INJECT_FILES += rk3568_ddr_1560MHz_v1.08.bin:arch/arm/boards/radxa-rock3/sdram-init.bin
+endif
+
+endif
+
 # vim: syntax=make
diff --git a/configs/platform-v8a/rules/firmware-rockchip.make b/configs/platform-v8a/rules/firmware-rockchip.make
index 6949148..dd50c86 100644
--- a/configs/platform-v8a/rules/firmware-rockchip.make
+++ b/configs/platform-v8a/rules/firmware-rockchip.make
@@ -20,16 +20,6 @@ FIRMWARE_ROCKCHIP_SOURCE	:= $(SRCDIR)/$(FIRMWARE_ROCKCHIP).$(FIRMWARE_ROCKCHIP_S
 FIRMWARE_ROCKCHIP_DIR		:= $(BUILDDIR)/$(FIRMWARE_ROCKCHIP)
 FIRMWARE_ROCKCHIP_LICENSE	:= proprietary
 
-#
-# Firmware blobs for barebox
-#
-ifdef PTXCONF_FIRMWARE_ROCKCHIP
-BAREBOX_INJECT_FILES		+= rk3568_bl31_v1.24.elf:firmware/rk3568-bl31.bin
-BAREBOX_INJECT_FILES		+= rk3568_bl32_v1.05.bin:firmware/rk3568-op-tee.bin
-BAREBOX_INJECT_FILES		+= rk3568_ddr_1560MHz_v1.08.bin:arch/arm/boards/rockchip-rk3568-evb/sdram-init.bin
-BAREBOX_INJECT_FILES		+= rk3568_ddr_1560MHz_v1.08.bin:arch/arm/boards/radxa-rock3/sdram-init.bin
-endif
-
 # ----------------------------------------------------------------------------
 # Prepare
 # ----------------------------------------------------------------------------
-- 
2.39.2




^ permalink raw reply	[flat|nested] 12+ messages in thread

* [DistroKit] [PATCH 8/9] platform: v8a: barebox: Remove extra host prog
  2024-04-25  8:02 [DistroKit] [PATCH 0/9] platform: v8a: firmware: Rework for upper layers with different boards Alexander Dahl
                   ` (6 preceding siblings ...)
  2024-04-25  8:03 ` [DistroKit] [PATCH 7/9] platform: v8a: firmware-rockchip: " Alexander Dahl
@ 2024-04-25  8:03 ` Alexander Dahl
  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
  9 siblings, 0 replies; 12+ messages in thread
From: Alexander Dahl @ 2024-04-25  8:03 UTC (permalink / raw)
  To: distrokit

Added to ptxdist-2023.07.0 and thus TODO completed.

Before removal BAREBOX_PROGS_HOST had this twice:

    % p print BAREBOX_PROGS_HOST
    bareboxenv kernel-install bareboxcrc32 bareboximd setupmbr/setupmbr imx/imx-usb-loader rk-usb-loader rk-usb-loader

Fixes: cd9e439e789e ("ptxdist: version bump 2023.06.0 -> 2023.07.1")
Signed-off-by: Alexander Dahl <ada@thorsis.com>
---
 configs/platform-v8a/rules/barebox.rockchip.make | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/configs/platform-v8a/rules/barebox.rockchip.make b/configs/platform-v8a/rules/barebox.rockchip.make
index fad39c9..c0789c6 100644
--- a/configs/platform-v8a/rules/barebox.rockchip.make
+++ b/configs/platform-v8a/rules/barebox.rockchip.make
@@ -6,9 +6,6 @@
 # see the README file.
 #
 
-# TODO: remove this when it is added in PTXdist upstream
-BAREBOX_PROGS_HOST += rk-usb-loader
-
 #
 # Firmware blobs for barebox
 #
-- 
2.39.2




^ permalink raw reply	[flat|nested] 12+ messages in thread

* [DistroKit] [PATCH 8/8] platform: v8a: firmware-sentinel: Add new package
  2024-04-25  8:02 [DistroKit] [PATCH 0/9] platform: v8a: firmware: Rework for upper layers with different boards Alexander Dahl
                   ` (7 preceding siblings ...)
  2024-04-25  8:03 ` [DistroKit] [PATCH 8/9] platform: v8a: barebox: Remove extra host prog Alexander Dahl
@ 2024-04-25  8:03 ` Alexander Dahl
  2024-04-25  8:03 ` [DistroKit] [PATCH 9/9] " Alexander Dahl
  9 siblings, 0 replies; 12+ messages in thread
From: Alexander Dahl @ 2024-04-25  8:03 UTC (permalink / raw)
  To: distrokit

U-Boot for i.MX93 on Ka-Ro QS93-5210 SoM requires this additional firmware.

Signed-off-by: Alexander Dahl <ada@thorsis.com>
---
 configs/platform-v8a/platformconfig           |  1 +
 .../platforms/firmware-sentinel.in            |  5 ++
 .../platform-v8a/rules/firmware-sentinel.make | 69 +++++++++++++++++++
 3 files changed, 75 insertions(+)
 create mode 100644 configs/platform-v8a/platforms/firmware-sentinel.in
 create mode 100644 configs/platform-v8a/rules/firmware-sentinel.make

diff --git a/configs/platform-v8a/platformconfig b/configs/platform-v8a/platformconfig
index 342aa11..d7df8b8 100644
--- a/configs/platform-v8a/platformconfig
+++ b/configs/platform-v8a/platformconfig
@@ -364,4 +364,5 @@ PTXCONF_FIRMWARE_ROCKCHIP=y
 PTXCONF_FIRMWARE_ROCKCHIP_RK3568_SDRAM=y
 PTXCONF_FIRMWARE_ROCKCHIP_RK356x_BL31=y
 PTXCONF_FIRMWARE_ROCKCHIP_RK356x_BL32=y
+# PTXCONF_FIRMWARE_SENTINEL is not set
 # end of non-free firmware blobs       
diff --git a/configs/platform-v8a/platforms/firmware-sentinel.in b/configs/platform-v8a/platforms/firmware-sentinel.in
new file mode 100644
index 0000000..9225969
--- /dev/null
+++ b/configs/platform-v8a/platforms/firmware-sentinel.in
@@ -0,0 +1,5 @@
+## SECTION=non_free_firmware
+
+menuconfig FIRMWARE_SENTINEL
+	tristate
+	prompt "firmware-sentinel             "
diff --git a/configs/platform-v8a/rules/firmware-sentinel.make b/configs/platform-v8a/rules/firmware-sentinel.make
new file mode 100644
index 0000000..855e58d
--- /dev/null
+++ b/configs/platform-v8a/rules/firmware-sentinel.make
@@ -0,0 +1,69 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2024 by Alexander Dahl <ada@thorsis.com>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_FIRMWARE_SENTINEL) += firmware-sentinel
+
+#
+# Paths and names
+#
+FIRMWARE_SENTINEL_VERSION	:= 0.11
+FIRMWARE_SENTINEL_MD5		:= 339011b6b199151d835c03089a3c2221
+FIRMWARE_SENTINEL_SKIP		:= 47053
+FIRMWARE_SENTINEL		:= firmware-sentinel-$(FIRMWARE_SENTINEL_VERSION)
+FIRMWARE_SENTINEL_SUFFIX	:= bin
+FIRMWARE_SENTINEL_URL		:= http://www.nxp.com/lgfiles/NMG/MAD/YOCTO/$(FIRMWARE_SENTINEL).$(FIRMWARE_SENTINEL_SUFFIX)
+FIRMWARE_SENTINEL_SOURCE	:= $(SRCDIR)/$(FIRMWARE_SENTINEL).$(FIRMWARE_SENTINEL_SUFFIX)
+FIRMWARE_SENTINEL_DIR		:= $(BUILDDIR)/$(FIRMWARE_SENTINEL)
+FIRMWARE_SENTINEL_LICENSE	:= NXP-Software-License-Agreement
+FIRMWARE_SENTINEL_LICENSE_FILES	:= \
+	file://COPYING;md5=db4762b09b6bda63da103963e6e081de
+
+# ----------------------------------------------------------------------------
+# Extract
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/firmware-sentinel.extract:
+	@$(call targetinfo)
+	@$(call clean, $(FIRMWARE_SENTINEL_DIR))
+	@mkdir -p "$(FIRMWARE_SENTINEL_DIR)"
+	@dd if="$(FIRMWARE_SENTINEL_SOURCE)" bs=$(FIRMWARE_SENTINEL_SKIP) skip=1 \
+		| tar -xj --strip-components=2 -C "$(FIRMWARE_SENTINEL_DIR)"
+	@$(call patchin, FIRMWARE_SENTINEL)
+	@$(call touch)
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+FIRMWARE_SENTINEL_CONF_TOOL	:= NO
+
+# ----------------------------------------------------------------------------
+# Compile
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/firmware-sentinel.compile:
+	@$(call targetinfo)
+	@$(call touch)
+
+# ----------------------------------------------------------------------------
+# Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/firmware-sentinel.install:
+	@$(call targetinfo)
+
+	@install -d -m755 $(FIRMWARE_SENTINEL_PKGDIR)/usr/lib/firmware
+	@install -v -m644 $(FIRMWARE_SENTINEL_DIR)/mx93a1-ahab-container.img \
+		$(FIRMWARE_SENTINEL_PKGDIR)/usr/lib/firmware/
+
+	@$(call touch)
+
+# vim: syntax=make
-- 
2.39.2




^ permalink raw reply	[flat|nested] 12+ messages in thread

* [DistroKit] [PATCH 9/9] platform: v8a: firmware-sentinel: Add new package
  2024-04-25  8:02 [DistroKit] [PATCH 0/9] platform: v8a: firmware: Rework for upper layers with different boards Alexander Dahl
                   ` (8 preceding siblings ...)
  2024-04-25  8:03 ` [DistroKit] [PATCH 8/8] platform: v8a: firmware-sentinel: Add new package Alexander Dahl
@ 2024-04-25  8:03 ` Alexander Dahl
  9 siblings, 0 replies; 12+ messages in thread
From: Alexander Dahl @ 2024-04-25  8:03 UTC (permalink / raw)
  To: distrokit

U-Boot for i.MX93 on Ka-Ro QS93-5210 SoM requires this additional firmware.

Signed-off-by: Alexander Dahl <ada@thorsis.com>
---
 configs/platform-v8a/platformconfig           |  1 +
 .../platforms/firmware-sentinel.in            |  5 ++
 .../platform-v8a/rules/firmware-sentinel.make | 69 +++++++++++++++++++
 3 files changed, 75 insertions(+)
 create mode 100644 configs/platform-v8a/platforms/firmware-sentinel.in
 create mode 100644 configs/platform-v8a/rules/firmware-sentinel.make

diff --git a/configs/platform-v8a/platformconfig b/configs/platform-v8a/platformconfig
index 342aa11..d7df8b8 100644
--- a/configs/platform-v8a/platformconfig
+++ b/configs/platform-v8a/platformconfig
@@ -364,4 +364,5 @@ PTXCONF_FIRMWARE_ROCKCHIP=y
 PTXCONF_FIRMWARE_ROCKCHIP_RK3568_SDRAM=y
 PTXCONF_FIRMWARE_ROCKCHIP_RK356x_BL31=y
 PTXCONF_FIRMWARE_ROCKCHIP_RK356x_BL32=y
+# PTXCONF_FIRMWARE_SENTINEL is not set
 # end of non-free firmware blobs       
diff --git a/configs/platform-v8a/platforms/firmware-sentinel.in b/configs/platform-v8a/platforms/firmware-sentinel.in
new file mode 100644
index 0000000..9225969
--- /dev/null
+++ b/configs/platform-v8a/platforms/firmware-sentinel.in
@@ -0,0 +1,5 @@
+## SECTION=non_free_firmware
+
+menuconfig FIRMWARE_SENTINEL
+	tristate
+	prompt "firmware-sentinel             "
diff --git a/configs/platform-v8a/rules/firmware-sentinel.make b/configs/platform-v8a/rules/firmware-sentinel.make
new file mode 100644
index 0000000..855e58d
--- /dev/null
+++ b/configs/platform-v8a/rules/firmware-sentinel.make
@@ -0,0 +1,69 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2024 by Alexander Dahl <ada@thorsis.com>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_FIRMWARE_SENTINEL) += firmware-sentinel
+
+#
+# Paths and names
+#
+FIRMWARE_SENTINEL_VERSION	:= 0.11
+FIRMWARE_SENTINEL_MD5		:= 339011b6b199151d835c03089a3c2221
+FIRMWARE_SENTINEL_SKIP		:= 47053
+FIRMWARE_SENTINEL		:= firmware-sentinel-$(FIRMWARE_SENTINEL_VERSION)
+FIRMWARE_SENTINEL_SUFFIX	:= bin
+FIRMWARE_SENTINEL_URL		:= http://www.nxp.com/lgfiles/NMG/MAD/YOCTO/$(FIRMWARE_SENTINEL).$(FIRMWARE_SENTINEL_SUFFIX)
+FIRMWARE_SENTINEL_SOURCE	:= $(SRCDIR)/$(FIRMWARE_SENTINEL).$(FIRMWARE_SENTINEL_SUFFIX)
+FIRMWARE_SENTINEL_DIR		:= $(BUILDDIR)/$(FIRMWARE_SENTINEL)
+FIRMWARE_SENTINEL_LICENSE	:= NXP-Software-License-Agreement
+FIRMWARE_SENTINEL_LICENSE_FILES	:= \
+	file://COPYING;md5=db4762b09b6bda63da103963e6e081de
+
+# ----------------------------------------------------------------------------
+# Extract
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/firmware-sentinel.extract:
+	@$(call targetinfo)
+	@$(call clean, $(FIRMWARE_SENTINEL_DIR))
+	@mkdir -p "$(FIRMWARE_SENTINEL_DIR)"
+	@dd if="$(FIRMWARE_SENTINEL_SOURCE)" bs=$(FIRMWARE_SENTINEL_SKIP) skip=1 \
+		| tar -xj --strip-components=2 -C "$(FIRMWARE_SENTINEL_DIR)"
+	@$(call patchin, FIRMWARE_SENTINEL)
+	@$(call touch)
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+FIRMWARE_SENTINEL_CONF_TOOL	:= NO
+
+# ----------------------------------------------------------------------------
+# Compile
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/firmware-sentinel.compile:
+	@$(call targetinfo)
+	@$(call touch)
+
+# ----------------------------------------------------------------------------
+# Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/firmware-sentinel.install:
+	@$(call targetinfo)
+
+	@install -d -m755 $(FIRMWARE_SENTINEL_PKGDIR)/usr/lib/firmware
+	@install -v -m644 $(FIRMWARE_SENTINEL_DIR)/mx93a1-ahab-container.img \
+		$(FIRMWARE_SENTINEL_PKGDIR)/usr/lib/firmware/
+
+	@$(call touch)
+
+# vim: syntax=make
-- 
2.39.2




^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [DistroKit] [PATCH 6/9] platform: v8a: firmware-imx: Move barebox injects to separate package
  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
  0 siblings, 0 replies; 12+ messages in thread
From: Alexander Dahl @ 2024-04-25 12:33 UTC (permalink / raw)
  To: distrokit

Hei hei,

Am Thu, Apr 25, 2024 at 10:02:59AM +0200 schrieb Alexander Dahl:
> This is what 'barebox_firmware' was invented for.  Done to avoid
> cluttering the firmware-imx package even more.
> 
> Before duplicating the firmware-imx package files in an upper layer and
> adding more such stuff for a different bootloader, we rather move this
> stuff to multiple barebox_firmware packages (which can also sit in other
> layers) and inject files from there.
> 
> The same approach can then be followed by other bootloaders depending on
> firmware-imx package.  This way we can depend on firmware-imx from one,
> the other, or both bootloaders, respectively their firmware packages,
> without the need to touch the firmware-imx package itself.
> 
> Approach inspired by the patch series which introduced that
> infrastructure in ptxdist.
> 
> Link: https://lore.ptxdist.org/ptxdist/20220129070330.2601433-6-michael.riesch@wolfvision.net/
> Signed-off-by: Alexander Dahl <ada@thorsis.com>
> ---
>  configs/platform-v8a/platformconfig           |  1 +
>  configs/platform-v8a/platforms/barebox.imx.in | 12 +++++++++
>  .../platform-v8a/platforms/firmware-imx.in    |  2 --
>  configs/platform-v8a/rules/barebox.imx.make   | 26 +++++++++++++++++++
>  configs/platform-v8a/rules/firmware-imx.make  | 20 --------------
>  5 files changed, 39 insertions(+), 22 deletions(-)
>  create mode 100644 configs/platform-v8a/platforms/barebox.imx.in
>  create mode 100644 configs/platform-v8a/rules/barebox.imx.make
> 
> diff --git a/configs/platform-v8a/platformconfig b/configs/platform-v8a/platformconfig
> index 65c767a..ba33191 100644
> --- a/configs/platform-v8a/platformconfig
> +++ b/configs/platform-v8a/platformconfig
> @@ -183,6 +183,7 @@ PTXCONF_BAREBOX_BUILDSYSTEM_VERSION="${PTXDIST_VCS_VERSION}"
>  PTXCONF_BAREBOX_MD5="dcb443c48b64662b52974502c502427e"
>  PTXCONF_BAREBOX_CONFIG="barebox.config"
>  PTXCONF_BAREBOX_FIRMWARE=y
> +PTXCONF_BAREBOX_NEEDS_FIRMWARE_IMX=y
>  PTXCONF_BAREBOX_EXTRA_ENV=y
>  PTXCONF_BAREBOX_EXTRA_ENV_PATH="barebox-common-defaultenv"
>  # PTXCONF_BAREBOX_BAREBOXENV is not set
> diff --git a/configs/platform-v8a/platforms/barebox.imx.in b/configs/platform-v8a/platforms/barebox.imx.in
> new file mode 100644
> index 0000000..971fc9b
> --- /dev/null
> +++ b/configs/platform-v8a/platforms/barebox.imx.in
> @@ -0,0 +1,12 @@
> +## SECTION=barebox_firmware
> +
> +config BAREBOX_NEEDS_FIRMWARE_IMX
> +	bool
> +	prompt "barebox needs firmware-imx"
> +	help
> +	  Select this if barebox needs the non-free IMX firmware blobs.
> +
> +config BAREBOX_DEPENDENCIES
> +	tristate
> +	select FIRMWARE_IMX if BAREBOX_NEEDS_FIRMWARE_IMX
> +	select FIRMWARE_IMX_BOOTIMAGE_IMX8 if BAREBOX_NEEDS_FIRMWARE_IMX
> diff --git a/configs/platform-v8a/platforms/firmware-imx.in b/configs/platform-v8a/platforms/firmware-imx.in
> index c93e9f8..a08afbe 100644
> --- a/configs/platform-v8a/platforms/firmware-imx.in
> +++ b/configs/platform-v8a/platforms/firmware-imx.in
> @@ -56,6 +56,4 @@ endif
>  
>  config BAREBOX_DEPENDENCIES
>  	tristate
> -	select FIRMWARE_IMX
> -	select FIRMWARE_IMX_BOOTIMAGE_IMX8
>  	select TF_A

After speaking about this in IRC … I think defining a dependency from
barebox to tf-a here is in the wrong place.  I mean this is the
firmware-imx package.  This dependency should go to something like
platforms/barebox.tf-a.in right?

Greets
Alex

> diff --git a/configs/platform-v8a/rules/barebox.imx.make b/configs/platform-v8a/rules/barebox.imx.make
> new file mode 100644
> index 0000000..4c6404c
> --- /dev/null
> +++ b/configs/platform-v8a/rules/barebox.imx.make
> @@ -0,0 +1,26 @@
> +# -*-makefile-*-
> +#
> +# Copyright (C) 2024 by Alexander Dahl <ada@thorsis.com>
> +#
> +# For further information about the PTXdist project and license conditions
> +# see the README file.
> +#
> +
> +ifdef PTXCONF_FIRMWARE_IMX
> +BAREBOX_INJECT_FILES	+= imx8mm-bl31.bin:firmware/imx8mm-bl31.bin
> +BAREBOX_INJECT_FILES	+= imx8mn-bl31.bin:firmware/imx8mn-bl31.bin
> +BAREBOX_INJECT_FILES	+= imx8mp-bl31.bin:firmware/imx8mp-bl31.bin
> +BAREBOX_INJECT_FILES	+= imx8mq-bl31.bin:firmware/imx8mq-bl31.bin
> +ifdef PTXCONF_FIRMWARE_IMX_BOOTIMAGE_IMX8
> +BAREBOX_INJECT_FILES	+= ddr/synopsys/lpddr4_pmu_train_1d_dmem.bin:firmware/lpddr4_pmu_train_1d_dmem.bin
> +BAREBOX_INJECT_FILES	+= ddr/synopsys/lpddr4_pmu_train_1d_imem.bin:firmware/lpddr4_pmu_train_1d_imem.bin
> +BAREBOX_INJECT_FILES	+= ddr/synopsys/lpddr4_pmu_train_2d_dmem.bin:firmware/lpddr4_pmu_train_2d_dmem.bin
> +BAREBOX_INJECT_FILES	+= ddr/synopsys/lpddr4_pmu_train_2d_imem.bin:firmware/lpddr4_pmu_train_2d_imem.bin
> +BAREBOX_INJECT_FILES	+= ddr/synopsys/ddr4_dmem_1d.bin:firmware/ddr4_dmem_1d.bin
> +BAREBOX_INJECT_FILES	+= ddr/synopsys/ddr4_dmem_2d.bin:firmware/ddr4_dmem_2d.bin
> +BAREBOX_INJECT_FILES	+= ddr/synopsys/ddr4_imem_1d.bin:firmware/ddr4_imem_1d.bin
> +BAREBOX_INJECT_FILES	+= ddr/synopsys/ddr4_imem_2d.bin:firmware/ddr4_imem_2d.bin
> +endif
> +endif
> +
> +# vim: syntax=make
> diff --git a/configs/platform-v8a/rules/firmware-imx.make b/configs/platform-v8a/rules/firmware-imx.make
> index 1cdc3ee..906691c 100644
> --- a/configs/platform-v8a/rules/firmware-imx.make
> +++ b/configs/platform-v8a/rules/firmware-imx.make
> @@ -26,26 +26,6 @@ FIRMWARE_IMX_LICENSE	:= NXP-Software-License-Agreement
>  FIRMWARE_IMX_LICENSE_FILES := \
>  	file://COPYING;md5=44a8052c384584ba09077e85a3d1654f
>  
> -#
> -# Firmware blobs for barebox
> -#
> -ifdef PTXCONF_FIRMWARE_IMX
> -BAREBOX_INJECT_FILES	+= imx8mm-bl31.bin:firmware/imx8mm-bl31.bin
> -BAREBOX_INJECT_FILES	+= imx8mn-bl31.bin:firmware/imx8mn-bl31.bin
> -BAREBOX_INJECT_FILES	+= imx8mp-bl31.bin:firmware/imx8mp-bl31.bin
> -BAREBOX_INJECT_FILES	+= imx8mq-bl31.bin:firmware/imx8mq-bl31.bin
> -ifdef PTXCONF_FIRMWARE_IMX_BOOTIMAGE_IMX8
> -BAREBOX_INJECT_FILES	+= ddr/synopsys/lpddr4_pmu_train_1d_dmem.bin:firmware/lpddr4_pmu_train_1d_dmem.bin
> -BAREBOX_INJECT_FILES	+= ddr/synopsys/lpddr4_pmu_train_1d_imem.bin:firmware/lpddr4_pmu_train_1d_imem.bin
> -BAREBOX_INJECT_FILES	+= ddr/synopsys/lpddr4_pmu_train_2d_dmem.bin:firmware/lpddr4_pmu_train_2d_dmem.bin
> -BAREBOX_INJECT_FILES	+= ddr/synopsys/lpddr4_pmu_train_2d_imem.bin:firmware/lpddr4_pmu_train_2d_imem.bin
> -BAREBOX_INJECT_FILES	+= ddr/synopsys/ddr4_dmem_1d.bin:firmware/ddr4_dmem_1d.bin
> -BAREBOX_INJECT_FILES	+= ddr/synopsys/ddr4_dmem_2d.bin:firmware/ddr4_dmem_2d.bin
> -BAREBOX_INJECT_FILES	+= ddr/synopsys/ddr4_imem_1d.bin:firmware/ddr4_imem_1d.bin
> -BAREBOX_INJECT_FILES	+= ddr/synopsys/ddr4_imem_2d.bin:firmware/ddr4_imem_2d.bin
> -endif
> -endif
> -
>  # ----------------------------------------------------------------------------
>  # Extract
>  # ----------------------------------------------------------------------------
> -- 
> 2.39.2
> 
> 



^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2024-04-25 12:34 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
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-04-25  8:02 ` [DistroKit] [PATCH 2/9] platform: v8a: firmware-imx: Rework extract, install, and targetinstall Alexander Dahl
2024-04-25  8:02 ` [DistroKit] [PATCH 3/9] platform: v8a: firmware-imx: Version bump 8.8 -> 8.23 Alexander Dahl
2024-04-25  8:02 ` [DistroKit] [PATCH 4/9] platform: v8a: firmware-imx: Install more files for U-Boot Alexander Dahl
2024-04-25  8:02 ` [DistroKit] [PATCH 5/9] platform: v8a: firmware-imx: Install more files for i.MX93 Alexander Dahl
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-04-25  8:03 ` [DistroKit] [PATCH 7/9] platform: v8a: firmware-rockchip: " Alexander Dahl
2024-04-25  8:03 ` [DistroKit] [PATCH 8/9] platform: v8a: barebox: Remove extra host prog Alexander Dahl
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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox