blob: c0a985187205a7145ee1f0a1786f1c3d80500218 [file] [log] [blame]
#-------------------------------------------------------------------------------
# Copyright (c) 2020-2023, 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 the driver is already installed, try to find that
find_path(LINUX_FFA_USER_SHIM_INCLUDE_DIR
NAMES arm_ffa_user.h
DOC "Linux FF-A user space shim driver include directory"
)
# If not found, download it
if(NOT LINUX_FFA_USER_SHIM_INCLUDE_DIR)
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")
# Note: the aim of this external component is to make the header file defining the IOCTL API
# available. Fetching a moving reference is ok as long as API compatibility is guaranteed.
set(LINUX_FFA_USER_SHIM_REFSPEC "origin/debugfs-v5"
CACHE STRING "Linux FF-A user space shim git refspec")
set(LINUX_FFA_USER_SHIM_SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/_deps/linux_ffa_user_shim-src"
CACHE PATH "Location of Linux driver source.")
if (DEFINED ENV{LINUX_FFA_USER_SHIM_SOURCE_DIR})
set(LINUX_FFA_USER_SHIM_SOURCE_DIR $ENV{LINUX_FFA_USER_SHIM_SOURCE_DIR}
CACHE PATH "Location of Linux driver source." FORCE)
endif()
set(GIT_OPTIONS
GIT_REPOSITORY ${LINUX_FFA_USER_SHIM_URL}
GIT_TAG ${LINUX_FFA_USER_SHIM_REFSPEC}
GIT_SHALLOW FALSE
)
include(${TS_ROOT}/tools/cmake/common/LazyFetch.cmake REQUIRED)
LazyFetch_MakeAvailable(
DEP_NAME linux_ffa_user_shim
FETCH_OPTIONS "${GIT_OPTIONS}"
SOURCE_DIR ${LINUX_FFA_USER_SHIM_SOURCE_DIR}
)
find_path(LINUX_FFA_USER_SHIM_INCLUDE_DIR
NAMES arm_ffa_user.h
PATHS ${LINUX_FFA_USER_SHIM_SOURCE_DIR}
NO_DEFAULT_PATH
REQUIRED
DOC "Linux FF-A user space shim include directory"
)
endif()
set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS
"${LINUX_FFA_USER_SHIM_INCLUDE_DIR}/arm_ffa_user.h")