diff mbox series

[v4,4/8] boot/uboot/imx8: Add new target needed for mainline u-boot

Message ID 20201125183017.15585-5-xroumegue@gmail.com
State New
Headers show
Series [v3,1/8] package/freescale-imx/firmware-imx: Add option to install all ddr fw files | expand

Commit Message

Xavier Roumegue Nov. 25, 2020, 6:30 p.m. UTC
Mainline u-boot support for the iMX8M based boards is no longer
using the external imx-mkimage command and instead building
the fit image directly inside U-Boot.

This fit image usually embeds ddr/hdmi firmware for iMX8M target.

Inspired from
https://github.com/SolidRun/buildroot/commit/0f2b2971e836b508bf9c2dac34426a59a9d83572

Signed-off-by: Xavier Roumegue <xroumegue@gmail.com>
---
 boot/uboot/Config.in | 5 +++++
 boot/uboot/uboot.mk  | 6 ++++++
 2 files changed, 11 insertions(+)

Comments

Heiko Thiery Dec. 14, 2020, 10:27 p.m. UTC | #1
Hi Xavier,

Am Mi., 25. Nov. 2020 um 19:31 Uhr schrieb Xavier Roumegue
<xroumegue@gmail.com>:
>
> Mainline u-boot support for the iMX8M based boards is no longer
> using the external imx-mkimage command and instead building
> the fit image directly inside U-Boot.
>
> This fit image usually embeds ddr/hdmi firmware for iMX8M target.
>
> Inspired from
> https://github.com/SolidRun/buildroot/commit/0f2b2971e836b508bf9c2dac34426a59a9d83572
>
> Signed-off-by: Xavier Roumegue <xroumegue@gmail.com>

Tested-by: Heiko Thiery <heiko.thiery@gmail.com>

> ---
>  boot/uboot/Config.in | 5 +++++
>  boot/uboot/uboot.mk  | 6 ++++++
>  2 files changed, 11 insertions(+)
>
> diff --git a/boot/uboot/Config.in b/boot/uboot/Config.in
> index f2faff826b..2e1d836cf8 100644
> --- a/boot/uboot/Config.in
> +++ b/boot/uboot/Config.in
> @@ -281,6 +281,11 @@ config BR2_TARGET_UBOOT_FORMAT_DTB_IMX
>  config BR2_TARGET_UBOOT_FORMAT_ITB
>         bool "u-boot.itb"
>
> +config BR2_TARGET_UBOOT_FORMAT_IMX_FIT
> +       bool "flash.bin"
> +       select BR2_PACKAGE_FIRMWARE_IMX
> +       select BR2_TARGET_UBOOT_NEEDS_FW
> +
>  config BR2_TARGET_UBOOT_FORMAT_KWB
>         bool "u-boot.kwb (Marvell)"
>         depends on BR2_arm
> diff --git a/boot/uboot/uboot.mk b/boot/uboot/uboot.mk
> index 44fefe2843..30a073a200 100644
> --- a/boot/uboot/uboot.mk
> +++ b/boot/uboot/uboot.mk
> @@ -101,6 +101,12 @@ UBOOT_BINS += u-boot.imx
>  UBOOT_MAKE_TARGET += u-boot.imx
>  endif
>
> +ifeq ($(BR2_TARGET_UBOOT_FORMAT_IMX_FIT),y)
> +UBOOT_BINS = flash.bin
> +UBOOT_MAKE_TARGET += flash.bin
> +UBOOT_DEPENDENCIES += firmware-imx
> +endif
> +
>  ifeq ($(BR2_TARGET_UBOOT_FORMAT_SB),y)
>  UBOOT_BINS += u-boot.sb
>  UBOOT_MAKE_TARGET += u-boot.sb
Gary Bisson Dec. 23, 2020, 2:42 p.m. UTC | #2
Hi Xavier,

