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