All of lore.kernel.org
 help / color / mirror / Atom feed
From: ZHIZHIKIN Andrey <andrey.zhizhikin@leica-geosystems.com>
To: trini <trini@konsulko.com>,
	"u-boot@lists.denx.de" <u-boot@lists.denx.de>
Cc: "sbabic@denx.de" <sbabic@denx.de>,
	"festevam@gmail.com" <festevam@gmail.com>,
	"uboot-imx@nxp.com" <uboot-imx@nxp.com>,
	"peng.fan@nxp.com" <peng.fan@nxp.com>, "hs@denx.de" <hs@denx.de>,
	"t.remmet@phytec.de" <t.remmet@phytec.de>,
	"jagan@amarulasolutions.com" <jagan@amarulasolutions.com>,
	"marcel.ziswiler@toradex.com" <marcel.ziswiler@toradex.com>,
	"iliev@ronetix.at" <iliev@ronetix.at>,
	"xypron.glpk@gmx.de" <xypron.glpk@gmx.de>
Subject: RE: [PATCH v2] imx8mq_evk: switch board to use binman for images
Date: Sat, 8 Jan 2022 20:18:15 +0000	[thread overview]
Message-ID: <AM6PR06MB469189FA04C93CDBD4469AADA64E9@AM6PR06MB4691.eurprd06.prod.outlook.com> (raw)
In-Reply-To: <20211203161802.12699-1-andrey.zhizhikin@leica-geosystems.com>

Hello Tom,

> -----Original Message-----
> From: U-Boot <u-boot-bounces@lists.denx.de> On Behalf Of Andrey Zhizhikin
> Sent: Friday, December 3, 2021 5:18 PM
> To: u-boot@lists.denx.de
> Cc: sbabic@denx.de; festevam@gmail.com; uboot-imx@nxp.com; peng.fan@nxp.com;
> hs@denx.de; t.remmet@phytec.de; jagan@amarulasolutions.com;
> marcel.ziswiler@toradex.com; iliev@ronetix.at; xypron.glpk@gmx.de; Andrey
> Zhizhikin <andrey.zhizhikin@leica-geosystems.com>
> Subject: [PATCH v2] imx8mq_evk: switch board to use binman for images
> 
> Currently i.MX8MQ EVK board still targeting the old image generation
> approach for image generation, which relies on the FIT generator that
> has been dropped from the tree.
> 
> Switch the board to use binman instead, which is a standard image
> generator now.
> 
> Update board documentation to correct build command, and advise latest
> firmware and TF-A versions to use.
> 
> NOTE: New image produced by binman does not have Signed HDMI FW support,
> this has been left on the side and does not interfere with the general
> boot flow.
> 
> Tested on: [i.MX8MQ rev2.0]
> 
> Signed-off-by: Andrey Zhizhikin <andrey.zhizhikin@leica-geosystems.com>
> ---
> 
> Changes in V2:
> - Modify binman and documentation to use single flash.bin file instead
>   of flash.bin+u-boot.itb combination, suggested by Fabio Estevam.

Since you've applied similar patch from Peng, this one is not needed
anymore and can be dropped.

There are however few pieces that are present in this patch not picked
up in any other patch like doc update, single flash.bin, etc.

I saw that Patrick Wildt had "single flash.bin" part submitted in [1],
which would also be beneficial to have in 2022.01 for consistency, and
would allow me to update imx8mq_evk machine in meta-freescale Yocto
layer so it can be finally built with upstream BSP and 2022.01. If you
can pick it up saw well - that would be ideal!

The rest I will extract and send as separate patches after 2022.01. 

