diff mbox series

boot/arm-trusted-firmware: add optional host-dtc dependency

Message ID 20200318205005.79605-1-thomas.petazzoni@bootlin.com
State Accepted
Headers show
Series boot/arm-trusted-firmware: add optional host-dtc dependency | expand

Commit Message

Thomas Petazzoni March 18, 2020, 8:50 p.m. UTC
Some ATF configurations, such as the ones for the STM32MP1 processor
family, require DTC during the build as Device Tree files are
used. Without dtc, the build fails:

/bin/sh: 1: dtc: not found
dtc version too old (), you need at least version 1.4.4
plat/st/stm32mp1/platform.mk:239: recipe for target 'check_dtc_version' failed
make[1]: *** [check_dtc_version] Error 1

To solve this, this commit implements a
BR2_TARGET_ARM_TRUSTED_FIRMWARE_NEEDS_DTC option, in a way that mimics
the BR2_TARGET_UBOOT_NEEDS_DTC option we already have for the U-Boot
package.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
---
 boot/arm-trusted-firmware/Config.in               | 7 +++++++
 boot/arm-trusted-firmware/arm-trusted-firmware.mk | 4 ++++
 2 files changed, 11 insertions(+)

Comments

Yann E. MORIN March 18, 2020, 9:34 p.m. UTC | #1
Thomas, All,

On 2020-03-18 21:50 +0100, Thomas Petazzoni spake thusly:
> Some ATF configurations, such as the ones for the STM32MP1 processor
> family, require DTC during the build as Device Tree files are
> used. Without dtc, the build fails:
> 
> /bin/sh: 1: dtc: not found
> dtc version too old (), you need at least version 1.4.4
> plat/st/stm32mp1/platform.mk:239: recipe for target 'check_dtc_version' failed
> make[1]: *** [check_dtc_version] Error 1
> 
> To solve this, this commit implements a
> BR2_TARGET_ARM_TRUSTED_FIRMWARE_NEEDS_DTC option, in a way that mimics
> the BR2_TARGET_UBOOT_NEEDS_DTC option we already have for the U-Boot
> package.
> 
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>

Applied to master, thanks.

As discused on IRC, if this trend continues, we could/should switch to
depending on the host package if it is enabled, rather than add yet more
such _NEEDS_STUFF options...

Regards,
Yann E. MORIN.

> ---
>  boot/arm-trusted-firmware/Config.in               | 7 +++++++
>  boot/arm-trusted-firmware/arm-trusted-firmware.mk | 4 ++++
>  2 files changed, 11 insertions(+)
> 
> diff --git a/boot/arm-trusted-firmware/Config.in b/boot/arm-trusted-firmware/Config.in
> index 373591d497..737dc587e5 100644
> --- a/boot/arm-trusted-firmware/Config.in
> +++ b/boot/arm-trusted-firmware/Config.in
> @@ -160,4 +160,11 @@ config BR2_TARGET_ARM_TRUSTED_FIRMWARE_IMAGES
>  	  Names of generated image files that are installed in the
>  	  output images/ directory.
>  
> +config BR2_TARGET_ARM_TRUSTED_FIRMWARE_NEEDS_DTC
> +	bool "Needs dtc"
> +	select BR2_PACKAGE_HOST_DTC
> +	help
> +	  Select this option if your ATF board configuration
> +	  requires the Device Tree compiler to be available.
> +
>  endif
> diff --git a/boot/arm-trusted-firmware/arm-trusted-firmware.mk b/boot/arm-trusted-firmware/arm-trusted-firmware.mk
> index 34737018aa..27f63a87fe 100644
> --- a/boot/arm-trusted-firmware/arm-trusted-firmware.mk
> +++ b/boot/arm-trusted-firmware/arm-trusted-firmware.mk
> @@ -29,6 +29,10 @@ endif
>  
>  ARM_TRUSTED_FIRMWARE_INSTALL_IMAGES = YES
>  
> +ifeq ($(BR2_TARGET_ARM_TRUSTED_FIRMWARE_NEEDS_DTC),y)
> +ARM_TRUSTED_FIRMWARE_DEPENDENCIES += host-dtc
> +endif
> +
>  ARM_TRUSTED_FIRMWARE_PLATFORM = $(call qstrip,$(BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM))
>  
>  ifeq ($(BR2_TARGET_ARM_TRUSTED_FIRMWARE_DEBUG),y)
> -- 
> 2.25.1
> 
> _______________________________________________
> buildroot mailing list
> buildroot@busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
Peter Korsgaard March 27, 2020, 10:05 p.m. UTC | #2
>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@bootlin.com> writes:

 > Some ATF configurations, such as the ones for the STM32MP1 processor
 > family, require DTC during the build as Device Tree files are
 > used. Without dtc, the build fails:

 > /bin/sh: 1: dtc: not found
 > dtc version too old (), you need at least version 1.4.4
 > plat/st/stm32mp1/platform.mk:239: recipe for target 'check_dtc_version' failed
 > make[1]: *** [check_dtc_version] Error 1

 > To solve this, this commit implements a
 > BR2_TARGET_ARM_TRUSTED_FIRMWARE_NEEDS_DTC option, in a way that mimics
 > the BR2_TARGET_UBOOT_NEEDS_DTC option we already have for the U-Boot
 > package.

 > Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>

It isn't really technically a bugfix, but it seems quite low risk and
useful for the affected people, so committed to 2020.02.x, thanks.
diff mbox series

Patch

diff --git a/boot/arm-trusted-firmware/Config.in b/boot/arm-trusted-firmware/Config.in
index 373591d497..737dc587e5 100644
--- a/boot/arm-trusted-firmware/Config.in
+++ b/boot/arm-trusted-firmware/Config.in
@@ -160,4 +160,11 @@  config BR2_TARGET_ARM_TRUSTED_FIRMWARE_IMAGES
 	  Names of generated image files that are installed in the
 	  output images/ directory.
 
+config BR2_TARGET_ARM_TRUSTED_FIRMWARE_NEEDS_DTC
+	bool "Needs dtc"
+	select BR2_PACKAGE_HOST_DTC
+	help
+	  Select this option if your ATF board configuration
+	  requires the Device Tree compiler to be available.
+
 endif
diff --git a/boot/arm-trusted-firmware/arm-trusted-firmware.mk b/boot/arm-trusted-firmware/arm-trusted-firmware.mk
index 34737018aa..27f63a87fe 100644
--- a/boot/arm-trusted-firmware/arm-trusted-firmware.mk
+++ b/boot/arm-trusted-firmware/arm-trusted-firmware.mk
@@ -29,6 +29,10 @@  endif
 
 ARM_TRUSTED_FIRMWARE_INSTALL_IMAGES = YES
 
+ifeq ($(BR2_TARGET_ARM_TRUSTED_FIRMWARE_NEEDS_DTC),y)
+ARM_TRUSTED_FIRMWARE_DEPENDENCIES += host-dtc
+endif
+
 ARM_TRUSTED_FIRMWARE_PLATFORM = $(call qstrip,$(BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM))
 
 ifeq ($(BR2_TARGET_ARM_TRUSTED_FIRMWARE_DEBUG),y)