config BR2_PACKAGE_OPTEE_CLIENT
	bool "optee-client"
	depends on BR2_TOOLCHAIN_HAS_THREADS
	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_3 # MMC_IOC_MULTI_CMD
	depends on BR2_USE_MMU # fork()
	help
	  Enable the OP-TEE client package that brings non-secure
	  client application resources for OP-TEE support. OP-TEE
	  client is a component delivered by the OP-TEE project.

	  The client API library allows application to invoke trusted
	  applications hosted in the OP-TEE OS secure world.  The
	  supplicant provides services hosted by the non-secure world
	  and invoked by the secure world.

	  https://github.com/OP-TEE/optee_client

if BR2_PACKAGE_OPTEE_CLIENT

config BR2_PACKAGE_OPTEE_CLIENT_TEE_FS_PATH
	string "Path for normal world OS secure storage"
	default "/data/tee"
	help
	  Path to storage area for secure storage based on the
	  normal world OS providing the actual storage via
	  tee-supplicant.

config BR2_PACKAGE_OPTEE_CLIENT_RPMB_EMU
	bool "Enable RPMB emulation"
	default y
	help
	  Enable RPMB device emulation in tee-supplicant.

config BR2_PACKAGE_OPTEE_CLIENT_SUPP_PLUGINS
	bool "Enable TEE supplicant plugins"
	default y
	depends on !BR2_STATIC_LIBS # dlfcn.h
	help
	  Enable TEE supplicant plugin support.

config BR2_PACKAGE_OPTEE_CLIENT_TEEACL
	bool "Enable TEE Access Control List login"
	select BR2_PACKAGE_UTIL_LINUX
	select BR2_PACKAGE_UTIL_LINUX_LIBUUID
	help
	  Enable TEE ACL login identification for OP-TEE service that
	  supports them as OP-TEE PKCS#11 services.

endif

comment "optee-client needs a toolchain w/ threads, headers >= 4.3"
	depends on BR2_USE_MMU
	depends on !BR2_TOOLCHAIN_HAS_THREADS || \
		!BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_3
