From 48d9042e5d2e0bc8bd0efc3a2516b156c4b89190 Mon Sep 17 00:00:00 2001 From: Casey Reeves Date: Thu, 19 Jan 2023 19:50:40 +0100 Subject: [PATCH] boot/arm-trusted-firmware: allow using Barebox as BL33 Since version 2022.04.0, Barebox now supports a generic image built for platforms, to be used as BL33 to generate FIP images. This patch makes it available as a choice of BL33 to be used with ATF and is based on the similar work put into U-Boot as BL33. Signed-off-by: Casey Reeves Signed-off-by: Thomas Petazzoni --- boot/arm-trusted-firmware/Config.in | 21 +++++++++++++++++++ .../arm-trusted-firmware.mk | 6 ++++++ 2 files changed, 27 insertions(+) diff --git a/boot/arm-trusted-firmware/Config.in b/boot/arm-trusted-firmware/Config.in index a9b9bbcc5a..cb54c6c9d8 100644 --- a/boot/arm-trusted-firmware/Config.in +++ b/boot/arm-trusted-firmware/Config.in @@ -129,6 +129,27 @@ config BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL32_OPTEE endchoice +config BR2_TARGET_ARM_TRUSTED_FIRMWARE_BAREBOX_AS_BL33 + bool "Use Barebox as BL33" + depends on BR2_TARGET_BAREBOX + help + This option allows to embed the Barebox generic BL33 image in + the ARM Trusted Firmware. It ensures that the Barebox package + gets built before ATF, and that the appropriate BL33 + variable pointing to the generic bl33 image is passed + when building ATF. + +if BR2_TARGET_ARM_TRUSTED_FIRMWARE_BAREBOX_AS_BL33 + +config BR2_TARGET_ARM_TRUSTED_FIRMWARE_BAREBOX_BL33_IMAGE + string "Barebox BL33 image name" + default "*-generic-bl33.img" + help + Name of the Barebox BL33 image to include in ATF, it must + have been installed to BINARIES_DIR by the Barebox package. + +endif + config BR2_TARGET_ARM_TRUSTED_FIRMWARE_UBOOT_AS_BL33 bool "Use U-Boot as BL33" depends on BR2_TARGET_UBOOT diff --git a/boot/arm-trusted-firmware/arm-trusted-firmware.mk b/boot/arm-trusted-firmware/arm-trusted-firmware.mk index 1164c81410..648f62ed85 100644 --- a/boot/arm-trusted-firmware/arm-trusted-firmware.mk +++ b/boot/arm-trusted-firmware/arm-trusted-firmware.mk @@ -105,6 +105,12 @@ ARM_TRUSTED_FIRMWARE_MAKE_OPTS += AARCH32_SP=optee endif endif # BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL32_OPTEE +ifeq ($(BR2_TARGET_ARM_TRUSTED_FIRMWARE_BAREBOX_AS_BL33),y) +ARM_TRUSTED_FIRMWARE_BAREBOX_BIN = $(call qstrip,$(BR2_TARGET_ARM_TRUSTED_FIRMWARE_BAREBOX_BL33_IMAGE)) +ARM_TRUSTED_FIRMWARE_MAKE_OPTS += BL33=$(BINARIES_DIR)/$(ARM_TRUSTED_FIRMWARE_BAREBOX_BIN) +ARM_TRUSTED_FIRMWARE_DEPENDENCIES += barebox +endif + ifeq ($(BR2_TARGET_ARM_TRUSTED_FIRMWARE_EDK2_AS_BL33),y) ARM_TRUSTED_FIRMWARE_DEPENDENCIES += edk2 # Since the flash device name vary between platforms, we use the variable