diff mbox series

[1/2] boot/u-boot: fix u-boot.stm32 creation on newer version

Message ID 20230703160149.2302949-1-dario.binacchi@amarulasolutions.com
State Accepted
Headers show
Series [1/2] boot/u-boot: fix u-boot.stm32 creation on newer version | expand

Commit Message

Dario Binacchi July 3, 2023, 4:01 p.m. UTC
As reported in commit [1] of the U-Boot project, the config.mk file has
been suppressed in order to use binman to manage FIT generation.

The added configuration option allows the creation of the u-boot.stm32
image for both recent versions of U-Boot, which use binman, and older
versions.

[1] 5564b4cd4d5c69 ("stm32mp: add binman support for STM32MP15x")
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
---
 boot/uboot/Config.in                            | 10 ++++++++++
 boot/uboot/uboot.mk                             |  2 ++
 configs/avenger96_defconfig                     |  1 +
 configs/olimex_stmp157_olinuxino_lime_defconfig |  1 +
 configs/stm32mp157a_dk1_defconfig               |  1 +
 configs/stm32mp157c_dk2_defconfig               |  1 +
 configs/stm32mp157c_odyssey_defconfig           |  1 +
 7 files changed, 17 insertions(+)

Comments

David Reaver July 17, 2023, 4:48 p.m. UTC | #1
Dario Binacchi <dario.binacchi@amarulasolutions.com> writes:

