All the mail mirrored from lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 1/3] binman: Add nxp_imx8mimage etype
@ 2024-04-25 23:00 Marek Vasut
  2024-04-25 23:00 ` [PATCH v2 2/3] ARM: dts: imx: Switch Ronetix iMX8MQ-CM to imx8mq-u-boot.dtsi Marek Vasut
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Marek Vasut @ 2024-04-25 23:00 UTC (permalink / raw
  To: u-boot
  Cc: Marek Vasut, NXP i.MX U-Boot Team, Adam Ford, Alper Nebi Yasak,
	Andrejs Cainikovs, Angus Ainslie, Emanuele Ghidoli, Fabio Estevam,
	Francesco Dolcini, Marcel Ziswiler, Rasmus Villemoes, Simon Glass,
	Stefan Eichenberger, Stefano Babic, Tim Harvey, Tom Rini, kernel,
	u-boot

Add new binman etype derived from mkimage etype which generates configuration
input file for mkimage -T imx8mimage, and runs the mkimage on input data. The
mkimage -T imx8mimage is used to generate combined image with SPL and DDR PHY
blobs which is bootable on i.MX8M.

The configuration file generated here is equivalent of imx8mimage.cfg, which
is the file passed to '$ mkimage -T imx8mimage -n imx8mimage.cfg ...' . The
settings generated into the imx8mimage.cfg file are configured via supported
binman DT properties, nxp,boot-from, nxp,loader-address, nxp,rom-version.

Signed-off-by: Marek Vasut <marex@denx.de>
---
Cc: "NXP i.MX U-Boot Team" <uboot-imx@nxp.com>
Cc: Adam Ford <aford173@gmail.com>
Cc: Alper Nebi Yasak <alpernebiyasak@gmail.com>
Cc: Andrejs Cainikovs <andrejs.cainikovs@toradex.com>
Cc: Angus Ainslie <angus@akkea.ca>
Cc: Emanuele Ghidoli <emanuele.ghidoli@toradex.com>
Cc: Fabio Estevam <festevam@gmail.com>
Cc: Francesco Dolcini <francesco.dolcini@toradex.com>
Cc: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Cc: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
Cc: Simon Glass <sjg@chromium.org>
Cc: Stefan Eichenberger <stefan.eichenberger@toradex.com>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Tim Harvey <tharvey@gateworks.com>
Cc: Tom Rini <trini@konsulko.com>
Cc: kernel@puri.sm
Cc: u-boot@dh-electronics.com
Cc: u-boot@lists.denx.de
---
V2: Fix pylint errors
---
 tools/binman/etype/nxp_imx8mimage.py | 74 ++++++++++++++++++++++++++++
 1 file changed, 74 insertions(+)
 create mode 100644 tools/binman/etype/nxp_imx8mimage.py

diff --git a/tools/binman/etype/nxp_imx8mimage.py b/tools/binman/etype/nxp_imx8mimage.py
new file mode 100644
index 00000000000..3585120b79b
--- /dev/null
+++ b/tools/binman/etype/nxp_imx8mimage.py
@@ -0,0 +1,74 @@
+# SPDX-License-Identifier: GPL-2.0+
+# Copyright 2023-2024 Marek Vasut <marex@denx.de>
+# Written with much help from Simon Glass <sjg@chromium.org>
+#
+# Entry-type module for generating the i.MX8M mkimage -T imx8mimage
+# configuration file and invocation of mkimage -T imx8mimage on the
+# configuration file and input data.
+#
+
+from collections import OrderedDict
+
+from binman.entry import Entry
+from binman.etype.mkimage import Entry_mkimage
+from binman.etype.section import Entry_section
+from binman import elf
+from dtoc import fdt_util
+from u_boot_pylib import tools
+
+class Entry_nxp_imx8mimage(Entry_mkimage):
+    """NXP i.MX8M imx8mimage .cfg file generator and mkimage invoker
+
+    Properties / Entry arguments:
+        - nxp,boot-from - device to boot from (e.g. 'sd')
+        - nxp,loader-address - loader address (SPL text base)
+        - nxp,rom-version - BootROM version ('2' for i.MX8M Nano and Plus)
+    """
+
+    def __init__(self, section, etype, node):
+        super().__init__(section, etype, node)
+        self.required_props = ['nxp,boot-from', 'nxp,rom-version', 'nxp,loader-address']
+
+    def ReadNode(self):
+        super().ReadNode()
+        self.boot_from = fdt_util.GetString(self._node, 'nxp,boot-from')
+        self.loader_address = fdt_util.GetInt(self._node, 'nxp,loader-address')
+        self.rom_version = fdt_util.GetInt(self._node, 'nxp,rom-version')
+        self.ReadEntries()
+
+    def BuildSectionData(self, required):
+        data, input_fname, uniq = self.collect_contents_to_file(
+            self._entries.values(), 'input')
+        # Generate mkimage configuration file similar to imx8mimage.cfg
+        # and pass it to mkimage to generate SPL image for us here.
+        cfg_fname = tools.get_output_filename('nxp.imx8mimage.cfg.%s' % uniq)
+        with open(cfg_fname, 'w') as outf:
+            print('ROM_VERSION v%d' % self.rom_version, file=outf)
+            print('BOOT_FROM %s' % self.boot_from, file=outf)
+            print('LOADER %s %#x' % (input_fname, self.loader_address), file=outf)
+
+        output_fname = tools.get_output_filename(f'cfg-out.{uniq}')
+        args = ['-d', input_fname, '-n', cfg_fname, '-T', 'imx8mimage',
+                output_fname]
+        if self.mkimage.run_cmd(*args) is not None:
+            return tools.read_file(output_fname)
+        else:
+            # Bintool is missing; just use the input data as the output
+            self.record_missing_bintool(self.mkimage)
+            return data
+
+    def SetImagePos(self, image_pos):
+        # Customized SoC specific SetImagePos which skips the mkimage etype
+        # implementation and removes the 0x48 offset introduced there. That
+        # offset is only used for uImage/fitImage, which is not the case in
+        # here.
+        upto = 0x00
+        for entry in super().GetEntries().values():
+            entry.SetOffsetSize(upto, None)
+
+            # Give up if any entries lack a size
+            if entry.size is None:
+                return
+            upto += entry.size
+
+        Entry_section.SetImagePos(self, image_pos)
-- 
2.43.0


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

* [PATCH v2 2/3] ARM: dts: imx: Switch Ronetix iMX8MQ-CM to imx8mq-u-boot.dtsi
  2024-04-25 23:00 [PATCH v2 1/3] binman: Add nxp_imx8mimage etype Marek Vasut
@ 2024-04-25 23:00 ` Marek Vasut
  2024-04-25 23:00 ` [PATCH v2 3/3] ARM: dts: imx: Convert i.MX8M flash.bin image generation to binman Marek Vasut
  2024-04-29 10:38 ` [PATCH v2 1/3] binman: Add nxp_imx8mimage etype Fabio Estevam
  2 siblings, 0 replies; 4+ messages in thread
