libsp: Add FF-A direct message routing extension
The routing extension is a layer on top of FF-A which enables SPs to
send direct messages to the normal world component while maintaining
the state of the SPs in the call chain.
Change-Id: Ic4d6d5cbbccbe1adb534e7b8d2502b78b3d9cb04
Signed-off-by: Imre Kis <imre.kis@arm.com>
diff --git a/components/messaging/ffa/libsp/component.cmake b/components/messaging/ffa/libsp/component.cmake
index 2fec443..a21c630 100644
--- a/components/messaging/ffa/libsp/component.cmake
+++ b/components/messaging/ffa/libsp/component.cmake
@@ -8,6 +8,8 @@
message(FATAL_ERROR "mandatory parameter TGT is not defined.")
endif()
+set(FFA_DIRECT_MSG_ROUTING_EXTENSION ON CACHE BOOL "Enable FF-A direct message routing extension")
+
target_sources(${TGT} PRIVATE
"${CMAKE_CURRENT_LIST_DIR}/aarch64/ffa_syscalls_a64.S"
"${CMAKE_CURRENT_LIST_DIR}/ffa.c"
@@ -34,6 +36,15 @@
${CMAKE_CURRENT_LIST_DIR}/include/sp_rxtx.h
)
+if (FFA_DIRECT_MSG_ROUTING_EXTENSION)
+ target_sources(${TGT} PRIVATE
+ "${CMAKE_CURRENT_LIST_DIR}/ffa_direct_msg_routing_extension.c"
+ )
+
+ target_compile_options(${TGT} PUBLIC
+ -DFFA_DIRECT_MSG_ROUTING_EXTENSION=1
+ )
+endif()
target_include_directories(${TGT}
PUBLIC