> As reported in commit [1] of the U-Boot project, the config.mk file has
> been suppressed in order to use binman to manage FIT generation.
>
> The added configuration option allows the creation of the u-boot.stm32
> image for both recent versions of U-Boot, which use binman, and older
> versions.
>
> [1] 5564b4cd4d5c69 ("stm32mp: add binman support for STM32MP15x")
> Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
> ---
>  boot/uboot/Config.in                            | 10 ++++++++++
>  boot/uboot/uboot.mk                             |  2 ++
>  configs/avenger96_defconfig                     |  1 +
>  configs/olimex_stmp157_olinuxino_lime_defconfig |  1 +
>  configs/stm32mp157a_dk1_defconfig               |  1 +
>  configs/stm32mp157c_dk2_defconfig               |  1 +
>  configs/stm32mp157c_odyssey_defconfig           |  1 +
>  7 files changed, 17 insertions(+)
>
> diff --git a/boot/uboot/Config.in b/boot/uboot/Config.in
> index 085397d03d0c..ab0aaf2939f9 100644
> --- a/boot/uboot/Config.in
> +++ b/boot/uboot/Config.in
> @@ -395,6 +395,16 @@ config BR2_TARGET_UBOOT_FORMAT_STM32
>  	bool "u-boot.stm32"
>  	depends on BR2_arm
>
> +if BR2_TARGET_UBOOT_FORMAT_STM32
> +config BR2_TARGET_UBOOT_BUILD_FORMAT_STM32_LEGACY
> +	bool "Legacy build (u-boot.stm32 target)"
> +	help
> +	  Select this option if you use U-Boot with version older than
> +	  2022.01), so that we use the old build target. Otherwise,
> +	  binman application is called to create the stm32 binary
> +	  format.
> +endif
> +
>  config BR2_TARGET_UBOOT_FORMAT_CUSTOM
>  	bool "Custom (specify below)"
>  	help
> diff --git a/boot/uboot/uboot.mk b/boot/uboot/uboot.mk
> index 4eae8e95c373..0b4b355a6c34 100644
> --- a/boot/uboot/uboot.mk
> +++ b/boot/uboot/uboot.mk
> @@ -133,8 +133,10 @@ endif
>
>  ifeq ($(BR2_TARGET_UBOOT_FORMAT_STM32),y)
>  UBOOT_BINS += u-boot.stm32
> +ifeq ($(BR2_TARGET_UBOOT_BUILD_FORMAT_STM32_LEGACY),y)
>  UBOOT_MAKE_TARGET += u-boot.stm32
>  endif
> +endif
>
>  ifeq ($(BR2_TARGET_UBOOT_FORMAT_CUSTOM),y)
>  UBOOT_BINS += $(call qstrip,$(BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME))
> diff --git a/configs/avenger96_defconfig b/configs/avenger96_defconfig
> index d2c1b9013ef2..1f8e7a50d1e7 100644
> --- a/configs/avenger96_defconfig
> +++ b/configs/avenger96_defconfig
> @@ -30,5 +30,6 @@ BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2020.07"
>  BR2_TARGET_UBOOT_BOARD_DEFCONFIG="stm32mp15_trusted"
>  # BR2_TARGET_UBOOT_FORMAT_BIN is not set
>  BR2_TARGET_UBOOT_FORMAT_STM32=y
> +BR2_TARGET_UBOOT_BUILD_FORMAT_STM32_LEGACY=y
>  BR2_TARGET_UBOOT_CUSTOM_MAKEOPTS="DEVICE_TREE=stm32mp15xx-dhcor-avenger96"
>  BR2_PACKAGE_HOST_GENIMAGE=y
> diff --git a/configs/olimex_stmp157_olinuxino_lime_defconfig b/configs/olimex_stmp157_olinuxino_lime_defconfig
> index 3b56fefeca1c..44ff706fb2c5 100644
> --- a/configs/olimex_stmp157_olinuxino_lime_defconfig
> +++ b/configs/olimex_stmp157_olinuxino_lime_defconfig
> @@ -41,6 +41,7 @@ BR2_TARGET_UBOOT_BOARD_DEFCONFIG="STM32-OLinuXino-LIME"
>  # BR2_TARGET_UBOOT_FORMAT_BIN is not set
>  BR2_TARGET_UBOOT_FORMAT_IMG=y
>  BR2_TARGET_UBOOT_FORMAT_STM32=y
> +BR2_TARGET_UBOOT_BUILD_FORMAT_STM32_LEGACY=y
>  BR2_TARGET_UBOOT_SPL=y
>  BR2_TARGET_UBOOT_SPL_NAME="spl/u-boot-spl.stm32"
>
> diff --git a/configs/stm32mp157a_dk1_defconfig b/configs/stm32mp157a_dk1_defconfig
> index a487ce989148..3b8fdea993ac 100644
> --- a/configs/stm32mp157a_dk1_defconfig
> +++ b/configs/stm32mp157a_dk1_defconfig
> @@ -40,6 +40,7 @@ BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.10"
>  BR2_TARGET_UBOOT_BOARD_DEFCONFIG="stm32mp15_trusted"
>  # BR2_TARGET_UBOOT_FORMAT_BIN is not set
>  BR2_TARGET_UBOOT_FORMAT_STM32=y
> +BR2_TARGET_UBOOT_BUILD_FORMAT_STM32_LEGACY=y
>  BR2_TARGET_UBOOT_NEEDS_OPENSSL=y
>  BR2_TARGET_UBOOT_CUSTOM_MAKEOPTS="DEVICE_TREE=stm32mp157a-dk1"
>
> diff --git a/configs/stm32mp157c_dk2_defconfig b/configs/stm32mp157c_dk2_defconfig
> index f1f7baaa0806..8b83bfe44353 100644
> --- a/configs/stm32mp157c_dk2_defconfig
> +++ b/configs/stm32mp157c_dk2_defconfig
> @@ -40,6 +40,7 @@ BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.10"
>  BR2_TARGET_UBOOT_BOARD_DEFCONFIG="stm32mp15_trusted"
>  # BR2_TARGET_UBOOT_FORMAT_BIN is not set
>  BR2_TARGET_UBOOT_FORMAT_STM32=y
> +BR2_TARGET_UBOOT_BUILD_FORMAT_STM32_LEGACY=y
>  BR2_TARGET_UBOOT_NEEDS_OPENSSL=y
>  BR2_TARGET_UBOOT_CUSTOM_MAKEOPTS="DEVICE_TREE=stm32mp157c-dk2"
>
> diff --git a/configs/stm32mp157c_odyssey_defconfig b/configs/stm32mp157c_odyssey_defconfig
> index 6b699830b171..15b9a63b3926 100644
> --- a/configs/stm32mp157c_odyssey_defconfig
> +++ b/configs/stm32mp157c_odyssey_defconfig
> @@ -29,6 +29,7 @@ BR2_TARGET_UBOOT_BOARD_DEFCONFIG="stm32mp15_trusted"
>  BR2_TARGET_UBOOT_NEEDS_DTC=y
>  # BR2_TARGET_UBOOT_FORMAT_BIN is not set
>  BR2_TARGET_UBOOT_FORMAT_STM32=y
> +BR2_TARGET_UBOOT_BUILD_FORMAT_STM32_LEGACY=y
>  BR2_TARGET_UBOOT_NEEDS_OPENSSL=y
>  BR2_TARGET_UBOOT_CUSTOM_MAKEOPTS="DEVICE_TREE=stm32mp157c-odyssey"
>  BR2_PACKAGE_HOST_GENIMAGE=y

