boot/uboot: add support for bundling ATF BL31 in ELF format into U-Boot
authorMichał Łyszczek <michal.lyszczek@bofc.pl>
Sun, 11 Nov 2018 21:39:42 +0000 (22:39 +0100)
committerThomas Petazzoni <thomas.petazzoni@bootlin.com>
Wed, 6 Feb 2019 15:51:23 +0000 (16:51 +0100)
Rockchip's rk3328 encapsulates the BL31 part of ATP but it needs
image in ELF format. This is extension to
2c4809e6088660dc71de9de8cee0bba312aafbe4

This commit introduces a BR2_TARGET_UBOOT_NEEDS_ATF_BL31_ELF variable
to achieve this.

Signed-off-by: Michał Łyszczek <michal.lyszczek@bofc.pl>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
boot/arm-trusted-firmware/arm-trusted-firmware.mk
boot/uboot/Config.in
boot/uboot/uboot.mk

index 8c5e55eb4b3fdc76210be4f00b3da470f15e4934..8ca3864dd068fbee084ba51876de73d08e419e8a 100644 (file)
@@ -97,6 +97,13 @@ ARM_TRUSTED_FIRMWARE_MAKE_OPTS += RESET_TO_BL31=1
 ARM_TRUSTED_FIRMWARE_DEPENDENCIES += host-uboot-tools
 endif
 
+ifeq ($(BR2_TARGET_UBOOT_NEEDS_ATF_BL31_ELF),y)
+define ARM_TRUSTED_FIRMWARE_BL31_UBOOT_INSTALL_ELF
+       $(INSTALL) -D -m 0644 $(ARM_TRUSTED_FIRMWARE_IMG_DIR)/bl31/bl31.elf \
+               $(BINARIES_DIR)/bl31.elf
+endef
+endif
+
 define ARM_TRUSTED_FIRMWARE_BUILD_CMDS
        $(ARM_TRUSTED_FIRMWARE_BUILD_FIPTOOL)
        $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) $(ARM_TRUSTED_FIRMWARE_MAKE_OPTS) \
@@ -107,6 +114,7 @@ endef
 define ARM_TRUSTED_FIRMWARE_INSTALL_IMAGES_CMDS
        cp -dpf $(ARM_TRUSTED_FIRMWARE_IMG_DIR)/*.bin $(BINARIES_DIR)/
        $(ARM_TRUSTED_FIRMWARE_BL31_UBOOT_INSTALL)
+       $(ARM_TRUSTED_FIRMWARE_BL31_UBOOT_INSTALL_ELF)
 endef
 
 # Configuration check
index ac6f8bc8c141052c2ff7a46142ba9614d66a0948..cbbbd5f1a40c6fa3fe4c7c8352771c55164f164d 100644 (file)
@@ -179,6 +179,19 @@ config BR2_TARGET_UBOOT_NEEDS_ATF_BL31
          variable pointing to ATF's BL31 binary, is passed during the
          Buildroot build.
 
+choice
+       prompt "U-Boot ATF BL31 format"
+       depends on BR2_TARGET_UBOOT_NEEDS_ATF_BL31
+       default BR2_TARGET_UBOOT_NEEDS_ATF_BL31_BIN
+
+config BR2_TARGET_UBOOT_NEEDS_ATF_BL31_BIN
+       bool "bl31.bin"
+
+config BR2_TARGET_UBOOT_NEEDS_ATF_BL31_ELF
+       bool "bl31.elf"
+
+endchoice
+
 menu "U-Boot binary format"
 
 config BR2_TARGET_UBOOT_FORMAT_AIS
index 6977bcc064016f97fb1afdfae18d72b0a7666055..3c070b41b3b0df4687b588ffede32d220cb3d866 100644 (file)
@@ -137,8 +137,12 @@ UBOOT_MAKE_OPTS += \
 
 ifeq ($(BR2_TARGET_UBOOT_NEEDS_ATF_BL31),y)
 UBOOT_DEPENDENCIES += arm-trusted-firmware
+ifeq ($(BR2_TARGET_UBOOT_NEEDS_ATF_BL31_ELF),y)
+UBOOT_MAKE_OPTS += BL31=$(BINARIES_DIR)/bl31.elf
+else
 UBOOT_MAKE_OPTS += BL31=$(BINARIES_DIR)/bl31.bin
 endif
+endif
 
 ifeq ($(BR2_TARGET_UBOOT_NEEDS_DTC),y)
 UBOOT_DEPENDENCIES += host-dtc