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.10"

config BR2_TARGET_ARM_TRUSTED_FIRMWARE_LATEST_LTS_2_8_VERSION
	bool "latest lts-v2.8.x"
	help
	  Select the latest LTS v2.8.x version available

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.10"		if BR2_TARGET_ARM_TRUSTED_FIRMWARE_LATEST_VERSION
	default "lts-v2.8.13"	if BR2_TARGET_ARM_TRUSTED_FIRMWARE_LATEST_LTS_2_8_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
