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 "3.18.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 "3.18.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_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
