arm-trusted-firmware: add option to enable/disable building FIP image
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Sun, 3 Dec 2017 21:48:04 +0000 (22:48 +0100)
committerPeter Korsgaard <peter@korsgaard.com>
Fri, 8 Dec 2017 11:14:42 +0000 (12:14 +0100)
Currently, our arm-trusted-firmware unconditionally builds a FIP
(Firmware Image Package). While this is often needed on platforms
where ATF encapsulates U-Boot, it is not the case on some other
platforms where it's U-Boot that encapsulates parts of ATF.

In order to prepare the support for the later platforms, we make
building the FIP image optional, and update the only defconfig we have
that uses ARM Trusted Firmware.

Note: we considered adding a "default y" here to preserve backward
compatibility, but there really isn't any default that is sane:
whether a FIP image needs to be built or not is purely platform
specific.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Reviewed-by: Sergey Matyukevich <geomatsi@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
boot/arm-trusted-firmware/Config.in
boot/arm-trusted-firmware/arm-trusted-firmware.mk
configs/arm_juno_defconfig

index 799370cd512bdbd20efd61447a4100493c5592ea..05600461a598c985af26f47382eff4c999eae62e 100644 (file)
@@ -56,6 +56,14 @@ config BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM
        help
          Target plaform to build for.
 
+config BR2_TARGET_ARM_TRUSTED_FIRMWARE_FIP
+       bool "Build FIP image"
+       help
+         This option enables building the FIP image (Firmware Image
+         Package). This is typically the image format used by
+         platforms were ATF encapsulates the second stage bootloader
+         (such as U-Boot).
+
 config BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES
        string "Additional ATF build variables"
        help
index 7b1cc6ebb6711babd2f8c01a67363c1978b0725e..bdffb1dbe4c6f791c4d817c829835d4fb4cc28aa 100644 (file)
@@ -39,10 +39,16 @@ ARM_TRUSTED_FIRMWARE_MAKE_OPTS += SCP_BL2=$(BINARIES_DIR)/scp-fw.bin
 ARM_TRUSTED_FIRMWARE_DEPENDENCIES += vexpress-firmware
 endif
 
+ARM_TRUSTED_FIRMWARE_MAKE_TARGETS = all
+
+ifeq ($(BR2_TARGET_ARM_TRUSTED_FIRMWARE_FIP),y)
+ARM_TRUSTED_FIRMWARE_MAKE_TARGETS += fip
+endif
+
 define ARM_TRUSTED_FIRMWARE_BUILD_CMDS
        $(TARGET_CONFIGURE_OPTS) \
                $(MAKE) -C $(@D) $(ARM_TRUSTED_FIRMWARE_MAKE_OPTS) \
-                       all fip
+                       $(ARM_TRUSTED_FIRMWARE_MAKE_TARGETS)
 endef
 
 define ARM_TRUSTED_FIRMWARE_INSTALL_IMAGES_CMDS
index 811524ffba4f40ebda03c7951acd36de3d24001c..1fb5587488e47c2bd7769de4a95be8dca9295c43 100644 (file)
@@ -14,6 +14,7 @@ BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT=y
 BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL="https://github.com/ARM-software/arm-trusted-firmware.git"
 BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION="v1.2"
 BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="juno"
+BR2_TARGET_ARM_TRUSTED_FIRMWARE_FIP=y
 BR2_TARGET_UBOOT=y
 BR2_TARGET_UBOOT_BOARDNAME="vexpress_aemv8a_juno"
 BR2_TARGET_UBOOT_CUSTOM_VERSION=y