config BR2_TARGET_OPTEE_OS
	bool "optee_os"
	depends on BR2_ARM_CPU_ARMV8A || BR2_ARM_CPU_ARMV7A
	help
	  OP-TEE OS provides the secure world boot image and the trust
	  application development kit of the OP-TEE project. OP-TEE OS
	  also provides generic trusted application one can embedded
	  into its system.

	  http://github.com/OP-TEE/optee_os

if BR2_TARGET_OPTEE_OS

choice
	prompt "OP-TEE OS version"
	default BR2_TARGET_OPTEE_OS_LATEST if BR2_PACKAGE_HOST_RUSTC_ARCH_SUPPORTS
	help
	  Select the version of OP-TEE OS you want to use

config BR2_TARGET_OPTEE_OS_LATEST
	bool "4.0.0"
	depends on BR2_PACKAGE_HOST_RUSTC_ARCH_SUPPORTS
	select BR2_TARGET_OPTEE_OS_NEEDS_PYTHON_CRYPTOGRAPHY
	help
	  Use the latest release tag from the OP-TEE OS official Git
	  repository.

config BR2_TARGET_OPTEE_OS_CUSTOM_TARBALL
	bool "Custom tarball"
	help
	  This option allows to specify a URL pointing to an OP-TEE OS
	  source tarball. This URL can use any protocol recognized by
	  Buildroot, like http://, ftp://, file:// or scp://.

	  When pointing to a local tarball using file://, you may want
	  to use a make variable like $(TOPDIR) to reference the root of
	  the Buildroot tree.

config BR2_TARGET_OPTEE_OS_CUSTOM_GIT
	bool "Custom Git repository"
	help
	  Use a custom version fetched from a Git repository.

endchoice

if BR2_TARGET_OPTEE_OS_CUSTOM_TARBALL

config BR2_TARGET_OPTEE_OS_CUSTOM_TARBALL_LOCATION
	string "URL of custom OP-TEE OS tarball"

endif

if BR2_TARGET_OPTEE_OS_CUSTOM_GIT

config BR2_TARGET_OPTEE_OS_CUSTOM_REPO_URL
	string "URL of custom repository"
	depends on BR2_TARGET_OPTEE_OS_CUSTOM_GIT
	help
	  Specific location of the reference source tree Git
	  repository.

config BR2_TARGET_OPTEE_OS_CUSTOM_REPO_VERSION
	string "Custom repository version"
	depends on BR2_TARGET_OPTEE_OS_CUSTOM_GIT
	help
	  Revision to use in the typical format used by Git, i.e a
	  SHA1 or a tag.

endif

config BR2_TARGET_OPTEE_OS_VERSION
	string
	default "4.0.0"		if BR2_TARGET_OPTEE_OS_LATEST
	default "custom"	if BR2_TARGET_OPTEE_OS_CUSTOM_TARBALL
	default BR2_TARGET_OPTEE_OS_CUSTOM_REPO_VERSION \
				if BR2_TARGET_OPTEE_OS_CUSTOM_GIT

config BR2_TARGET_OPTEE_OS_NEEDS_DTC
	bool "OP-TEE OS needs dtc"
	select BR2_PACKAGE_HOST_DTC
	help
	  Select this option if your OP-TEE OS platform configuration
	  requires the Device Tree compiler to be available.

config BR2_TARGET_OPTEE_OS_NEEDS_PYTHON_CRYPTOGRAPHY
	bool "OP-TEE OS needs host-python-cryptography"
	depends on BR2_PACKAGE_HOST_RUSTC_ARCH_SUPPORTS
	help
	  OP-TEE OS version below 3.16 used python-pycryptodomex
	  package in python scripts. Newer version uses
	  python-cryptography. Select this option if optee-os needs
	  python-cryptography to be built.

config BR2_TARGET_OPTEE_OS_CORE
	bool "Build core"
	default y
	help
	  This option will build and install the OP-TEE core
	  boot images.

config BR2_TARGET_OPTEE_OS_SDK
	bool "Build TA devkit"
	default y
	help
	  This option will build and install the OP-TEE development
	  kit for building OP-TEE trusted application images. It is
	  installed in the staging directory /lib/optee.

config BR2_TARGET_OPTEE_OS_SERVICES
	bool "Build service TAs and libs"
	default y
	select BR2_TARGET_OPTEE_OS_CORE
	help
	  This option installs the service trusted applications and
	  trusted shared libraries built from OP-TEE OS source tree.
	  These are installed in target /lib/optee_armtz directory
	  as other trusted applications. At runtime OP-TEE OS can
	  load these from this non-secure filesystem/directory into
	  the secure world for execution.

config BR2_TARGET_OPTEE_OS_PLATFORM
	string "Target platform (mandatory)"
	help
	  Value for the mandated PLATFORM build directive provided to
	  OP-TEE OS.

config BR2_TARGET_OPTEE_OS_PLATFORM_FLAVOR
	string "Target platform flavor (optional)"
	help
	  Value for the optional PLATFORM_FLAVOR build directive
	  provided to OP-TEE OS.

config BR2_TARGET_OPTEE_OS_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 core/arch/arm/dts/ before starting
	  the build.

	  To use this device tree source file, the OP-TEE OS
	  configuration must refer to it with the
	  CFG_EMBED_DTB_SOURCE_FILE option and no platform flavor
	  needs to be specified.

config BR2_TARGET_OPTEE_OS_ADDITIONAL_VARIABLES
	string "Additional build variables"
	help
	  Additional parameters for the OP-TEE OS build
	  E.g. 'CFG_TEE_CORE_LOG_LEVEL=3 CFG_UNWIND=y'

config BR2_TARGET_OPTEE_OS_CORE_IMAGES
	string "Binary boot images"
	default "tee.bin tee-*_v2.bin"
	help
	  Names of generated image files that are installed in the
	  output images/ directory.

endif # BR2_TARGET_OPTEE_OS