Implement FFA_CONSOLE_LOG interface
Implement FFA_CONSOLE_LOG interface for sending debug logs to the SPMC.
The commit also replaces the proprietary trace call by FFA_CONSOLE_LOG.
Signed-off-by: Imre Kis <imre.kis@arm.com>
Change-Id: I5275470683e2674fdd6f5a61f9c5ab8dd71dcb11
diff --git a/components/messaging/ffa/libsp/include/ffa_api.h b/components/messaging/ffa/libsp/include/ffa_api.h
index 4b7073b..e18e381 100644
--- a/components/messaging/ffa/libsp/include/ffa_api.h
+++ b/components/messaging/ffa/libsp/include/ffa_api.h
@@ -362,6 +362,26 @@
uint32_t mem_perm);
/**
+ * @brief Allow an entity to provide debug logging to the console. Uses
+ * 32 bit registers to pass characters.
+ *
+ * @param message Message characters
+ * @param length Message length, max FFA_CONSOLE_LOG_32_MAX_LENGTH
+ * @return The FF-A error status code
+ */
+ffa_result ffa_console_log_32(const char *message, size_t length);
+
+/**
+ * @brief Allow an entity to provide debug logging to the console. Uses
+ * 64 bit registers to pass characters.
+ *
+ * @param message Message characters
+ * @param length Message length, max FFA_CONSOLE_LOG_64_MAX_LENGTH
+ * @return The FF-A error status code
+ */
+ffa_result ffa_console_log_64(const char *message, size_t length);
+
+/**
* @brief Interrupt handler prototype. Must be implemented by another
* component.
*
diff --git a/components/messaging/ffa/libsp/include/ffa_api_defines.h b/components/messaging/ffa/libsp/include/ffa_api_defines.h
index 17a5eda..f6e0212 100644
--- a/components/messaging/ffa/libsp/include/ffa_api_defines.h
+++ b/components/messaging/ffa/libsp/include/ffa_api_defines.h
@@ -57,6 +57,8 @@
#define FFA_MEM_FRAG_TX UINT32_C(0x8400007B)
#define FFA_MEM_PERM_GET UINT32_C(0x84000088)
#define FFA_MEM_PERM_SET UINT32_C(0x84000089)
+#define FFA_CONSOLE_LOG_32 UINT32_C(0x8400008A)
+#define FFA_CONSOLE_LOG_64 UINT32_C(0xC400008A)
/* Utility macros */
#define FFA_TO_32_BIT_FUNC(x) ((x) & (~UINT32_C(0x40000000)))
@@ -273,4 +275,8 @@
#define FFA_MEM_PERM_RESERVED_MASK GENMASK_32(31, 3)
+/* FFA_CONSOLE_LOG */
+#define FFA_CONSOLE_LOG_32_MAX_LENGTH UINT32_C(24)
+#define FFA_CONSOLE_LOG_64_MAX_LENGTH UINT32_C(48)
+
#endif /* LIBSP_INCLUDE_FFA_API_DEFINES_H_ */