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

David Reaver me at davidreaver.com
Mon Jul 17 16:48:11 UTC 2023


Dario Binacchi <dario.binacchi at 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 at 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 at davidreaver.com>



More information about the buildroot mailing list