On Wed, Nov 25, 2020 at 07:30:13PM +0100, Xavier Roumegue wrote:
> Mainline u-boot support for the iMX8M based boards is no longer
> using the external imx-mkimage command and instead building
> the fit image directly inside U-Boot.
> 
> This fit image usually embeds ddr/hdmi firmware for iMX8M target.
> 
> Inspired from
> https://github.com/SolidRun/buildroot/commit/0f2b2971e836b508bf9c2dac34426a59a9d83572
> 
> Signed-off-by: Xavier Roumegue <xroumegue@gmail.com>
> Tested-by: Heiko Thiery <heiko.thiery@gmail.com>
> ---
>  boot/uboot/Config.in | 5 +++++
>  boot/uboot/uboot.mk  | 6 ++++++
>  2 files changed, 11 insertions(+)
> 
> diff --git a/boot/uboot/Config.in b/boot/uboot/Config.in
> index f2faff826b..2e1d836cf8 100644
> --- a/boot/uboot/Config.in
> +++ b/boot/uboot/Config.in
> @@ -281,6 +281,11 @@ config BR2_TARGET_UBOOT_FORMAT_DTB_IMX
>  config BR2_TARGET_UBOOT_FORMAT_ITB
>  	bool "u-boot.itb"
>  
> +config BR2_TARGET_UBOOT_FORMAT_IMX_FIT

I know this was copied from SolidRun but I'm not a fan of the IMX_FIT
name. True flash.bin includes a FIT image but SPL/FW etc are outside of
it, it's not just a FIT image.
Maybe NXP will do another boot image format in the future that will also
include a FIT image but the rest would be different.
Since the U-Boot target is simply "flash.bin" I would name it
UBOOT_FORMAT_FLASH_BIN.

> +	bool "flash.bin"
> +	select BR2_PACKAGE_FIRMWARE_IMX

You can't do that unfortunately, you need to either have a test around
that option or add a depends on BR2_PACKAGE_FREESCALE_IMX.

Otherwise it will give this:
WARNING: unmet direct dependencies detected for BR2_PACKAGE_FIRMWARE_IMX
  Depends on [n]: BR2_PACKAGE_FREESCALE_IMX [=n] && (BR2_arm [=y] || BR2_aarch64 [=n])
  Selected by [y]:
  - BR2_TARGET_UBOOT_FORMAT_IMX_FIT [=y] && BR2_TARGET_UBOOT [=y]

Regards,
Gary
diff mbox series

Patch

diff --git a/boot/uboot/Config.in b/boot/uboot/Config.in
index f2faff826b..2e1d836cf8 100644
--- a/boot/uboot/Config.in
+++ b/boot/uboot/Config.in
@@ -281,6 +281,11 @@  config BR2_TARGET_UBOOT_FORMAT_DTB_IMX
 config BR2_TARGET_UBOOT_FORMAT_ITB
 	bool "u-boot.itb"
 
+config BR2_TARGET_UBOOT_FORMAT_IMX_FIT
+	bool "flash.bin"
+	select BR2_PACKAGE_FIRMWARE_IMX
+	select BR2_TARGET_UBOOT_NEEDS_FW
+
 config BR2_TARGET_UBOOT_FORMAT_KWB
 	bool "u-boot.kwb (Marvell)"
 	depends on BR2_arm
diff --git a/boot/uboot/uboot.mk b/boot/uboot/uboot.mk
index 44fefe2843..30a073a200 100644
--- a/boot/uboot/uboot.mk
+++ b/boot/uboot/uboot.mk
@@ -101,6 +101,12 @@  UBOOT_BINS += u-boot.imx
 UBOOT_MAKE_TARGET += u-boot.imx
 endif
 
+ifeq ($(BR2_TARGET_UBOOT_FORMAT_IMX_FIT),y)
+UBOOT_BINS = flash.bin
+UBOOT_MAKE_TARGET += flash.bin
+UBOOT_DEPENDENCIES += firmware-imx
+endif
+
 ifeq ($(BR2_TARGET_UBOOT_FORMAT_SB),y)
 UBOOT_BINS += u-boot.sb
 UBOOT_MAKE_TARGET += u-boot.sb