Align with Linux FF-A driver

The user space driver for FF-A has been updated. Align the necessary
parts and replace the driver header in external.

Signed-off-by: Balint Dobszay <balint.dobszay@arm.com>
Change-Id: I8bcf601d54e93584f6a9d624bd74039dc12eda18
diff --git a/external/LinuxFFAUserShim/LinuxFFAUserShim.cmake b/external/LinuxFFAUserShim/LinuxFFAUserShim.cmake
new file mode 100644
index 0000000..565017b
--- /dev/null
+++ b/external/LinuxFFAUserShim/LinuxFFAUserShim.cmake
@@ -0,0 +1,54 @@
+#-------------------------------------------------------------------------------
+# Copyright (c) 2020-2021, Arm Limited and Contributors. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+#-------------------------------------------------------------------------------
+
+# Find Linux FF-A user space shim repo location.
+# It contains a kernel module which exposes FF-A operations to user space using DebugFS.
+
+# If a CMake variable exists, use it as is.
+# If not, try to copy the value from the environment.
+# If neither is present, try to download.
+if(NOT DEFINED LINUX_FFA_USER_SHIM_DIR)
+	if(DEFINED ENV{LINUX_FFA_USER_SHIM_DIR})
+		set(LINUX_FFA_USER_SHIM_DIR $ENV{LINUX_FFA_USER_SHIM_DIR}
+				CACHE STRING "Linux FF-A user space shim dir")
+	else()
+		set(LINUX_FFA_USER_SHIM_URL "https://git.gitlab.arm.com/linux-arm/linux-trusted-services.git"
+				CACHE STRING "Linux FF-A user space shim repository URL")
+		set(LINUX_FFA_USER_SHIM_REFSPEC "main"
+				CACHE STRING "Linux FF-A user space shim git refspec")
+
+		find_program(GIT_COMMAND "git")
+		if (NOT GIT_COMMAND)
+			message(FATAL_ERROR "Please install git")
+		endif()
+
+		include(FetchContent)
+		FetchContent_Declare(linux_ffa_user_shim
+			GIT_REPOSITORY ${LINUX_FFA_USER_SHIM_URL}
+			GIT_TAG ${LINUX_FFA_USER_SHIM_REFSPEC}
+			GIT_SHALLOW TRUE
+		)
+
+		# FetchContent_GetProperties exports <name>_SOURCE_DIR and <name>_BINARY_DIR variables
+		FetchContent_GetProperties(linux_ffa_user_shim)
+		if(NOT linux_ffa_user_shim_POPULATED)
+			message(STATUS "Fetching Linux FF-A user space shim")
+			FetchContent_Populate(linux_ffa_user_shim)
+		endif()
+
+		set(LINUX_FFA_USER_SHIM_DIR ${linux_ffa_user_shim_SOURCE_DIR}
+				CACHE STRING "Linux FF-A user space shim dir")
+	endif()
+endif()
+
+find_path(LINUX_FFA_USER_SHIM_INCLUDE_DIR
+	NAMES arm_ffa_user.h
+	PATHS ${LINUX_FFA_USER_SHIM_DIR}
+	NO_DEFAULT_PATH
+	REQUIRED
+	DOC "Linux FF-A user space shim include directory"
+)