aboutsummaryrefslogtreecommitdiff
path: root/tftf/tests/runtime_services/secure_service/test_ffa_direct_messaging.c
diff options
context:
space:
mode:
authorJ-Alves <joao.alves@arm.com>2021-03-03 13:59:52 +0000
committerJ-Alves <joao.alves@arm.com>2021-03-12 12:57:11 +0000
commit4cb9dee51231982ac1e0ed608b16099a9b37a084 (patch)
tree8ae2fbfa01e8663b6047377f33f8c50887a69d87 /tftf/tests/runtime_services/secure_service/test_ffa_direct_messaging.c
parent0e1e7ca1967768891dc24ba384a0744d504a6fca (diff)
downloadtf-a-tests-4cb9dee51231982ac1e0ed608b16099a9b37a084.tar.gz
TFTF: Use CACTUS_ECHO_CMD in direct message tests
There were two very similar tests, that were targeted to the same purpose. This patch keeps the logic using an echo value, as it was being used in tests involving SPs. Signed-off-by: J-Alves <joao.alves@arm.com> Change-Id: Ib278d28098e60dddf807b267951f7e2b8762e9e3
Diffstat (limited to 'tftf/tests/runtime_services/secure_service/test_ffa_direct_messaging.c')
-rw-r--r--tftf/tests/runtime_services/secure_service/test_ffa_direct_messaging.c39
1 files changed, 14 insertions, 25 deletions
diff --git a/tftf/tests/runtime_services/secure_service/test_ffa_direct_messaging.c b/tftf/tests/runtime_services/secure_service/test_ffa_direct_messaging.c
index 50e85825e..72daae46f 100644
--- a/tftf/tests/runtime_services/secure_service/test_ffa_direct_messaging.c
+++ b/tftf/tests/runtime_services/secure_service/test_ffa_direct_messaging.c
@@ -18,37 +18,26 @@
#define ECHO_VAL2 U(0xb0b0b0b0)
#define ECHO_VAL3 U(0xc0c0c0c0)
-#define DIRECT_MSG_TEST_PATTERN1 (0xaaaa0000)
-#define DIRECT_MSG_TEST_PATTERN2 (0xbbbb0000)
-#define DIRECT_MSG_TEST_PATTERN3 (0xcccc0000)
-
static const struct ffa_uuid expected_sp_uuids[] = {
{PRIMARY_UUID}, {SECONDARY_UUID}, {TERTIARY_UUID}
};
-static test_result_t send_receive_direct_msg(unsigned int sp_id,
- unsigned int test_pattern)
+static test_result_t send_cactus_echo_cmd(ffa_vm_id_t sender,
+ ffa_vm_id_t dest,
+ uint64_t value)
{
- smc_ret_values ret_values;
-
- /* Send a message to SP through direct messaging */
- ret_values = ffa_msg_send_direct_req(HYP_ID, sp_id, test_pattern);
+ smc_ret_values ret;
+ ret = cactus_echo_send_cmd(sender, dest, value);
- /*
- * Return responses may be FFA_MSG_SEND_DIRECT_RESP or FFA_INTERRUPT,
- * but only expect the former. Expect SMC32 convention from SP.
- */
- if (!is_ffa_direct_response(ret_values)) {
- tftf_testcase_printf("ffa_msg_send_direct_req returned %x\n",
- ffa_func_id(ret_values));
+ if (!is_ffa_direct_response(ret)) {
+ ERROR("Failed to send message. error: %x\n",
+ ffa_error_code(ret));
return TEST_RESULT_FAIL;
}
- /*
- * Message loop in SP returns initial message with the running VM id
- * into the lower 16 bits of initial message.
- */
- if (ret_values.ret3 != (test_pattern | sp_id)) {
+ if (cactus_get_response(ret) != CACTUS_SUCCESS ||
+ cactus_echo_get_val(ret) != value) {
+ ERROR("Echo Failed!\n");
return TEST_RESULT_FAIL;
}
@@ -67,7 +56,7 @@ test_result_t test_ffa_direct_messaging(void)
/**********************************************************************
* Send a message to SP1 through direct messaging
**********************************************************************/
- result = send_receive_direct_msg(SP_ID(1), DIRECT_MSG_TEST_PATTERN1);
+ result = send_cactus_echo_cmd(HYP_ID, SP_ID(1), ECHO_VAL1);
if (result != TEST_RESULT_SUCCESS) {
return result;
}
@@ -75,7 +64,7 @@ test_result_t test_ffa_direct_messaging(void)
/**********************************************************************
* Send a message to SP2 through direct messaging
**********************************************************************/
- result = send_receive_direct_msg(SP_ID(2), DIRECT_MSG_TEST_PATTERN2);
+ result = send_cactus_echo_cmd(HYP_ID, SP_ID(2), ECHO_VAL2);
if (result != TEST_RESULT_SUCCESS) {
return result;
}
@@ -83,7 +72,7 @@ test_result_t test_ffa_direct_messaging(void)
/**********************************************************************
* Send a message to SP1 through direct messaging
**********************************************************************/
- result = send_receive_direct_msg(SP_ID(1), DIRECT_MSG_TEST_PATTERN3);
+ result = send_cactus_echo_cmd(HYP_ID, SP_ID(1), ECHO_VAL3);
return result;
}