Re: [PATCH 3/3] ARM: dts: imx: Convert i.MX8M flash.bin image generation to binman

Adam Ford
2024-11-07T01:56:15Z

On Tue, Apr 23, 2024 at 1:33 PM Marek Vasut <marex@denx.de> wrote:
>
> 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.
>
> Signed-off-by: Marek Vasut <marex@denx.de>
> ---

This introduced a regression on the 8M Nano with
CONFIG_FSPI_CONF_HEADER set. As is, the board doesn't appear to do
anything.

Looking at the binary blob that is generated, the offset for the SPL
phase is missing, so SPL starts at 0x5c0 instead of 0x1000, but adding
offset = <0x1000> isn't sufficient.

Adding the offset = <0x1000> starts the SPL phase, but it hangs right
away and doesn't past the version message:
U-Boot SPL 2024.07-rc1-00155-g37e50627ef-dirty (Nov 06 2024 - 19:16:52 -0600)

<hangs here>

I have only tested this on a Nano, but I think the issue would likely
affect Plus since their boot ROM is similar. I currently don't have a
Mini in my possession right now, so I cannot verify the behavior on
it.

From what I can tell, reverting this patch appears to restore boot
operation. I don't know enough about the mkimage tool, but I have
tried changing nxp,boot-from and that doesn't seem to fix it either.

When I diff the binaries, it looks like a fairly significant about of
the values have changed, but the various magic numbers and offets
appear correct. This makes me wonder if setting the offsets being
passed to mkimage are getting in the way.

If remove the references to CONFIG_FSPI_CONF_HEADER in the device
tree, a regular image is built. I then use dd to create a new file
which has the FSPI header at 0x400, and moves the beginning of the
rest of the image to 0x1000. This process boots the board just fine.
This leads me to believe that something in the imx8 mkimage tool is
doing something different when fspi is enabled.

U-Boot SPL 2024.07-rc1-00155-g37e50627ef-dirty (Nov 06 2024 - 19:43:47 -0600)
WDT: Started watchdog@30280000 with servicing every 1000ms (60s timeout)
Trying to boot from BOOTROM
Boot Stage: Primary boot
image offset 0x1000, pagesize 0x1, ivt offset 0x0
NOTICE: Do not release JR0 to NS as it can be used by HAB
NOTICE: BL31: lts-v2.8.10(release):lts-v2.8.10-327-g0d8623944
NOTICE: BL31: Built : 21:43:36, Nov 13 2023

U-Boot 2024.07-rc1-00155-g37e50627ef-dirty (Nov 06 2024 - 19:43:47 -0600)

CPU: Freescale i.MX8MNano Solo rev1.0 at 1200 MHz
Reset cause: POR
Model: Beacon EmbeddedWorks i.MX8M Nano Development Kit
DRAM: 1 GiB
Core: 110 devices, 26 uclasses, devicetree: separate
WDT: Started watchdog@30280000 with servicing every 1000ms (60s timeout)
MMC: FSL_SDHC: 0, FSL_SDHC: 1, FSL_SDHC: 2
Loading Environment from nowhere... OK
In: serial@30890000
Out: serial@30890000
Err: serial@30890000
SEC0: RNG instantiated
Net:
Warning: ethernet@30be0000 (eth0) using random MAC address - de:2b:92:7d:8d:fe
eth0: ethernet@30be0000
Hit any key to stop autoboot: 0
u-boot=>

I'd like to rework the binman to build a standard flash.bin without
the Flexspi stuff, then create a second file like fspi.bin (or
something similar) which inserts the FSPI header at 0x400 and then
just places the entirely of flash.bin contents placed at 0x1000 in a
way that doesn't pass these offsets to imx8 mkimage tool.

Any ideas how to do this? I am not all that familiar with binman. A
similar question was asked before on another thread too.

adam

adam

> 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
> ---
> 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
>