drivers: tee: optee: Introducing OP-TEE driver implementation
This includes the TEE driver api implementation for OP-TEE. It provides an interface to the OP-TEE TrustZone from the Normal space to start sessions and request functions of the TA. - targets ARM and ARM64; - use SMC to connect to OP-TEE; - accepts requests on privileged and unprivileged device. Signed-off-by: Oleksii Moisieiev <oleksii_moisieiev@epam.com>
This commit is contained in:
parent
e1a66760b2
commit
eb0b341ba6
5 changed files with 1298 additions and 0 deletions
|
|
@ -1,5 +1,7 @@
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
add_subdirectory_ifdef(CONFIG_OPTEE optee)
|
||||||
|
|
||||||
if (CONFIG_TEE)
|
if (CONFIG_TEE)
|
||||||
zephyr_library()
|
zephyr_library()
|
||||||
zephyr_library_sources(tee.c)
|
zephyr_library_sources(tee.c)
|
||||||
|
|
|
||||||
|
|
@ -13,4 +13,6 @@ module-str = tee
|
||||||
|
|
||||||
comment "Device Drivers"
|
comment "Device Drivers"
|
||||||
|
|
||||||
|
source "drivers/tee/optee/Kconfig"
|
||||||
|
|
||||||
endif # TEE
|
endif # TEE
|
||||||
|
|
|
||||||
6
drivers/tee/optee/CMakeLists.txt
Normal file
6
drivers/tee/optee/CMakeLists.txt
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
# Copyright (c) 2023 EPAM Systems
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
zephyr_library()
|
||||||
|
|
||||||
|
zephyr_library_sources(optee.c)
|
||||||
21
drivers/tee/optee/Kconfig
Normal file
21
drivers/tee/optee/Kconfig
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
# Copyright (c) 2023 EPAM Systems
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
config OPTEE
|
||||||
|
bool "OP-TEE driver"
|
||||||
|
depends on (ARM64 && ARMV8_A_NS && HAS_ARM_SMCCC) || ZTEST
|
||||||
|
help
|
||||||
|
This implements support of the OP-TEE firmware which is loaded
|
||||||
|
as BL32 image. OP-TEE is a Trust Zone OS which implements mechanisms
|
||||||
|
of the hardware isolation and rely to ARM TrustZone technology.
|
||||||
|
Driver requests functions from the OP-TEE and implements RPC mechanism
|
||||||
|
needed by OP-TEE to run services. See https://www.op-tee.org for more
|
||||||
|
information.
|
||||||
|
|
||||||
|
config OPTEE_MAX_NOTIF
|
||||||
|
int "Max number of OP-TEE notifications"
|
||||||
|
depends on OPTEE
|
||||||
|
default 255
|
||||||
|
help
|
||||||
|
Sets the maximum notifications from OP-TEE to the Normal World. OP-TEE using
|
||||||
|
this mechanism for the synchronization.
|
||||||
1267
drivers/tee/optee/optee.c
Normal file
1267
drivers/tee/optee/optee.c
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue