Add TEE driver support
Modify the Linux ffarpc caller and service locator to use the FF-A TEE
driver instead of the DebugFS proof-of-concept driver.
Signed-off-by: Balint Dobszay <balint.dobszay@arm.com>
Change-Id: I36f9dc56f26449d6dfdf72bfcbb431459304fcd7
diff --git a/external/LinuxFfaTeeDriver/LinuxFfaTeeDriver.cmake b/external/LinuxFfaTeeDriver/LinuxFfaTeeDriver.cmake
new file mode 100644
index 0000000..53f6480
--- /dev/null
+++ b/external/LinuxFfaTeeDriver/LinuxFfaTeeDriver.cmake
@@ -0,0 +1,51 @@
+#-------------------------------------------------------------------------------
+# Copyright (c) 2020-2022, Arm Limited and Contributors. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+#-------------------------------------------------------------------------------
+
+# If the driver is already installed, try to find that
+find_path(LINUX_FFA_TEE_DRIVER_INCLUDE_DIR
+ NAMES arm_ffa_tee.h
+ DOC "Linux FF-A TEE driver include directory"
+)
+
+# If not found, download it
+if(NOT LINUX_FFA_TEE_DRIVER_INCLUDE_DIR)
+ set(LINUX_FFA_TEE_DRIVER_URL "https://git.gitlab.arm.com/linux-arm/linux-trusted-services.git"
+ CACHE STRING "Linux FF-A TEE driver repository URL")
+ set(LINUX_FFA_TEE_DRIVER_REFSPEC "tee-v1"
+ CACHE STRING "Linux FF-A TEE driver git refspec")
+
+ set(LINUX_FFA_TEE_DRIVER_SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/_deps/linux_ffa_tee_driver-src"
+ CACHE PATH "Location of Linux TEE driver source.")
+
+ if (DEFINED ENV{LINUX_FFA_TEE_DRIVER_SOURCE_DIR})
+ set(LINUX_FFA_TEE_DRIVER_SOURCE_DIR $ENV{LINUX_FFA_TEE_DRIVER_SOURCE_DIR}
+ CACHE PATH "Location of Linux TEE driver source." FORCE)
+ endif()
+
+ set(GIT_OPTIONS
+ GIT_REPOSITORY ${LINUX_FFA_TEE_DRIVER_URL}
+ GIT_TAG ${LINUX_FFA_TEE_DRIVER_REFSPEC}
+ GIT_SHALLOW TRUE
+ )
+ include(${TS_ROOT}/tools/cmake/common/LazyFetch.cmake REQUIRED)
+ LazyFetch_MakeAvailable(
+ DEP_NAME linux_ffa_tee_driver
+ FETCH_OPTIONS "${GIT_OPTIONS}"
+ SOURCE_DIR ${LINUX_FFA_TEE_DRIVER_SOURCE_DIR}
+ )
+
+ find_path(LINUX_FFA_TEE_DRIVER_INCLUDE_DIR
+ NAMES arm_ffa_tee.h
+ PATHS ${LINUX_FFA_TEE_DRIVER_SOURCE_DIR}/uapi
+ NO_DEFAULT_PATH
+ REQUIRED
+ DOC "Linux FF-A TEE driver include directory"
+ )
+endif()
+
+set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS
+ "${LINUX_FFA_TEE_DRIVER_INCLUDE_DIR}/arm_ffa_tee.h")