4a71356832
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 <vfazio@xes-inc.com> Cc: Vincent Fazio <vfazio@xes-inc.com> Cc: Casey Reeves <casey@xogium.me> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Tested-by: Vincent Fazio <vfazio@xes-inc.com> Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
265 lines
7.9 KiB
Plaintext
265 lines
7.9 KiB
Plaintext
config BR2_TARGET_ARM_TRUSTED_FIRMWARE
|
|
bool "ARM Trusted Firmware (ATF)"
|
|
depends on (BR2_ARM_CPU_ARMV8A || BR2_ARM_CPU_ARMV7A)
|
|
help
|
|
Enable this option if you want to build the ATF for your ARM
|
|
based embedded device.
|
|
|
|
https://github.com/ARM-software/arm-trusted-firmware
|
|
|
|
if BR2_TARGET_ARM_TRUSTED_FIRMWARE
|
|
choice
|
|
prompt "ATF Version"
|
|
help
|
|
Select the specific ATF version you want to use
|
|
|
|
config BR2_TARGET_ARM_TRUSTED_FIRMWARE_LATEST_VERSION
|
|
bool "v2.7"
|
|
|
|
config BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION
|
|
bool "Custom version"
|
|
help
|
|
This option allows to use a specific official versions
|
|
|
|
config BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_TARBALL
|
|
bool "Custom tarball"
|
|
|
|
config BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT
|
|
bool "Custom Git repository"
|
|
|
|
endchoice
|
|
|
|
if BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_TARBALL
|
|
|
|
config BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_TARBALL_LOCATION
|
|
string "URL of custom ATF tarball"
|
|
|
|
endif
|
|
|
|
config BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION_VALUE
|
|
string "ATF version"
|
|
depends on BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION
|
|
|
|
config BR2_TARGET_ARM_TRUSTED_FIRMWARE_VERSION
|
|
string
|
|
default "v2.7" if BR2_TARGET_ARM_TRUSTED_FIRMWARE_LATEST_VERSION
|
|
default "custom" if BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_TARBALL
|
|
default BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION \
|
|
if BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT
|
|
default BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION_VALUE \
|
|
if BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION
|
|
|
|
if BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT
|
|
|
|
config BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL
|
|
string "URL of custom repository"
|
|
|
|
config BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION
|
|
string "Custom repository version"
|
|
help
|
|
Revision to use in the typical format used by Git
|
|
E.G. a sha id, a tag, ..
|
|
|
|
endif
|
|
|
|
config BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM
|
|
string "ATF platform"
|
|
help
|
|
Target plaform to build for.
|
|
|
|
config BR2_TARGET_ARM_TRUSTED_FIRMWARE_TARGET_BOARD
|
|
string "ATF target board"
|
|
help
|
|
Target board to build for. In many cases, this can be left
|
|
empty.
|
|
|
|
config BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_DTS_PATH
|
|
string "Device Tree Source file paths"
|
|
help
|
|
Space-separated list of paths to device tree source files
|
|
that will be copied to fdts/ before starting the build.
|
|
|
|
To use this device tree source file, the ATF configuration
|
|
file must refer to it.
|
|
|
|
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_BL31
|
|
bool "Build BL31 image"
|
|
help
|
|
This option enables building the BL31 image. This is
|
|
typically used on platforms where another bootloader (e.g
|
|
U-Boot) encapsulates ATF BL31.
|
|
|
|
config BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31_UBOOT
|
|
bool "Build BL31 U-Boot image"
|
|
select BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31
|
|
help
|
|
Generates a U-Boot image named atf-uboot.ub containing
|
|
bl31.bin. This is used for example by the Xilinx version of
|
|
U-Boot SPL to load ATF on the ZynqMP SoC.
|
|
|
|
choice
|
|
prompt "BL32"
|
|
default BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL32_DEFAULT
|
|
help
|
|
Select BL32 stage for the trusted firmware
|
|
|
|
config BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL32_DEFAULT
|
|
bool "Default"
|
|
help
|
|
With this option selected, ATF will not use any BL32 stage,
|
|
unless if one is explicitly chosen using the SPD (for
|
|
AArch64) or AARCH32_SP (for AArch32) variables, which can be
|
|
passed through
|
|
BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES.
|
|
|
|
config BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL32_OPTEE
|
|
bool "OP-TEE OS"
|
|
depends on BR2_TARGET_OPTEE_OS
|
|
help
|
|
This option allows to embed OP-TEE OS as the BL32 part of
|
|
the ARM Trusted Firmware boot sequence.
|
|
|
|
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 "Barebox"
|
|
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.
|
|
|
|
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
|
|
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
|
|
|
|
if BR2_TARGET_ARM_TRUSTED_FIRMWARE_UBOOT_AS_BL33
|
|
|
|
config BR2_TARGET_ARM_TRUSTED_FIRMWARE_UBOOT_BL33_IMAGE
|
|
string "U-Boot BL33 image name"
|
|
default "u-boot.bin"
|
|
help
|
|
Name of the U-Boot BL33 image to include in ATF, it must
|
|
have been installed to BINARIES_DIR by the U-Boot package.
|
|
|
|
endif
|
|
|
|
config BR2_TARGET_ARM_TRUSTED_FIRMWARE_RCW
|
|
bool "Include NXP RCW in BL2"
|
|
depends on BR2_PACKAGE_HOST_QORIQ_RCW
|
|
help
|
|
Include the NXP RCW (Reset Control Word) in BL2. See
|
|
package/qoriq-rcw/ for more details. This is mostly useful
|
|
on NXP LayerScape platforms.
|
|
|
|
config BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_TARGETS
|
|
string "Additional ATF make targets"
|
|
help
|
|
Additional targets for the ATF build
|
|
E.G. When using the QorIQ custom ATF repository from NXP,
|
|
the target 'pbl' can be used to build the pbl binary.
|
|
|
|
config BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES
|
|
string "Additional ATF build variables"
|
|
help
|
|
Additional parameters for the ATF build
|
|
E.G. 'DEBUG=1 LOG_LEVEL=20'
|
|
|
|
config BR2_TARGET_ARM_TRUSTED_FIRMWARE_DEBUG
|
|
bool "Build in debug mode"
|
|
help
|
|
Enable this option to build ATF with DEBUG=1.
|
|
|
|
config BR2_TARGET_ARM_TRUSTED_FIRMWARE_IMAGES
|
|
string "Binary boot images"
|
|
default "*.bin"
|
|
help
|
|
Names of generated image files that are installed in the
|
|
output images/ directory.
|
|
|
|
config BR2_TARGET_ARM_TRUSTED_FIRMWARE_NEEDS_DTC
|
|
bool "Needs dtc"
|
|
select BR2_PACKAGE_HOST_DTC
|
|
help
|
|
Select this option if your ATF board configuration
|
|
requires the Device Tree compiler to be available.
|
|
|
|
config BR2_TARGET_ARM_TRUSTED_FIRMWARE_NEEDS_ARM32_TOOLCHAIN
|
|
bool "Needs arm-none-eabi toolchain"
|
|
depends on BR2_aarch64
|
|
depends on BR2_HOSTARCH = "x86_64"
|
|
help
|
|
Select this option if your ATF board configuration requires
|
|
an ARM32 bare metal toolchain to be available.
|
|
|
|
config BR2_TARGET_ARM_TRUSTED_FIRMWARE_SSP
|
|
bool "Build with SSP"
|
|
depends on BR2_TOOLCHAIN_HAS_SSP
|
|
depends on !BR2_SSP_NONE
|
|
help
|
|
Say 'y' here if you want to build ATF with SSP.
|
|
|
|
Your board must have SSP support in ATF: it must have an
|
|
implementation for plat_get_stack_protector_canary().
|
|
|
|
If you say 'y', the SSP level will be the level selected
|
|
by the global SSP setting.
|
|
|
|
config BR2_TARGET_ARM_TRUSTED_FIRMWARE_SSP_LEVEL
|
|
string
|
|
default "default" if BR2_SSP_REGULAR
|
|
default "strong" if BR2_SSP_STRONG
|
|
default "all" if BR2_SSP_ALL
|
|
|
|
endif
|