From: Marek Vasut @ 2024-04-25 23:00 UTC (permalink / raw
  To: u-boot
  Cc: Marek Vasut, NXP i.MX U-Boot Team, Adam Ford, Alper Nebi Yasak,
	Andrejs Cainikovs, Angus Ainslie, Emanuele Ghidoli, Fabio Estevam,
	Francesco Dolcini, Marcel Ziswiler, Rasmus Villemoes, Simon Glass,
	Stefan Eichenberger, Stefano Babic, Tim Harvey, Tom Rini, kernel,
	u-boot

Include imx8mq-u-boot.dtsi in the board -u-boot.dtsi to pull in binman
configuration instead of duplicating it in the board -u-boot.dtsi again.
Drop the duplicate binman configuration.

Signed-off-by: Marek Vasut <marex@denx.de>
---
Cc: "NXP i.MX U-Boot Team" <uboot-imx@nxp.com>
Cc: Adam Ford <aford173@gmail.com>
Cc: Alper Nebi Yasak <alpernebiyasak@gmail.com>
Cc: Andrejs Cainikovs <andrejs.cainikovs@toradex.com>
Cc: Angus Ainslie <angus@akkea.ca>
Cc: Emanuele Ghidoli <emanuele.ghidoli@toradex.com>
Cc: Fabio Estevam <festevam@gmail.com>
Cc: Francesco Dolcini <francesco.dolcini@toradex.com>
Cc: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Cc: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
Cc: Simon Glass <sjg@chromium.org>
Cc: Stefan Eichenberger <stefan.eichenberger@toradex.com>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Tim Harvey <tharvey@gateworks.com>
Cc: Tom Rini <trini@konsulko.com>
Cc: kernel@puri.sm
Cc: u-boot@dh-electronics.com
Cc: u-boot@lists.denx.de
---
V2: No change
---
 arch/arm/dts/imx8mq-cm-u-boot.dtsi | 111 +----------------------------
 1 file changed, 1 insertion(+), 110 deletions(-)

diff --git a/arch/arm/dts/imx8mq-cm-u-boot.dtsi b/arch/arm/dts/imx8mq-cm-u-boot.dtsi
index e23998f5aba..819501337e9 100644
--- a/arch/arm/dts/imx8mq-cm-u-boot.dtsi
+++ b/arch/arm/dts/imx8mq-cm-u-boot.dtsi
@@ -3,11 +3,7 @@
  * Copyright 2019 NXP
  */
 
-/ {
-	binman: binman {
-		multiple-images;
-	};
-};
+#include "imx8mq-u-boot.dtsi"
 
 &pinctrl_uart1 {
 	bootph-pre-ram;
@@ -16,108 +12,3 @@
 &uart1 {
 	bootph-pre-ram;
 };
-
-&binman {
-	 u-boot-spl-ddr {
-		filename = "u-boot-spl-ddr.bin";
-		pad-byte = <0xff>;
-		align-size = <4>;
-		align = <4>;
-
-		u-boot-spl {
-			align-end = <4>;
-		};
-
-		ddr-1d-imem-fw {
-			filename = "lpddr4_pmu_train_1d_imem.bin";
-			type = "blob-ext";
-			align-end = <4>;
-		};
-
-		ddr-1d-dmem-fw {
-			filename = "lpddr4_pmu_train_1d_dmem.bin";
-			type = "blob-ext";
-			align-end = <4>;
-		};
-
-		ddr-2d-imem-fw {
-			filename = "lpddr4_pmu_train_2d_imem.bin";
-			type = "blob-ext";
-			align-end = <4>;
-		};
-
-		ddr-2d-dmem-fw {
-			filename = "lpddr4_pmu_train_2d_dmem.bin";
-			type = "blob-ext";
-			align-end = <4>;
-		};
-	};
-
-	flash {
-		mkimage {
-			args = "-n spl/u-boot-spl.cfgout -T imx8mimage -e 0x7e1000";
-
-			blob {
-				filename = "u-boot-spl-ddr.bin";
-			};
-		};
-	};
-
-	itb {
-		filename = "u-boot.itb";
-
-		fit {
-			description = "Configuration to load ATF before U-Boot";
-			#address-cells = <1>;
-			fit,external-offset = <CONFIG_FIT_EXTERNAL_OFFSET>;
-
-			images {
-				uboot {
-					description = "U-Boot (64-bit)";
-					type = "standalone";
-					arch = "arm64";
-					compression = "none";
-					load = <CONFIG_TEXT_BASE>;
-
-					uboot_blob: blob-ext {
-						filename = "u-boot-nodtb.bin";
-					};
-				};
-
-				atf {
-					description = "ARM Trusted Firmware";
-					type = "firmware";
-					arch = "arm64";
-					compression = "none";
-					load = <0x910000>;
-					entry = <0x910000>;
-
-					atf_blob: blob-ext {
-						filename = "bl31.bin";
-					};
-				};
-
-				fdt {
-					description = "NAME";
-					type = "flat_dt";
-					compression = "none";
-
-					uboot_fdt_blob: blob-ext {
-						filename = "u-boot.dtb";
-					};
-				};
-			};
-
-			configurations {
-				default = "conf";
-
-				conf {
-					description = "NAME";
-					firmware = "uboot";
-					loadables = "atf";
-					fdt = "fdt";
-				};
-			};
-		};
-	};
-};
-- 
2.43.0


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

* [PATCH v2 3/3] ARM: dts: imx: Convert i.MX8M flash.bin image generation to binman
  2024-04-25 23:00 [PATCH v2 1/3] binman: Add nxp_imx8mimage etype Marek Vasut
  2024-04-25 23:00 ` [PATCH v2 2/3] ARM: dts: imx: Switch Ronetix iMX8MQ-CM to imx8mq-u-boot.dtsi Marek Vasut
@ 2024-04-25 23:00 ` Marek Vasut
  2024-04-29 10:38 ` [PATCH v2 1/3] binman: Add nxp_imx8mimage etype Fabio Estevam
  2 siblings, 0 replies; 4+ messages in thread
From: Marek Vasut @ 2024-04-25 23:00 UTC (permalink / raw
  To: u-boot
  Cc: Marek Vasut, Tim Harvey, Fabio Estevam, NXP i.MX U-Boot Team,
	Adam Ford, Alper Nebi Yasak, Andrejs Cainikovs, Angus Ainslie,
	Emanuele Ghidoli, Francesco Dolcini, Marcel Ziswiler,
	Rasmus Villemoes, Simon Glass, Stefan Eichenberger, Stefano Babic,
	Tom Rini, kernel, u-boot

Rework the flash.bin image generation such that it uses the new binman
nxp_imx8mimage etype. This way, the flash.bin is assembled in correct
order using plain binman, without any workarounds or sections assembled
in special DT node order.

Reviewed-By: Tim Harvey <tharvey@gateworks.com>
Tested-By: Tim Harvey <tharvey@gateworks.com> # imx8mm_venice
Tested-by: Fabio Estevam <festevam@gmail.com> # imx8mm-evk and imx8mn-evk
Signed-off-by: Marek Vasut <marex@denx.de>
---
WARNING: This is very likely to break corner case uses, so please do
         test this on your platform.
NOTE: This also opens the implementation for proper CST signing etype,
      the CST signing would look similar to nxp-imx8mimage section, and
      it would likely wrap the whole topmost section {} in the binman
      node.
---
Cc: "NXP i.MX U-Boot Team" <uboot-imx@nxp.com>
Cc: Adam Ford <aford173@gmail.com>
Cc: Alper Nebi Yasak <alpernebiyasak@gmail.com>
Cc: Andrejs Cainikovs <andrejs.cainikovs@toradex.com>
Cc: Angus Ainslie <angus@akkea.ca>
Cc: Emanuele Ghidoli <emanuele.ghidoli@toradex.com>
Cc: Fabio Estevam <festevam@gmail.com>
Cc: Francesco Dolcini <francesco.dolcini@toradex.com>
Cc: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Cc: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
Cc: Simon Glass <sjg@chromium.org>
Cc: Stefan Eichenberger <stefan.eichenberger@toradex.com>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Tim Harvey <tharvey@gateworks.com>
Cc: Tom Rini <trini@konsulko.com>
Cc: kernel@puri.sm
Cc: u-boot@dh-electronics.com
Cc: u-boot@lists.denx.de
---
V2: Add TB from Fabio/Tim and RB from Tim
---
 arch/arm/dts/imx8mm-u-boot.dtsi               | 126 ++++++---------
 .../dts/imx8mm-verdin-wifi-dev-u-boot.dtsi    |   8 +-
 arch/arm/dts/imx8mn-u-boot.dtsi               | 147 +++++++-----------
 arch/arm/dts/imx8mp-dhcom-u-boot.dtsi         |   2 +-
 arch/arm/dts/imx8mp-rsb3720-a1-u-boot.dtsi    |   2 +-
 arch/arm/dts/imx8mp-u-boot.dtsi               |  96 +++++-------
 arch/arm/dts/imx8mq-librem5-r4-u-boot.dtsi    |  15 +-
 arch/arm/dts/imx8mq-u-boot.dtsi               | 109 +++++--------
 8 files changed, 203 insertions(+), 302 deletions(-)

diff --git a/arch/arm/dts/imx8mm-u-boot.dtsi b/arch/arm/dts/imx8mm-u-boot.dtsi
index 06f2f73a03f..6ab8f66256e 100644
--- a/arch/arm/dts/imx8mm-u-boot.dtsi
+++ b/arch/arm/dts/imx8mm-u-boot.dtsi
@@ -5,7 +5,6 @@
 
 / {
 	binman: binman {
-		multiple-images;
 	};
 
 #ifdef CONFIG_OPTEE
@@ -43,56 +42,61 @@
 };
 
 &binman {
-	u-boot-spl-ddr {
-		align = <4>;
-		align-size = <4>;
-		filename = "u-boot-spl-ddr.bin";
-		pad-byte = <0xff>;
-
-		u-boot-spl {
-			align-end = <4>;
-			filename = "u-boot-spl.bin";
-		};
+	filename = "flash.bin";
+	section {
+		pad-byte = <0x00>;
 
-		ddr-1d-imem-fw {
-			filename = "lpddr4_pmu_train_1d_imem.bin";
-			align-end = <4>;
+#ifdef CONFIG_FSPI_CONF_HEADER
+		fspi_conf_block {
+			filename = CONFIG_FSPI_CONF_FILE;
 			type = "blob-ext";
+			size = <0x1000>;
 		};
+#endif
 
-		ddr-1d-dmem-fw {
-			filename = "lpddr4_pmu_train_1d_dmem.bin";
-			align-end = <4>;
-			type = "blob-ext";
-		};
+		nxp-imx8mimage {
+			filename = "u-boot-spl-mkimage.bin";
+			nxp,boot-from = "sd";
+			nxp,rom-version = <1>;
+			nxp,loader-address = <CONFIG_SPL_TEXT_BASE>;
+			args;	/* Needed by mkimage etype superclass */
 
-		ddr-2d-imem-fw {
-			filename = "lpddr4_pmu_train_2d_imem.bin";
-			align-end = <4>;
-			type = "blob-ext";
-		};
+			section {
+				align = <4>;
+				align-size = <4>;
+				filename = "u-boot-spl-ddr.bin";
+				pad-byte = <0xff>;
 
-		ddr-2d-dmem-fw {
-			filename = "lpddr4_pmu_train_2d_dmem.bin";
-			align-end = <4>;
-			type = "blob-ext";
-		};
-	};
+				u-boot-spl {
+					align-end = <4>;
+					filename = "u-boot-spl.bin";
+				};
 
-	spl {
-		filename = "spl.bin";
+				ddr-1d-imem-fw {
+					filename = "lpddr4_pmu_train_1d_imem.bin";
+					align-end = <4>;
+					type = "blob-ext";
+				};
 
-		mkimage {
-			args = "-n spl/u-boot-spl.cfgout -T imx8mimage -e 0x7e1000";
+				ddr-1d-dmem-fw {
+					filename = "lpddr4_pmu_train_1d_dmem.bin";
+					align-end = <4>;
+					type = "blob-ext";
+				};
 
-			blob {
-				filename = "u-boot-spl-ddr.bin";
+				ddr-2d-imem-fw {
+					filename = "lpddr4_pmu_train_2d_imem.bin";
+					align-end = <4>;
+					type = "blob-ext";
+				};
+
+				ddr-2d-dmem-fw {
+					filename = "lpddr4_pmu_train_2d_dmem.bin";
+					align-end = <4>;
+					type = "blob-ext";
+				};
 			};
 		};
-	};
-
-	itb {
-		filename = "u-boot.itb";
 
 		fit {
 			description = "Configuration to load ATF before U-Boot";
@@ -101,6 +105,11 @@
 #endif
 			fit,fdt-list = "of-list";
 			#address-cells = <1>;
+#ifdef CONFIG_FSPI_CONF_HEADER
+			offset = <0x58C00>;
+#else
+			offset = <0x57c00>;
+#endif
 
 			images {
 				uboot {
@@ -166,43 +175,6 @@
 			};
 		};
 	};
-
-	imx-boot {
-		filename = "flash.bin";
-		pad-byte = <0x00>;
-
-#ifdef CONFIG_FSPI_CONF_HEADER
-		fspi_conf_block {
-			filename = CONFIG_FSPI_CONF_FILE;
-			type = "blob-ext";
-			size = <0x1000>;
-		};
-
-		spl {
-			filename = "spl.bin";
-			offset = <0x1000>;
-			type = "blob-ext";
-		};
-
-		binman_uboot: uboot {
-			filename = "u-boot.itb";
-			offset = <0x58C00>;
-			type = "blob-ext";
-		};
-#else
-		spl {
-			filename = "spl.bin";
-			offset = <0x0>;
-			type = "blob-ext";
-		};
-
-		binman_uboot: uboot {
-			filename = "u-boot.itb";
-			offset = <0x57c00>;
-			type = "blob-ext";
-		};
-#endif
-	};
 };
 
 &clk {
diff --git a/arch/arm/dts/imx8mm-verdin-wifi-dev-u-boot.dtsi b/arch/arm/dts/imx8mm-verdin-wifi-dev-u-boot.dtsi
index 8b397f535c1..90183aff8bc 100644
--- a/arch/arm/dts/imx8mm-verdin-wifi-dev-u-boot.dtsi
+++ b/arch/arm/dts/imx8mm-verdin-wifi-dev-u-boot.dtsi
@@ -35,8 +35,12 @@
 	bootph-pre-ram;
 };
 
-&binman_uboot {
-	offset = <0x5fc00>;
+&binman {
+	section {
+		fit {
+			offset = <0x5fc00>;
+		};
+	};
 };
 
 &gpio1 {
diff --git a/arch/arm/dts/imx8mn-u-boot.dtsi b/arch/arm/dts/imx8mn-u-boot.dtsi
index 96b1a1bc802..ba9967dbe4a 100644
--- a/arch/arm/dts/imx8mn-u-boot.dtsi
+++ b/arch/arm/dts/imx8mn-u-boot.dtsi
@@ -5,7 +5,6 @@
 
 / {
 	binman: binman {
-		multiple-images;
 	};
 
 #ifdef CONFIG_OPTEE
@@ -92,78 +91,83 @@
 };
 
 &binman {
-	 u-boot-spl-ddr {
-		filename = "u-boot-spl-ddr.bin";
-		pad-byte = <0xff>;
-		align-size = <4>;
-		align = <4>;
-
-		u-boot-spl {
-			align-end = <4>;
-			filename = "u-boot-spl.bin";
+	filename = "flash.bin";
+	section {
+		pad-byte = <0x00>;
+
+#ifdef CONFIG_FSPI_CONF_HEADER
+		fspi_conf_block {
+			filename = CONFIG_FSPI_CONF_FILE;
+			type = "blob-ext";
+			offset = <0x400>;
 		};
+#endif
 
-		ddr-1d-imem-fw {
+		nxp-imx8mimage {
+			filename = "u-boot-spl-mkimage.bin";
+			nxp,boot-from = "sd";
+			nxp,rom-version = <2>;
+			nxp,loader-address = <CONFIG_SPL_TEXT_BASE>;
+			args;	/* Needed by mkimage etype superclass */
+
+			section {
+				filename = "u-boot-spl-ddr.bin";
+				pad-byte = <0xff>;
+				align-size = <4>;
+				align = <4>;
+
+				u-boot-spl {
+					align-end = <4>;
+					filename = "u-boot-spl.bin";
+				};
+
+				ddr-1d-imem-fw {
 #ifdef CONFIG_IMX8M_LPDDR4
-			filename = "lpddr4_pmu_train_1d_imem.bin";
+					filename = "lpddr4_pmu_train_1d_imem.bin";
 #elif CONFIG_IMX8M_DDR4
-			filename = "ddr4_imem_1d_201810.bin";
+					filename = "ddr4_imem_1d_201810.bin";
 #else
-			filename = "ddr3_imem_1d.bin";
+					filename = "ddr3_imem_1d.bin";
 #endif
-			type = "blob-ext";
-			align-end = <4>;
-		};
+					type = "blob-ext";
+					align-end = <4>;
+				};
 
-		ddr-1d-dmem-fw {
+				ddr-1d-dmem-fw {
 #ifdef CONFIG_IMX8M_LPDDR4
-			filename = "lpddr4_pmu_train_1d_dmem.bin";
+					filename = "lpddr4_pmu_train_1d_dmem.bin";
 #elif CONFIG_IMX8M_DDR4
-			filename = "ddr4_dmem_1d_201810.bin";
+					filename = "ddr4_dmem_1d_201810.bin";
 #else
-			filename = "ddr3_dmem_1d.bin";
+					filename = "ddr3_dmem_1d.bin";
 #endif
-			type = "blob-ext";
-			align-end = <4>;
-		};
+					type = "blob-ext";
+					align-end = <4>;
+				};
 
 #if defined(CONFIG_IMX8M_LPDDR4) || defined(CONFIG_IMX8M_DDR4)
-		ddr-2d-imem-fw {
+				ddr-2d-imem-fw {
 #ifdef CONFIG_IMX8M_LPDDR4
-			filename = "lpddr4_pmu_train_2d_imem.bin";
+					filename = "lpddr4_pmu_train_2d_imem.bin";
 #else
-			filename = "ddr4_imem_2d_201810.bin";
+					filename = "ddr4_imem_2d_201810.bin";
 #endif
-			type = "blob-ext";
-			align-end = <4>;
-		};
+					type = "blob-ext";
+					align-end = <4>;
+				};
 
-		ddr-2d-dmem-fw {
+				ddr-2d-dmem-fw {
 #ifdef CONFIG_IMX8M_LPDDR4
-			filename = "lpddr4_pmu_train_2d_dmem.bin";
+					filename = "lpddr4_pmu_train_2d_dmem.bin";
 #else
-			filename = "ddr4_dmem_2d_201810.bin";
+					filename = "ddr4_dmem_2d_201810.bin";
 #endif
-			type = "blob-ext";
-			align-end = <4>;
-		};
+					type = "blob-ext";
+					align-end = <4>;
+				};
 #endif
-	};
-
-	spl {
-		filename = "spl.bin";
-
-		mkimage {
-			args = "-n spl/u-boot-spl.cfgout -T imx8mimage -e 0x912000";
-
-			blob {
-				filename = "u-boot-spl-ddr.bin";
 			};
 		};
-	};
-
-	itb {
-		filename = "u-boot.itb";
 
 		fit {
 			description = "Configuration to load ATF before U-Boot";
@@ -172,6 +176,11 @@
 #endif
 			fit,fdt-list = "of-list";
 			#address-cells = <1>;
+#ifdef CONFIG_FSPI_CONF_HEADER
+			offset = <0x59000>;
+#else
+			offset = <0x58000>;
+#endif
 
 			images {
 				uboot {
@@ -237,42 +246,4 @@
 			};
 		};
 	};
-
-	imx-boot {
-		filename = "flash.bin";
-		pad-byte = <0x00>;
-
-#ifdef CONFIG_FSPI_CONF_HEADER
-		fspi_conf_block {
-			filename = CONFIG_FSPI_CONF_FILE;
-			type = "blob-ext";
-			offset = <0x400>;
-		};
-
-		spl {
-			filename = "spl.bin";
-			offset = <0x1000>;
-			type = "blob-ext";
-		};
-
-		binman_uboot: uboot {
-			filename = "u-boot.itb";
-			offset = <0x59000>;
-			type = "blob-ext";
-		};
-#else
-
-		spl {
-			offset = <0x0>;
-			filename = "spl.bin";
-			type = "blob-ext";
-		};
-
-		binman_uboot: uboot {
-			offset = <0x58000>;
-			filename = "u-boot.itb";
-			type = "blob-ext";
-		};
-#endif
-	};
 };
diff --git a/arch/arm/dts/imx8mp-dhcom-u-boot.dtsi b/arch/arm/dts/imx8mp-dhcom-u-boot.dtsi
index b05be57e71b..cb37e28f28f 100644
--- a/arch/arm/dts/imx8mp-dhcom-u-boot.dtsi
+++ b/arch/arm/dts/imx8mp-dhcom-u-boot.dtsi
@@ -136,7 +136,7 @@
 };
 
 &binman {
-	itb {
+	section {
 		fit {
 			images {
 				fdt-dto-imx8mp-dhcom-som-overlay-eth1xfast {
diff --git a/arch/arm/dts/imx8mp-rsb3720-a1-u-boot.dtsi b/arch/arm/dts/imx8mp-rsb3720-a1-u-boot.dtsi
index 22171bd344e..aff5dcf615d 100644
--- a/arch/arm/dts/imx8mp-rsb3720-a1-u-boot.dtsi
+++ b/arch/arm/dts/imx8mp-rsb3720-a1-u-boot.dtsi
@@ -136,7 +136,7 @@
 };
 
 &binman {
-	itb {
+	section {
 		fit {
 			images {
 				fip {
diff --git a/arch/arm/dts/imx8mp-u-boot.dtsi b/arch/arm/dts/imx8mp-u-boot.dtsi
index 4fadcaea509..c4c1a177102 100644
--- a/arch/arm/dts/imx8mp-u-boot.dtsi
+++ b/arch/arm/dts/imx8mp-u-boot.dtsi
@@ -6,7 +6,6 @@
 
 / {
 	binman: binman {
-		multiple-images;
 	};
 
 #ifdef CONFIG_OPTEE
@@ -83,55 +82,52 @@
 #endif
 
 &binman {
-	 u-boot-spl-ddr {
-		filename = "u-boot-spl-ddr.bin";
-		pad-byte = <0xff>;
-		align-size = <4>;
-		align = <4>;
-
-		u-boot-spl {
-			align-end = <4>;
-		};
+	filename = "flash.bin";
+	section {
+		pad-byte = <0x00>;
 
-		ddr-1d-imem-fw {
-			filename = "lpddr4_pmu_train_1d_imem_202006.bin";
-			type = "blob-ext";
-			align-end = <4>;
-		};
+		nxp-imx8mimage {
+			filename = "u-boot-spl-mkimage.bin";
+			nxp,boot-from = "sd";
+			nxp,rom-version = <2>;
+			nxp,loader-address = <CONFIG_SPL_TEXT_BASE>;
+			args;	/* Needed by mkimage etype superclass */
 
-		ddr-1d-dmem-fw {
-			filename = "lpddr4_pmu_train_1d_dmem_202006.bin";
-			type = "blob-ext";
-			align-end = <4>;
-		};
+			section {
+				filename = "u-boot-spl-ddr.bin";
+				pad-byte = <0xff>;
+				align-size = <4>;
+				align = <4>;
 
-		ddr-2d-imem-fw {
-			filename = "lpddr4_pmu_train_2d_imem_202006.bin";
-			type = "blob-ext";
-			align-end = <4>;
-		};
+				u-boot-spl {
+					align-end = <4>;
+				};
 
-		ddr-2d-dmem-fw {
-			filename = "lpddr4_pmu_train_2d_dmem_202006.bin";
-			type = "blob-ext";
-			align-end = <4>;
-		};
-	};
+				ddr-1d-imem-fw {
+					filename = "lpddr4_pmu_train_1d_imem_202006.bin";
+					type = "blob-ext";
+					align-end = <4>;
+				};
 
-	spl {
-		filename = "spl.bin";
+				ddr-1d-dmem-fw {
+					filename = "lpddr4_pmu_train_1d_dmem_202006.bin";
+					type = "blob-ext";
+					align-end = <4>;
+				};
 
-		mkimage {
-			args = "-n spl/u-boot-spl.cfgout -T imx8mimage -e 0x920000";
+				ddr-2d-imem-fw {
+					filename = "lpddr4_pmu_train_2d_imem_202006.bin";
+					type = "blob-ext";
+					align-end = <4>;
+				};
 
-			blob {
-				filename = "u-boot-spl-ddr.bin";
+				ddr-2d-dmem-fw {
+					filename = "lpddr4_pmu_train_2d_dmem_202006.bin";
+					type = "blob-ext";
+					align-end = <4>;
+				};
 			};
 		};
-	};
-
-	itb {
-		filename = "u-boot.itb";
 
 		fit {
 			description = "Configuration to load ATF before U-Boot";
@@ -140,6 +136,7 @@
 #endif
 			fit,fdt-list = "of-list";
 			#address-cells = <1>;
+			offset = <0x58000>;
 
 			images {
 				uboot {
@@ -195,21 +192,4 @@
 			};
 		};
 	};
-
-	imx-boot {
-		filename = "flash.bin";
-		pad-byte = <0x00>;
-
-		spl {
-			filename = "spl.bin";
-			offset = <0x0>;
-			type = "blob-ext";
-		};
-
-		binman_uboot: uboot {
-			filename = "u-boot.itb";
-			offset = <0x58000>;
-			type = "blob-ext";
-		};
-	};
 };
diff --git a/arch/arm/dts/imx8mq-librem5-r4-u-boot.dtsi b/arch/arm/dts/imx8mq-librem5-r4-u-boot.dtsi
index e3341a46d63..1a4568dac65 100644
--- a/arch/arm/dts/imx8mq-librem5-r4-u-boot.dtsi
+++ b/arch/arm/dts/imx8mq-librem5-r4-u-boot.dtsi
@@ -11,14 +11,13 @@
 };
 
 &binman {
-	/delete-node/ signed-hdmi;
-
-	signed-hdmi {
-		filename = "signed_hdmi.bin";
-
-		signed-dp-imx8m {
-			filename = "signed_dp_imx8m.bin";
-			type = "blob-ext";
+	section {
+		nxp-imx8mimage {
+			section {
+				signed-hdmi-imx8m {
+					filename = "signed_dp_imx8m.bin";
+				};
+			};
 		};
 	};
 };
diff --git a/arch/arm/dts/imx8mq-u-boot.dtsi b/arch/arm/dts/imx8mq-u-boot.dtsi
index 90b2274754b..48dbe94f0c4 100644
--- a/arch/arm/dts/imx8mq-u-boot.dtsi
+++ b/arch/arm/dts/imx8mq-u-boot.dtsi
@@ -5,7 +5,6 @@
 
 / {
 	binman: binman {
-		multiple-images;
 	};
 
 };
@@ -35,65 +34,58 @@
 };
 
 &binman {
-	u-boot-spl-ddr {
-		align = <4>;
-		align-size = <4>;
-		filename = "u-boot-spl-ddr.bin";
-		pad-byte = <0xff>;
-
-		u-boot-spl {
-			align-end = <4>;
-			filename = "u-boot-spl.bin";
-		};
+	filename = "flash.bin";
+	section {
+		pad-byte = <0x00>;
 
-		ddr-1d-imem-fw {
-			filename = "lpddr4_pmu_train_1d_imem.bin";
-			align-end = <4>;
-			type = "blob-ext";
-		};
+		nxp-imx8mimage {
+			filename = "u-boot-spl-mkimage.bin";
+			nxp,boot-from = "sd";
+			nxp,rom-version = <1>;
+			nxp,loader-address = <CONFIG_SPL_TEXT_BASE>;
+			args;	/* Needed by mkimage etype superclass */
 
-		ddr-1d-dmem-fw {
-			filename = "lpddr4_pmu_train_1d_dmem.bin";
-			align-end = <4>;
-			type = "blob-ext";
-		};
-
-		ddr-2d-imem-fw {
-			filename = "lpddr4_pmu_train_2d_imem.bin";
-			align-end = <4>;
-			type = "blob-ext";
-		};
+			section {
+				align = <4>;
+				align-size = <4>;
+				filename = "u-boot-spl-ddr.bin";
+				pad-byte = <0xff>;
 
-		ddr-2d-dmem-fw {
-			filename = "lpddr4_pmu_train_2d_dmem.bin";
-			align-end = <4>;
-			type = "blob-ext";
-		};
-	};
+				u-boot-spl {
+					align-end = <4>;
+					filename = "u-boot-spl.bin";
+				};
 
-	signed-hdmi {
-		filename = "signed_hdmi.bin";
+				ddr-1d-imem-fw {
+					filename = "lpddr4_pmu_train_1d_imem.bin";
+					align-end = <4>;
+					type = "blob-ext";
+				};
 
-		signed-hdmi-imx8m {
-			filename = "signed_hdmi_imx8m.bin";
-			type = "blob-ext";
-		};
-	};
+				ddr-1d-dmem-fw {
+					filename = "lpddr4_pmu_train_1d_dmem.bin";
+					align-end = <4>;
+					type = "blob-ext";
+				};
 
-	spl {
-		filename = "spl.bin";
+				ddr-2d-imem-fw {
+					filename = "lpddr4_pmu_train_2d_imem.bin";
+					align-end = <4>;
+					type = "blob-ext";
+				};
 
-		mkimage {
-			args = "-n spl/u-boot-spl.cfgout -T imx8mimage -e 0x7e1000";
+				ddr-2d-dmem-fw {
+					filename = "lpddr4_pmu_train_2d_dmem.bin";
+					align-end = <4>;
+					type = "blob-ext";
+				};
 
-			blob {
-				filename = "u-boot-spl-ddr.bin";
+				signed-hdmi-imx8m {
+					filename = "signed_hdmi_imx8m.bin";
+					type = "blob-ext";
+				};
 			};
 		};
-	};
-
-	itb {
-		filename = "u-boot.itb";
 
 		fit {
 			description = "Configuration to load ATF before U-Boot";
@@ -158,21 +150,4 @@
 			};
 		};
 	};
-
-	imx-boot {
-		filename = "flash.bin";
-		pad-byte = <0x00>;
-
-		spl {
-			filename = "spl.bin";
-			offset = <0x0>;
-			type = "blob-ext";
-		};
-
-		binman_uboot: uboot {
-			filename = "u-boot.itb";
-			offset = <0x57c00>;
-			type = "blob-ext";
-		};
-	};
 };
-- 
2.43.0


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

* Re: [PATCH v2 1/3] binman: Add nxp_imx8mimage etype
  2024-04-25 23:00 [PATCH v2 1/3] binman: Add nxp_imx8mimage etype Marek Vasut
  2024-04-25 23:00 ` [PATCH v2 2/3] ARM: dts: imx: Switch Ronetix iMX8MQ-CM to imx8mq-u-boot.dtsi Marek Vasut
  2024-04-25 23:00 ` [PATCH v2 3/3] ARM: dts: imx: Convert i.MX8M flash.bin image generation to binman Marek Vasut
@ 2024-04-29 10:38 ` Fabio Estevam
  2 siblings, 0 replies; 4+ messages in thread
From: Fabio Estevam @ 2024-04-29 10:38 UTC (permalink / raw
  To: Marek Vasut
  Cc: u-boot, NXP i.MX U-Boot Team, Adam Ford, Alper Nebi Yasak,
	Andrejs Cainikovs, Angus Ainslie, Emanuele Ghidoli,
	Francesco Dolcini, Marcel Ziswiler, Rasmus Villemoes, Simon Glass,
	Stefan Eichenberger, Stefano Babic, Tim Harvey, Tom Rini, kernel,
	u-boot

On Thu, Apr 25, 2024 at 8:01 PM Marek Vasut <marex@denx.de> wrote:
>
> Add new binman etype derived from mkimage etype which generates configuration
> input file for mkimage -T imx8mimage, and runs the mkimage on input data. The
> mkimage -T imx8mimage is used to generate combined image with SPL and DDR PHY
> blobs which is bootable on i.MX8M.
>
> The configuration file generated here is equivalent of imx8mimage.cfg, which
> is the file passed to '$ mkimage -T imx8mimage -n imx8mimage.cfg ...' . The
> settings generated into the imx8mimage.cfg file are configured via supported
> binman DT properties, nxp,boot-from, nxp,loader-address, nxp,rom-version.
>
> Signed-off-by: Marek Vasut <marex@denx.de>

Applied all, thanks.

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

end of thread, other threads:[~2024-04-29 10:38 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-04-25 23:00 [PATCH v2 1/3] binman: Add nxp_imx8mimage etype Marek Vasut
2024-04-25 23:00 ` [PATCH v2 2/3] ARM: dts: imx: Switch Ronetix iMX8MQ-CM to imx8mq-u-boot.dtsi Marek Vasut
2024-04-25 23:00 ` [PATCH v2 3/3] ARM: dts: imx: Convert i.MX8M flash.bin image generation to binman Marek Vasut
2024-04-29 10:38 ` [PATCH v2 1/3] binman: Add nxp_imx8mimage etype Fabio Estevam

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.