> 
>  arch/arm/dts/imx8mq-evk-u-boot.dtsi           | 124 ++++++++++++++++++
>  arch/arm/mach-imx/imx8m/Kconfig               |   1 +
>  board/freescale/imx8mq_evk/Kconfig            |   2 +-
>  .../imx8mq_evk/imximage-8mq-lpddr4.cfg        |   9 ++
>  configs/imx8mq_evk_defconfig                  |   2 +-
>  doc/board/nxp/imx8mq_evk.rst                  |  21 +--
>  6 files changed, 148 insertions(+), 11 deletions(-)
>  create mode 100644 board/freescale/imx8mq_evk/imximage-8mq-lpddr4.cfg
> 
> diff --git a/arch/arm/dts/imx8mq-evk-u-boot.dtsi b/arch/arm/dts/imx8mq-evk-u-
> boot.dtsi
> index 2cfc12b7e0..e3f780ca75 100644
> --- a/arch/arm/dts/imx8mq-evk-u-boot.dtsi
> +++ b/arch/arm/dts/imx8mq-evk-u-boot.dtsi
> @@ -1,5 +1,129 @@
>  // SPDX-License-Identifier: (GPL-2.0 OR MIT)
> 
> +/ {
> +	binman: binman {
> +		multiple-images;
> +	};
> +};
> +
> +&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>;
> +		};
> +
> +		blob_1: blob-ext@1 {
> +			filename = "lpddr4_pmu_train_1d_imem.bin";
> +			size = <0x8000>;
> +		};
> +
> +		blob_2: blob-ext@2 {
> +			filename = "lpddr4_pmu_train_1d_dmem.bin";
> +			size = <0x4000>;
> +		};
> +
> +		blob_3: blob-ext@3 {
> +			filename = "lpddr4_pmu_train_2d_imem.bin";
> +			size = <0x8000>;
> +		};
> +
> +		blob_4: blob-ext@4 {
> +			filename = "lpddr4_pmu_train_2d_dmem.bin";
> +			size = <0x4000>;
> +		};
> +	};
> +
> +	spl {
> +		filename = "spl.bin";
> +
> +		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_SYS_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";
> +				};
> +			};
> +		};
> +	};
> +
> +	imx-boot {
> +		filename = "flash.bin";
> +		pad-byte = <0x00>;
> +
> +		spl: blob-ext@1 {
> +			offset = <0x0>;
> +			filename = "spl.bin";
> +		};
> +
> +		uboot: blob-ext@2 {
> +			offset = <0x57c00>;
> +			filename = "u-boot.itb";
> +		};
> +	};
> +};
> +
>  &usdhc1 {
>  	mmc-hs400-1_8v;
>  };
> diff --git a/arch/arm/mach-imx/imx8m/Kconfig b/arch/arm/mach-imx/imx8m/Kconfig
> index 276b8bd974..c556e712b7 100644
> --- a/arch/arm/mach-imx/imx8m/Kconfig
> +++ b/arch/arm/mach-imx/imx8m/Kconfig
> @@ -36,6 +36,7 @@ config TARGET_IMX8MQ_CM
> 
>  config TARGET_IMX8MQ_EVK
>  	bool "imx8mq_evk"
> +	select BINMAN
>  	select IMX8MQ
>  	select IMX8M_LPDDR4
> 
> diff --git a/board/freescale/imx8mq_evk/Kconfig
> b/board/freescale/imx8mq_evk/Kconfig
> index c4d20ad7c7..08f937f74f 100644
> --- a/board/freescale/imx8mq_evk/Kconfig
> +++ b/board/freescale/imx8mq_evk/Kconfig
> @@ -10,6 +10,6 @@ config SYS_CONFIG_NAME
>  	default "imx8mq_evk"
> 
>  config IMX_CONFIG
> -	default "arch/arm/mach-imx/imx8m/imximage.cfg"
> +	default "board/freescale/imx8mq_evk/imximage-8mq-lpddr4.cfg"
> 
>  endif
> diff --git a/board/freescale/imx8mq_evk/imximage-8mq-lpddr4.cfg
> b/board/freescale/imx8mq_evk/imximage-8mq-lpddr4.cfg
> new file mode 100644
> index 0000000000..90573be5fd
> --- /dev/null
> +++ b/board/freescale/imx8mq_evk/imximage-8mq-lpddr4.cfg
> @@ -0,0 +1,9 @@
> +/* SPDX-License-Identifier: GPL-2.0+ */
> +/*
> + * Copyright 2021 NXP
> + */
> +
> +#define __ASSEMBLY__
> +
> +BOOT_FROM	sd
> +LOADER		u-boot-spl-ddr.bin	0x7E1000
> diff --git a/configs/imx8mq_evk_defconfig b/configs/imx8mq_evk_defconfig
> index 92aae70d4a..f82ce63281 100644
> --- a/configs/imx8mq_evk_defconfig
> +++ b/configs/imx8mq_evk_defconfig
> @@ -24,7 +24,7 @@ CONFIG_SYS_LOAD_ADDR=0x40480000
>  CONFIG_FIT=y
>  CONFIG_FIT_EXTERNAL_OFFSET=0x3000
>  CONFIG_SPL_LOAD_FIT=y
> -CONFIG_SPL_FIT_GENERATOR="arch/arm/mach-imx/mkimage_fit_atf.sh"
> +# CONFIG_USE_SPL_FIT_GENERATOR is not set
>  CONFIG_BOARD_EARLY_INIT_F=y
>  CONFIG_BOARD_LATE_INIT=y
>  CONFIG_SPL_BOARD_INIT=y
> diff --git a/doc/board/nxp/imx8mq_evk.rst b/doc/board/nxp/imx8mq_evk.rst
> index c269fdebe3..436e82151f 100644
> --- a/doc/board/nxp/imx8mq_evk.rst
> +++ b/doc/board/nxp/imx8mq_evk.rst
> @@ -9,7 +9,7 @@ Quick Start
>  -----------
> 
>  - Build the ARM Trusted firmware binary
> -- Get ddr and hdmi fimware
> +- Obtain DDR firmware from NXP website
>  - Build U-Boot
>  - Boot
> 
> @@ -18,7 +18,8 @@ Get and Build the ARM Trusted firmware
> 
>  Note: srctree is U-Boot source directory
>  Get ATF from: https://source.codeaurora.org/external/imx/imx-atf
> -branch: imx_5.4.47_2.2.0
> +branch: lf_v2.4
> +Tag: lf-5.10.52-2.1.0
> 
>  .. code-block:: bash
> 
> @@ -30,11 +31,10 @@ Get the ddr and hdmi firmware
> 
>  .. code-block:: bash
> 
> -   $ wget https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-imx-8.9.bin
> -   $ chmod +x firmware-imx-8.9.bin
> -   $ ./firmware-imx-8.9.bin
> -   $ cp firmware-imx-8.9/firmware/hdmi/cadence/signed_hdmi_imx8m.bin $(builddir)
> -   $ cp firmware-imx-8.9/firmware/ddr/synopsys/lpddr4*.bin $(builddir)
> +   $ wget https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-imx-8.13.bin
> +   $ chmod +x firmware-imx-8.13.bin
> +   $ ./firmware-imx-8.13.bin
> +   $ cp firmware-imx-8.13/firmware/ddr/synopsys/lpddr4*.bin $(builddir)
> 
>  Build U-Boot
>  ------------
> @@ -43,7 +43,8 @@ Build U-Boot
> 
>     $ export CROSS_COMPILE=aarch64-poky-linux-
>     $ make imx8mq_evk_defconfig
> -   $ make flash.bin
> +   $ export ATF_LOAD_ADDR=0x910000
> +   $ make
> 
>  Burn the flash.bin to MicroSD card offset 33KB:
> 
> @@ -53,4 +54,6 @@ Burn the flash.bin to MicroSD card offset 33KB:
> 
>  Boot
>  ----
> -Set Boot switch SW801: 1100 and Bmode: 10 to boot from Micro SD.
> +Set Boot switches to boot from Micro SD:
> +SW801: 1100
> +SW802: 10
> 
> base-commit: 5b9ee01685290653671072d0030cd7ba9da3a705
> --
> 2.25.1

