1config BR2_TARGET_ARM_TRUSTED_FIRMWARE 2 bool "ARM Trusted Firmware (ATF)" 3 depends on (BR2_ARM_CPU_ARMV8A || BR2_ARM_CPU_ARMV7A) && \ 4 (BR2_TARGET_UBOOT || BR2_TARGET_EDK2) 5 help 6 Enable this option if you want to build the ATF for your ARM 7 based embedded device. 8 9 https://github.com/ARM-software/arm-trusted-firmware 10 11if BR2_TARGET_ARM_TRUSTED_FIRMWARE 12choice 13 prompt "ATF Version" 14 help 15 Select the specific ATF version you want to use 16 17config BR2_TARGET_ARM_TRUSTED_FIRMWARE_LATEST_VERSION 18 bool "v2.5" 19 20config BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION 21 bool "Custom version" 22 help 23 This option allows to use a specific official versions 24 25config BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_TARBALL 26 bool "Custom tarball" 27 28config BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT 29 bool "Custom Git repository" 30 31endchoice 32 33if BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_TARBALL 34 35config BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_TARBALL_LOCATION 36 string "URL of custom ATF tarball" 37 38endif 39 40config BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION_VALUE 41 string "ATF version" 42 depends on BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION 43 44config BR2_TARGET_ARM_TRUSTED_FIRMWARE_VERSION 45 string 46 default "v2.5" if BR2_TARGET_ARM_TRUSTED_FIRMWARE_LATEST_VERSION 47 default "custom" if BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_TARBALL 48 default BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION \ 49 if BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT 50 default BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION_VALUE \ 51 if BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION 52 53if BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT 54 55config BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL 56 string "URL of custom repository" 57 58config BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION 59 string "Custom repository version" 60 help 61 Revision to use in the typical format used by Git 62 E.G. a sha id, a tag, .. 63 64endif 65 66config BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM 67 string "ATF platform" 68 help 69 Target plaform to build for. 70 71config BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_DTS_PATH 72 string "Device Tree Source file paths" 73 help 74 Space-separated list of paths to device tree source files 75 that will be copied to fdts/ before starting the build. 76 77 To use this device tree source file, the ATF configuration 78 file must refer to it. 79 80config BR2_TARGET_ARM_TRUSTED_FIRMWARE_FIP 81 bool "Build FIP image" 82 help 83 This option enables building the FIP image (Firmware Image 84 Package). This is typically the image format used by 85 platforms were ATF encapsulates the second stage bootloader 86 (such as U-Boot). 87 88config BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31 89 bool "Build BL31 image" 90 help 91 This option enables building the BL31 image. This is 92 typically used on platforms where another bootloader (e.g 93 U-Boot) encapsulates ATF BL31. 94 95config BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31_UBOOT 96 bool "Build BL31 U-Boot image" 97 select BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31 98 help 99 Generates a U-Boot image named atf-uboot.ub containing 100 bl31.bin. This is used for example by the Xilinx version of 101 U-Boot SPL to load ATF on the ZynqMP SoC. 102 103choice 104 prompt "BL32" 105 default BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL32_DEFAULT 106 help 107 Select BL32 stage for the trusted firmware 108 109config BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL32_DEFAULT 110 bool "Default" 111 help 112 With this option selected, ATF will not use any BL32 stage, 113 unless if one is explicitly chosen using the SPD (for 114 AArch64) or AARCH32_SP (for AArch32) variables, which can be 115 passed through 116 BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES. 117 118config BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL32_OPTEE 119 bool "OP-TEE OS" 120 depends on BR2_TARGET_OPTEE_OS 121 help 122 This option allows to embed OP-TEE OS as the BL32 part of 123 the ARM Trusted Firmware boot sequence. 124 125endchoice 126 127config BR2_TARGET_ARM_TRUSTED_FIRMWARE_UBOOT_AS_BL33 128 bool "Use U-Boot as BL33" 129 depends on BR2_TARGET_UBOOT 130 help 131 This option allows to embed u-boot.bin as the BL33 part of 132 the ARM Trusted Firmware. It ensures that the u-boot package 133 gets built before ATF, and that the appropriate BL33 134 variable pointing to u-boot.bin is passed when building ATF. 135 136if BR2_TARGET_ARM_TRUSTED_FIRMWARE_UBOOT_AS_BL33 137 138config BR2_TARGET_ARM_TRUSTED_FIRMWARE_UBOOT_BL33_IMAGE 139 string "U-Boot BL33 image name" 140 default "u-boot.bin" 141 help 142 Name of the U-Boot BL33 image to include in ATF, it must 143 have been installed to BINARIES_DIR by the U-Boot package. 144 145endif 146 147config BR2_TARGET_ARM_TRUSTED_FIRMWARE_EDK2_AS_BL33 148 bool "Use EDK2 as BL33" 149 depends on BR2_TARGET_EDK2 150 help 151 This option allows to embed EDK2 as the BL33 part of 152 the ARM Trusted Firmware. It ensures that the EDK2 package 153 gets built before ATF, and that the appropriate BL33 154 variable pointing to the EDK2 is passed when building ATF. 155 156 Do not choose this option if you intend to build ATF and EDK2 157 for the 'qemu_sbsa' platform. In this case, due to the EDK2 158 build system, the dependency between ATF and EDK is reversed. 159 160config BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_TARGETS 161 string "Additional ATF make targets" 162 help 163 Additional targets for the ATF build 164 E.G. When using the QorIQ custom ATF repository from NXP, 165 the target 'pbl' can be used to build the pbl binary. 166 167config BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES 168 string "Additional ATF build variables" 169 help 170 Additional parameters for the ATF build 171 E.G. 'DEBUG=1 LOG_LEVEL=20' 172 173config BR2_TARGET_ARM_TRUSTED_FIRMWARE_DEBUG 174 bool "Build in debug mode" 175 help 176 Enable this option to build ATF with DEBUG=1. 177 178config BR2_TARGET_ARM_TRUSTED_FIRMWARE_IMAGES 179 string "Binary boot images" 180 default "*.bin" 181 help 182 Names of generated image files that are installed in the 183 output images/ directory. 184 185config BR2_TARGET_ARM_TRUSTED_FIRMWARE_NEEDS_DTC 186 bool "Needs dtc" 187 select BR2_PACKAGE_HOST_DTC 188 help 189 Select this option if your ATF board configuration 190 requires the Device Tree compiler to be available. 191 192config BR2_TARGET_ARM_TRUSTED_FIRMWARE_NEEDS_ARM32_TOOLCHAIN 193 bool "Needs arm-none-eabi toolchain" 194 depends on BR2_aarch64 195 depends on BR2_HOSTARCH = "x86_64" 196 help 197 Select this option if your ATF board configuration requires 198 an ARM32 bare metal toolchain to be available. 199 200config BR2_TARGET_ARM_TRUSTED_FIRMWARE_SSP 201 bool "Build with SSP" 202 default y 203 depends on BR2_TOOLCHAIN_HAS_SSP 204 depends on !BR2_SSP_NONE 205 help 206 Say 'y' here if you want to build ATF with SSP. 207 208 Your board must have SSP support in ATF: it must have an 209 implementation for plat_get_stack_protector_canary(). 210 211 If you say 'y', the SSP level will be the level selected 212 by the global SSP setting. 213 214config BR2_TARGET_ARM_TRUSTED_FIRMWARE_SSP_LEVEL 215 string 216 # While newer versions of TF-A support "none" as 217 # ENABLE_STACK_PROTECTOR value, older versions (e.g 2.0) only 218 # supported "0" to disable SSP. 219 default "0" if !BR2_TARGET_ARM_TRUSTED_FIRMWARE_SSP 220 default "default" if BR2_SSP_REGULAR 221 default "strong" if BR2_SSP_STRONG 222 default "all" if BR2_SSP_ALL 223 224endif 225