(Sorry for the folks receiving this email multiple times. My mailing
list settings were incorrect and my replies were bouncing.)

Thanks for this! I was messing with a new STM32MP157D over the weekend,
tried using a newer uboot version, and failed because of this exact
issue.

I applied this series, successfully created an SD card image, booted my
board with it, and it worked great. Here is the uboot version and my
board info from uboot's startup:

    U-Boot 2023.04 (Jan 01 1980 - 00:00:00 +0000)

    CPU: STM32MP157DAC Rev.Z
    Model: STMicroelectronics STM32MP157A-DK1 Discovery Board
    Board: stm32mp1 in trusted - stm32image mode (st,stm32mp157a-dk1)
    Board: MB1272 Var3.0 Rev.C-03

Tested-by: David Reaver <me@davidreaver.com>
Thomas Petazzoni July 26, 2023, 9:08 p.m. UTC | #2
On Mon,  3 Jul 2023 18:01:48 +0200
Dario Binacchi <dario.binacchi@amarulasolutions.com> wrote:

> As reported in commit [1] of the U-Boot project, the config.mk file has
> been suppressed in order to use binman to manage FIT generation.
> 
> The added configuration option allows the creation of the u-boot.stm32
> image for both recent versions of U-Boot, which use binman, and older
> versions.
> 
> [1] 5564b4cd4d5c69 ("stm32mp: add binman support for STM32MP15x")
> Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
> ---
>  boot/uboot/Config.in                            | 10 ++++++++++
>  boot/uboot/uboot.mk                             |  2 ++
>  configs/avenger96_defconfig                     |  1 +
>  configs/olimex_stmp157_olinuxino_lime_defconfig |  1 +
>  configs/stm32mp157a_dk1_defconfig               |  1 +
>  configs/stm32mp157c_dk2_defconfig               |  1 +
>  configs/stm32mp157c_odyssey_defconfig           |  1 +
>  7 files changed, 17 insertions(+)

Applied to master, thanks!

Thomas
diff mbox series

Patch

diff --git a/boot/uboot/Config.in b/boot/uboot/Config.in
index 085397d03d0c..ab0aaf2939f9 100644
--- a/boot/uboot/Config.in
+++ b/boot/uboot/Config.in
@@ -395,6 +395,16 @@  config BR2_TARGET_UBOOT_FORMAT_STM32
 	bool "u-boot.stm32"
 	depends on BR2_arm
 
+if BR2_TARGET_UBOOT_FORMAT_STM32
+config BR2_TARGET_UBOOT_BUILD_FORMAT_STM32_LEGACY
+	bool "Legacy build (u-boot.stm32 target)"
+	help
+	  Select this option if you use U-Boot with version older than
+	  2022.01), so that we use the old build target. Otherwise,
+	  binman application is called to create the stm32 binary
+	  format.
+endif
+
 config BR2_TARGET_UBOOT_FORMAT_CUSTOM
 	bool "Custom (specify below)"
 	help
diff --git a/boot/uboot/uboot.mk b/boot/uboot/uboot.mk
index 4eae8e95c373..0b4b355a6c34 100644
--- a/boot/uboot/uboot.mk
+++ b/boot/uboot/uboot.mk
@@ -133,8 +133,10 @@  endif
 
 ifeq ($(BR2_TARGET_UBOOT_FORMAT_STM32),y)
 UBOOT_BINS += u-boot.stm32
+ifeq ($(BR2_TARGET_UBOOT_BUILD_FORMAT_STM32_LEGACY),y)
 UBOOT_MAKE_TARGET += u-boot.stm32
 endif
+endif
 
 ifeq ($(BR2_TARGET_UBOOT_FORMAT_CUSTOM),y)
 UBOOT_BINS += $(call qstrip,$(BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME))
diff --git a/configs/avenger96_defconfig b/configs/avenger96_defconfig
index d2c1b9013ef2..1f8e7a50d1e7 100644
--- a/configs/avenger96_defconfig
+++ b/configs/avenger96_defconfig
@@ -30,5 +30,6 @@  BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2020.07"
 BR2_TARGET_UBOOT_BOARD_DEFCONFIG="stm32mp15_trusted"
 # BR2_TARGET_UBOOT_FORMAT_BIN is not set
 BR2_TARGET_UBOOT_FORMAT_STM32=y
