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")