diff mbox series

[v12,05/16] boot/uboot: add BR2_TARGET_UBOOT_USE_BINMAN option

Message ID 20240407103512.1112712-6-romain.naour@smile.fr
State Accepted
Headers show
Series Add support for AM62x-SK HS-FS devices | expand

Commit Message

Romain Naour April 7, 2024, 10:34 a.m. UTC
From: Dario Binacchi <dario.binacchi@amarulasolutions.com>

Recent version of U-Boot use binman to provide a mechanism for building
images, from simple SPL + U-Boot combinations, to more complex
arrangements with many parts.

This tool uses additional host python modules that must be provided by
Buildroot. So introduce a new option BR2_TARGET_UBOOT_USE_BINMAN to
add additional host packages in U-Boot build dependency to use binman.

The binman requirement is directly included in buildman dependency
(tools/buildman/requirements.txt) since within U-Boot, binman is
invoked by the build system, here buildman [1].

[1] https://docs.u-boot.org/en/v2024.01/develop/package/binman.html#invoking-binman-within-u-boot

Co-developed-by: Romain Naour <romain.naour@smile.fr>
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
Signed-off-by: Romain Naour <romain.naour@smile.fr>
---
Changes in v12:
- remove BR2_PACKAGE_TI_K3 part since this option has been removed from this series
- remove TI K3 specific part from the commit log

Changes in v11:
- Add ti-k3-boot-firmware depedendency when both BR2_TARGET_UBOOT_USE_BINMAN
  and BR2_PACKAGE_TI_K3 are set
- drop BR2_TARGET_UBOOT_NEEDS_TI_K3_DM related changes

Changes in v7:
- Replace ifneq ($(BR2_TARGET_UBOOT_USE_BINMAN),y) with
  ifeq ($(BR2_TARGET_UBOOT_USE_BINMAN),).
- Update the commit message

Changes in v6:
- BR2_TARGET_UBOOT_USE_BINMAN
- Binman tool is not specific to TI K3 platform, so add an option to specify
  the use of Binman in U-Boot.
- Add runtime dependencies
- Update commit message
- Add SOB and COB tags of Romain Naour

Changes in v5:
- Drop "DM=$(BINARIES_DIR)/ti-dm/$(UBOOT_TI_K3_DM_SOCNAME)/ipc_echo_testb_mcu1_0_release_strip.xer5f"
  from UBOOT_MAKE_OPTS.

no changes since v1:
---
 boot/uboot/Config.in | 11 +++++++++++
 boot/uboot/uboot.mk  |  8 ++++++++
 2 files changed, 19 insertions(+)

Comments

James Hilliard April 8, 2024, 4:11 p.m. UTC | #1
On Sun, Apr 7, 2024 at 4:35 AM Romain Naour <romain.naour@smile.fr> wrote:
>
> From: Dario Binacchi <dario.binacchi@amarulasolutions.com>
>
> Recent version of U-Boot use binman to provide a mechanism for building
> images, from simple SPL + U-Boot combinations, to more complex
> arrangements with many parts.
>
> This tool uses additional host python modules that must be provided by
> Buildroot. So introduce a new option BR2_TARGET_UBOOT_USE_BINMAN to
> add additional host packages in U-Boot build dependency to use binman.
>
> The binman requirement is directly included in buildman dependency
> (tools/buildman/requirements.txt) since within U-Boot, binman is
> invoked by the build system, here buildman [1].
>
> [1] https://docs.u-boot.org/en/v2024.01/develop/package/binman.html#invoking-binman-within-u-boot
>
> Co-developed-by: Romain Naour <romain.naour@smile.fr>
> Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
> Signed-off-by: Romain Naour <romain.naour@smile.fr>
> ---
> Changes in v12:
> - remove BR2_PACKAGE_TI_K3 part since this option has been removed from this series
> - remove TI K3 specific part from the commit log
>
> Changes in v11:
> - Add ti-k3-boot-firmware depedendency when both BR2_TARGET_UBOOT_USE_BINMAN
>   and BR2_PACKAGE_TI_K3 are set
> - drop BR2_TARGET_UBOOT_NEEDS_TI_K3_DM related changes
>
> Changes in v7:
> - Replace ifneq ($(BR2_TARGET_UBOOT_USE_BINMAN),y) with
>   ifeq ($(BR2_TARGET_UBOOT_USE_BINMAN),).
> - Update the commit message
>
> Changes in v6:
> - BR2_TARGET_UBOOT_USE_BINMAN
> - Binman tool is not specific to TI K3 platform, so add an option to specify
>   the use of Binman in U-Boot.
> - Add runtime dependencies
> - Update commit message
> - Add SOB and COB tags of Romain Naour
>
> Changes in v5:
> - Drop "DM=$(BINARIES_DIR)/ti-dm/$(UBOOT_TI_K3_DM_SOCNAME)/ipc_echo_testb_mcu1_0_release_strip.xer5f"
>   from UBOOT_MAKE_OPTS.
>
> no changes since v1:
> ---
>  boot/uboot/Config.in | 11 +++++++++++
>  boot/uboot/uboot.mk  |  8 ++++++++
>  2 files changed, 19 insertions(+)
>
> diff --git a/boot/uboot/Config.in b/boot/uboot/Config.in
> index e310c09217..39e49d681b 100644
> --- a/boot/uboot/Config.in
> +++ b/boot/uboot/Config.in
> @@ -295,6 +295,17 @@ config BR2_TARGET_UBOOT_NEEDS_ROCKCHIP_RKBIN
>           This option makes sure that the needed binary blobs are copied
>           into the U-Boot source directory.
>
> +config BR2_TARGET_UBOOT_USE_BINMAN
> +       bool "U-Boot use binman"
> +       depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS # python-rpds-py -> python-jsonschema