+BR2_TARGET_UBOOT_BUILD_FORMAT_STM32_LEGACY=y
 BR2_TARGET_UBOOT_CUSTOM_MAKEOPTS="DEVICE_TREE=stm32mp15xx-dhcor-avenger96"
 BR2_PACKAGE_HOST_GENIMAGE=y
diff --git a/configs/olimex_stmp157_olinuxino_lime_defconfig b/configs/olimex_stmp157_olinuxino_lime_defconfig
index 3b56fefeca1c..44ff706fb2c5 100644
--- a/configs/olimex_stmp157_olinuxino_lime_defconfig
+++ b/configs/olimex_stmp157_olinuxino_lime_defconfig
@@ -41,6 +41,7 @@  BR2_TARGET_UBOOT_BOARD_DEFCONFIG="STM32-OLinuXino-LIME"
 # BR2_TARGET_UBOOT_FORMAT_BIN is not set
 BR2_TARGET_UBOOT_FORMAT_IMG=y
 BR2_TARGET_UBOOT_FORMAT_STM32=y
+BR2_TARGET_UBOOT_BUILD_FORMAT_STM32_LEGACY=y
 BR2_TARGET_UBOOT_SPL=y
 BR2_TARGET_UBOOT_SPL_NAME="spl/u-boot-spl.stm32"
 
diff --git a/configs/stm32mp157a_dk1_defconfig b/configs/stm32mp157a_dk1_defconfig
index a487ce989148..3b8fdea993ac 100644
--- a/configs/stm32mp157a_dk1_defconfig
+++ b/configs/stm32mp157a_dk1_defconfig
@@ -40,6 +40,7 @@  BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.10"
 BR2_TARGET_UBOOT_BOARD_DEFCONFIG="stm32mp15_trusted"
 # BR2_TARGET_UBOOT_FORMAT_BIN is not set
 BR2_TARGET_UBOOT_FORMAT_STM32=y
+BR2_TARGET_UBOOT_BUILD_FORMAT_STM32_LEGACY=y
 BR2_TARGET_UBOOT_NEEDS_OPENSSL=y
 BR2_TARGET_UBOOT_CUSTOM_MAKEOPTS="DEVICE_TREE=stm32mp157a-dk1"
 
diff --git a/configs/stm32mp157c_dk2_defconfig b/configs/stm32mp157c_dk2_defconfig
index f1f7baaa0806..8b83bfe44353 100644
--- a/configs/stm32mp157c_dk2_defconfig
+++ b/configs/stm32mp157c_dk2_defconfig
@@ -40,6 +40,7 @@  BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.10"
 BR2_TARGET_UBOOT_BOARD_DEFCONFIG="stm32mp15_trusted"
 # BR2_TARGET_UBOOT_FORMAT_BIN is not set
 BR2_TARGET_UBOOT_FORMAT_STM32=y
+BR2_TARGET_UBOOT_BUILD_FORMAT_STM32_LEGACY=y
 BR2_TARGET_UBOOT_NEEDS_OPENSSL=y
 BR2_TARGET_UBOOT_CUSTOM_MAKEOPTS="DEVICE_TREE=stm32mp157c-dk2"
 
diff --git a/configs/stm32mp157c_odyssey_defconfig b/configs/stm32mp157c_odyssey_defconfig
index 6b699830b171..15b9a63b3926 100644
--- a/configs/stm32mp157c_odyssey_defconfig
+++ b/configs/stm32mp157c_odyssey_defconfig
@@ -29,6 +29,7 @@  BR2_TARGET_UBOOT_BOARD_DEFCONFIG="stm32mp15_trusted"
 BR2_TARGET_UBOOT_NEEDS_DTC=y
 # BR2_TARGET_UBOOT_FORMAT_BIN is not set
 BR2_TARGET_UBOOT_FORMAT_STM32=y
+BR2_TARGET_UBOOT_BUILD_FORMAT_STM32_LEGACY=y
 BR2_TARGET_UBOOT_NEEDS_OPENSSL=y
 BR2_TARGET_UBOOT_CUSTOM_MAKEOPTS="DEVICE_TREE=stm32mp157c-odyssey"
 BR2_PACKAGE_HOST_GENIMAGE=y