From cab8bd3b46badb11e734e64747aee848c2b4282d Mon Sep 17 00:00:00 2001 From: =?utf8?q?Micha=C5=82=20=C5=81yszczek?= Date: Sun, 11 Nov 2018 22:39:42 +0100 Subject: [PATCH] boot/uboot: add support for bundling ATF BL31 in ELF format into U-Boot MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 Signed-off-by: Thomas Petazzoni --- boot/arm-trusted-firmware/arm-trusted-firmware.mk | 8 ++++++++ boot/uboot/Config.in | 13 +++++++++++++ boot/uboot/uboot.mk | 4 ++++ 3 files changed, 25 insertions(+) diff --git a/boot/arm-trusted-firmware/arm-trusted-firmware.mk b/boot/arm-trusted-firmware/arm-trusted-firmware.mk index 8c5e55eb4b..8ca3864dd0 100644 --- a/boot/arm-trusted-firmware/arm-trusted-firmware.mk +++ b/boot/arm-trusted-firmware/arm-trusted-firmware.mk @@ -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 diff --git a/boot/uboot/Config.in b/boot/uboot/Config.in index ac6f8bc8c1..cbbbd5f1a4 100644 --- a/boot/uboot/Config.in +++ b/boot/uboot/Config.in @@ -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 diff --git a/boot/uboot/uboot.mk b/boot/uboot/uboot.mk index 6977bcc064..3c070b41b3 100644 --- a/boot/uboot/uboot.mk +++ b/boot/uboot/uboot.mk @@ -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 -- 2.30.2