feat: add a test command to request a Cactus SP to start wdog timer
cactus_send_twdog_cmd() API sends a direct request message to target
SP which (re)starts the Trusted Watchdog timer. The SP then sends back
a direct response message indicating successful command.
Signed-off-by: Madhukar Pappireddy <madhukar.pappireddy@arm.com>
Change-Id: If09ce76b46a6339f08f26be90e566550931fb3c7
diff --git a/include/runtime_services/cactus_test_cmds.h b/include/runtime_services/cactus_test_cmds.h
index b588934..131e964 100644
--- a/include/runtime_services/cactus_test_cmds.h
+++ b/include/runtime_services/cactus_test_cmds.h
@@ -63,7 +63,7 @@
static inline smc_ret_values cactus_response(
ffa_id_t source, ffa_id_t dest, uint32_t response)
{
- return ffa_msg_send_direct_resp64(source, dest, response, 0, 0, 0, 0);
+ return cactus_send_response(source, dest, response, 0, 0, 0, 0);
}
static inline uint32_t cactus_get_response(smc_ret_values ret)
@@ -431,4 +431,23 @@
receiver, sender, notifications, flags);
}
+/**
+ * Request to start trusted watchdog timer.
+ *
+ * The command id is the hex representaton of the string "WDOG"
+ */
+#define CACTUS_TWDOG_START_CMD U(0x57444f47)
+
+static inline smc_ret_values cactus_send_twdog_cmd(
+ ffa_id_t source, ffa_id_t dest, uint64_t time)
+{
+ return cactus_send_cmd(source, dest, CACTUS_TWDOG_START_CMD, time, 0, 0,
+ 0);
+}
+
+static inline uint32_t cactus_get_wdog_duration(smc_ret_values ret)
+{
+ return (uint32_t)ret.ret4;
+}
+
#endif