-- andrey

Link: [1]: https://lore.kernel.org/u-boot/Ydmu+cqnqmTHoT0B@ryzen.fritz.box/


  parent reply	other threads:[~2022-01-08 20:18 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-03 15:29 [PATCH] imx8mq_evk: switch board to use binman for images Andrey Zhizhikin
2021-12-03 15:53 ` Fabio Estevam
2021-12-03 15:59   ` ZHIZHIKIN Andrey
2021-12-03 16:18 ` [PATCH v2] " Andrey Zhizhikin
2021-12-03 16:27   ` Fabio Estevam
2021-12-06 21:05     ` Fabio Estevam
2021-12-06 21:26       ` Tom Rini
2021-12-06 21:38         ` Fabio Estevam
2021-12-06 21:46           ` Tom Rini
2021-12-06 22:41             ` Fabio Estevam
2022-01-08 20:18   ` ZHIZHIKIN Andrey [this message]
2022-01-08 22:11     ` Tom Rini

Reply instructions:

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

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

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

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

  git send-email \
    --in-reply-to=AM6PR06MB469189FA04C93CDBD4469AADA64E9@AM6PR06MB4691.eurprd06.prod.outlook.com \
    --to=andrey.zhizhikin@leica-geosystems.com \
    --cc=festevam@gmail.com \
    --cc=hs@denx.de \
    --cc=iliev@ronetix.at \
    --cc=jagan@amarulasolutions.com \
    --cc=marcel.ziswiler@toradex.com \
    --cc=peng.fan@nxp.com \
    --cc=sbabic@denx.de \
    --cc=t.remmet@phytec.de \
    --cc=trini@konsulko.com \
    --cc=u-boot@lists.denx.de \
    --cc=uboot-imx@nxp.com \
    --cc=xypron.glpk@gmx.de \
    /path/to/YOUR_REPLY

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

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is 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.