This comment doesn't look right, what is selecting python-rpds-py and
python-jsonschema?

> +       select BR2_TARGET_UBOOT_NEEDS_PYTHON3
> +       select BR2_TARGET_UBOOT_NEEDS_PYELFTOOLS
> +       select BR2_TARGET_UBOOT_NEEDS_PYLIBFDT
> +       help
> +         Use binman tool for generation and signing of boot images.
> +
> +         https://docs.u-boot.org/en/v2024.01/develop/package/binman.html
> +
>  menu "U-Boot binary format"
>
>  config BR2_TARGET_UBOOT_FORMAT_AIS
> diff --git a/boot/uboot/uboot.mk b/boot/uboot/uboot.mk
> index 47fb419e92..398485195e 100644
> --- a/boot/uboot/uboot.mk
> +++ b/boot/uboot/uboot.mk
> @@ -279,6 +279,14 @@ ifeq ($(BR2_TARGET_UBOOT_NEEDS_XXD),y)
>  UBOOT_DEPENDENCIES += host-vim
>  endif
>
> +ifeq ($(BR2_TARGET_UBOOT_USE_BINMAN),y)
> +# https://source.denx.de/u-boot/u-boot/-/blob/v2024.01/tools/buildman/requirements.txt
> +UBOOT_DEPENDENCIES += \
> +       host-python-jsonschema \
> +       host-python-pyyaml
> +UBOOT_MAKE_OPTS += BINMAN_INDIRS=$(BINARIES_DIR)
> +endif
> +
>  # prior to u-boot 2013.10 the license info was in COPYING. Copy it so
>  # legal-info finds it
>  define UBOOT_COPY_OLD_LICENSE_FILE
> --
> 2.44.0
>
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
Romain Naour April 9, 2024, 11:58 a.m. UTC | #2
Hello James,

Le 08/04/2024 à 18:11, James Hilliard a écrit :
> On Sun, Apr 7, 2024 at 4:35 AM Romain Naour <romain.naour@smile.fr> wrote:
>>
>> From: Dario Binacchi <dario.binacchi@amarulasolutions.com>
>>
>> Recent version of U-Boot use binman to provide a mechanism for building
>> images, from simple SPL + U-Boot combinations, to more complex
>> arrangements with many parts.
>>
>> This tool uses additional host python modules that must be provided by
>> Buildroot. So introduce a new option BR2_TARGET_UBOOT_USE_BINMAN to
>> add additional host packages in U-Boot build dependency to use binman.
>>
>> The binman requirement is directly included in buildman dependency
>> (tools/buildman/requirements.txt) since within U-Boot, binman is
>> invoked by the build system, here buildman [1].
>>
>> [1] https://docs.u-boot.org/en/v2024.01/develop/package/binman.html#invoking-binman-within-u-boot
>>
>> Co-developed-by: Romain Naour <romain.naour@smile.fr>
>> Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
>> Signed-off-by: Romain Naour <romain.naour@smile.fr>
>> ---
>> Changes in v12:
>> - remove BR2_PACKAGE_TI_K3 part since this option has been removed from this series
>> - remove TI K3 specific part from the commit log
>>
>> Changes in v11:
>> - Add ti-k3-boot-firmware depedendency when both BR2_TARGET_UBOOT_USE_BINMAN
>>   and BR2_PACKAGE_TI_K3 are set
>> - drop BR2_TARGET_UBOOT_NEEDS_TI_K3_DM related changes
>>
>> Changes in v7:
>> - Replace ifneq ($(BR2_TARGET_UBOOT_USE_BINMAN),y) with
>>   ifeq ($(BR2_TARGET_UBOOT_USE_BINMAN),).
>> - Update the commit message
>>
>> Changes in v6:
>> - BR2_TARGET_UBOOT_USE_BINMAN
>> - Binman tool is not specific to TI K3 platform, so add an option to specify
>>   the use of Binman in U-Boot.
>> - Add runtime dependencies
>> - Update commit message
>> - Add SOB and COB tags of Romain Naour
>>
>> Changes in v5:
>> - Drop "DM=$(BINARIES_DIR)/ti-dm/$(UBOOT_TI_K3_DM_SOCNAME)/ipc_echo_testb_mcu1_0_release_strip.xer5f"
>>   from UBOOT_MAKE_OPTS.
>>
>> no changes since v1:
>> ---
>>  boot/uboot/Config.in | 11 +++++++++++
>>  boot/uboot/uboot.mk  |  8 ++++++++
>>  2 files changed, 19 insertions(+)
>>
>> diff --git a/boot/uboot/Config.in b/boot/uboot/Config.in
>> index e310c09217..39e49d681b 100644
>> --- a/boot/uboot/Config.in
>> +++ b/boot/uboot/Config.in
>> @@ -295,6 +295,17 @@ config BR2_TARGET_UBOOT_NEEDS_ROCKCHIP_RKBIN
>>           This option makes sure that the needed binary blobs are copied
>>           into the U-Boot source directory.
>>
>> +config BR2_TARGET_UBOOT_USE_BINMAN
>> +       bool "U-Boot use binman"
>> +       depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS # python-rpds-py -> python-jsonschema
> 
> This comment doesn't look right, what is selecting python-rpds-py and
> python-jsonschema?

