From 4a713568321c1802eba641c6373c0ad79d39c5d0 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Tue, 21 Feb 2023 22:49:03 +0100 Subject: [PATCH] boot/arm-trusted-firmware: introduce a choice to select the BL33 image We now have 3 different options to select an image as the BL33 stage of TF-A: Barebox, U-Boot or EDK2. Technically speaking, they are mutually exclusive: they all specify a BL33= variable to the TF-A build, and TF-A can only support a single BL33 stage. However, as pointed out by Vincent Fazio in [0] there is nothing that prevents selecting Barebox, U-Boot and EDK2 together, even though it doesn't make sense. To address this, this commit introduces a choice...endchoice block, into which the Barebox, U-Boot and EDK2 options are moved. An additional "none" option is added, which is the default, and corresponds to not having any BL33 image. Since we keep the same name for the options, no legacy handling is necessary. [0] https://lore.kernel.org/buildroot/PH1P110MB1603A4AA1638838DA56BAA069FDA9@PH1P110MB1603.NAMP110.PROD.OUTLOOK.COM/ Reported-by: Vincent Fazio Cc: Vincent Fazio Cc: Casey Reeves Signed-off-by: Thomas Petazzoni Tested-by: Vincent Fazio Signed-off-by: Yann E. MORIN --- boot/arm-trusted-firmware/Config.in | 57 +++++++++++++++++------------ 1 file changed, 34 insertions(+), 23 deletions(-) diff --git a/boot/arm-trusted-firmware/Config.in b/boot/arm-trusted-firmware/Config.in index cb54c6c9d8..a5ac987172 100644 --- a/boot/arm-trusted-firmware/Config.in +++ b/boot/arm-trusted-firmware/Config.in @@ -129,8 +129,17 @@ config BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL32_OPTEE endchoice +choice + prompt "BL33" + default BR2_TARGET_ARM_TRUSTED_FIRMWARE_NONE_AS_BL33 + help + Select the image to include as BL33. + +config BR2_TARGET_ARM_TRUSTED_FIRMWARE_NONE_AS_BL33 + bool "None" + config BR2_TARGET_ARM_TRUSTED_FIRMWARE_BAREBOX_AS_BL33 - bool "Use Barebox as BL33" + bool "Barebox" depends on BR2_TARGET_BAREBOX help This option allows to embed the Barebox generic BL33 image in @@ -139,6 +148,30 @@ config BR2_TARGET_ARM_TRUSTED_FIRMWARE_BAREBOX_AS_BL33 variable pointing to the generic bl33 image is passed when building ATF. +config BR2_TARGET_ARM_TRUSTED_FIRMWARE_UBOOT_AS_BL33 + bool "U-Boot" + depends on BR2_TARGET_UBOOT + help + This option allows to embed u-boot.bin as the BL33 part of + the ARM Trusted Firmware. It ensures that the u-boot package + gets built before ATF, and that the appropriate BL33 + variable pointing to u-boot.bin is passed when building ATF. + +config BR2_TARGET_ARM_TRUSTED_FIRMWARE_EDK2_AS_BL33 + bool "EDK2" + depends on BR2_TARGET_EDK2 + help + This option allows to embed EDK2 as the BL33 part of + the ARM Trusted Firmware. It ensures that the EDK2 package + gets built before ATF, and that the appropriate BL33 + variable pointing to the EDK2 is passed when building ATF. + + Do not choose this option if you intend to build ATF and EDK2 + for the 'qemu_sbsa' platform. In this case, due to the EDK2 + build system, the dependency between ATF and EDK is reversed. + +endchoice + if BR2_TARGET_ARM_TRUSTED_FIRMWARE_BAREBOX_AS_BL33 config BR2_TARGET_ARM_TRUSTED_FIRMWARE_BAREBOX_BL33_IMAGE @@ -150,15 +183,6 @@ config BR2_TARGET_ARM_TRUSTED_FIRMWARE_BAREBOX_BL33_IMAGE endif -config BR2_TARGET_ARM_TRUSTED_FIRMWARE_UBOOT_AS_BL33 - bool "Use U-Boot as BL33" - depends on BR2_TARGET_UBOOT - help - This option allows to embed u-boot.bin as the BL33 part of - the ARM Trusted Firmware. It ensures that the u-boot package - gets built before ATF, and that the appropriate BL33 - variable pointing to u-boot.bin is passed when building ATF. - if BR2_TARGET_ARM_TRUSTED_FIRMWARE_UBOOT_AS_BL33 config BR2_TARGET_ARM_TRUSTED_FIRMWARE_UBOOT_BL33_IMAGE @@ -170,19 +194,6 @@ config BR2_TARGET_ARM_TRUSTED_FIRMWARE_UBOOT_BL33_IMAGE endif -config BR2_TARGET_ARM_TRUSTED_FIRMWARE_EDK2_AS_BL33 - bool "Use EDK2 as BL33" - depends on BR2_TARGET_EDK2 - help - This option allows to embed EDK2 as the BL33 part of - the ARM Trusted Firmware. It ensures that the EDK2 package - gets built before ATF, and that the appropriate BL33 - variable pointing to the EDK2 is passed when building ATF. - - Do not choose this option if you intend to build ATF and EDK2 - for the 'qemu_sbsa' platform. In this case, due to the EDK2 - build system, the dependency between ATF and EDK is reversed. - config BR2_TARGET_ARM_TRUSTED_FIRMWARE_RCW bool "Include NXP RCW in BL2" depends on BR2_PACKAGE_HOST_QORIQ_RCW