You're right, only host-python-jsonschema is required so this depency is not needed.

Best regards,
Romain


> 
>> +       select BR2_TARGET_UBOOT_NEEDS_PYTHON3
>> +       select BR2_TARGET_UBOOT_NEEDS_PYELFTOOLS
>> +       select BR2_TARGET_UBOOT_NEEDS_PYLIBFDT
>> +       help
>> +         Use binman tool for generation and signing of boot images.
>> +
>> +         https://docs.u-boot.org/en/v2024.01/develop/package/binman.html
>> +
>>  menu "U-Boot binary format"
>>
>>  config BR2_TARGET_UBOOT_FORMAT_AIS
>> diff --git a/boot/uboot/uboot.mk b/boot/uboot/uboot.mk
>> index 47fb419e92..398485195e 100644
>> --- a/boot/uboot/uboot.mk
>> +++ b/boot/uboot/uboot.mk
>> @@ -279,6 +279,14 @@ ifeq ($(BR2_TARGET_UBOOT_NEEDS_XXD),y)
>>  UBOOT_DEPENDENCIES += host-vim
>>  endif
>>
>> +ifeq ($(BR2_TARGET_UBOOT_USE_BINMAN),y)
>> +# https://source.denx.de/u-boot/u-boot/-/blob/v2024.01/tools/buildman/requirements.txt
>> +UBOOT_DEPENDENCIES += \
>> +       host-python-jsonschema \
>> +       host-python-pyyaml
>> +UBOOT_MAKE_OPTS += BINMAN_INDIRS=$(BINARIES_DIR)
>> +endif
>> +
>>  # prior to u-boot 2013.10 the license info was in COPYING. Copy it so
>>  # legal-info finds it
>>  define UBOOT_COPY_OLD_LICENSE_FILE
>> --
>> 2.44.0
>>
>> _______________________________________________
>> buildroot mailing list
>> buildroot@buildroot.org
>> https://lists.buildroot.org/mailman/listinfo/buildroot
diff mbox series

Patch

diff --git a/boot/uboot/Config.in b/boot/uboot/Config.in
index e310c09217..39e49d681b 100644
--- a/boot/uboot/Config.in
+++ b/boot/uboot/Config.in
@@ -295,6 +295,17 @@  config BR2_TARGET_UBOOT_NEEDS_ROCKCHIP_RKBIN
 	  This option makes sure that the needed binary blobs are copied
 	  into the U-Boot source directory.
 
+config BR2_TARGET_UBOOT_USE_BINMAN
+	bool "U-Boot use binman"
+	depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS # python-rpds-py -> python-jsonschema
+	select BR2_TARGET_UBOOT_NEEDS_PYTHON3
+	select BR2_TARGET_UBOOT_NEEDS_PYELFTOOLS
+	select BR2_TARGET_UBOOT_NEEDS_PYLIBFDT
+	help
+	  Use binman tool for generation and signing of boot images.
+
+	  https://docs.u-boot.org/en/v2024.01/develop/package/binman.html
+
 menu "U-Boot binary format"
 
 config BR2_TARGET_UBOOT_FORMAT_AIS
diff --git a/boot/uboot/uboot.mk b/boot/uboot/uboot.mk
index 47fb419e92..398485195e 100644
--- a/boot/uboot/uboot.mk
+++ b/boot/uboot/uboot.mk
@@ -279,6 +279,14 @@  ifeq ($(BR2_TARGET_UBOOT_NEEDS_XXD),y)
 UBOOT_DEPENDENCIES += host-vim
 endif
 
+ifeq ($(BR2_TARGET_UBOOT_USE_BINMAN),y)
+# https://source.denx.de/u-boot/u-boot/-/blob/v2024.01/tools/buildman/requirements.txt
+UBOOT_DEPENDENCIES += \
+	host-python-jsonschema \
+	host-python-pyyaml
+UBOOT_MAKE_OPTS += BINMAN_INDIRS=$(BINARIES_DIR)
+endif
+
 # prior to u-boot 2013.10 the license info was in COPYING. Copy it so
 # legal-info finds it
 define UBOOT_COPY_OLD_LICENSE_FILE