aboutsummaryrefslogtreecommitdiff
path: root/tftf
diff options
context:
space:
mode:
authorJ-Alves <joao.alves@arm.com>2020-11-19 12:14:21 +0000
committerJ-Alves <joao.alves@arm.com>2020-12-15 11:10:20 +0000
commitd708c03b6a6c2fc5bfcdfb290ba916f691e9d37d (patch)
treedec4da51a50394edb4b7119c3958b558c84e0001 /tftf
parent83ede9be9c9397b4c46509ceb4475785c6858c15 (diff)
downloadtf-a-tests-d708c03b6a6c2fc5bfcdfb290ba916f691e9d37d.tar.gz
TFTF: helpers for SPM tests
Added functions and macros to help check at the beginning of the test, that system is as expected for SPM tests in which Hafnium is deployed as SPMC. This includes: - Checking SPMC has expected FFA_VERSION; - Checking that expected FF-A endpoints are deployed in the system; - Getting global TFTF mailbox. Signed-off-by: J-Alves <joao.alves@arm.com> Change-Id: I9195bcff8ed93156e838b192bb70a9634e18fbbf
Diffstat (limited to 'tftf')
-rw-r--r--tftf/tests/common/test_helpers.c30
-rw-r--r--tftf/tests/runtime_services/secure_service/test_ffa_memory_sharing.c3
2 files changed, 32 insertions, 1 deletions
diff --git a/tftf/tests/common/test_helpers.c b/tftf/tests/common/test_helpers.c
index b1868cd4..9861070f 100644
--- a/tftf/tests/common/test_helpers.c
+++ b/tftf/tests/common/test_helpers.c
@@ -147,3 +147,33 @@ bool get_tftf_mailbox(struct mailbox_buffers *mb)
}
return false;
}
+
+test_result_t check_hafnium_spmc_testing_set_up(
+ uint32_t ffa_version_major, uint32_t ffa_version_minor,
+ const struct ffa_uuid *ffa_uuids, size_t ffa_uuids_size)
+{
+ struct mailbox_buffers mb;
+
+ if (ffa_uuids == NULL) {
+ ERROR("Invalid parameter ffa_uuids!\n");
+ return TEST_RESULT_FAIL;
+ }
+
+ SKIP_TEST_IF_FFA_VERSION_LESS_THAN(ffa_version_major,
+ ffa_version_minor);
+
+ /**********************************************************************
+ * If OP-TEE is SPMC skip the current test.
+ **********************************************************************/
+ if (check_spmc_execution_level()) {
+ VERBOSE("OPTEE as SPMC at S-EL1. Skipping test!\n");
+ return TEST_RESULT_SKIPPED;
+ }
+
+ GET_TFTF_MAILBOX(mb);
+
+ for (unsigned int i = 0U; i < ffa_uuids_size; i++)
+ SKIP_TEST_IF_FFA_ENDPOINT_NOT_DEPLOYED(*mb, ffa_uuids[i].uuid);
+
+ return TEST_RESULT_SUCCESS;
+}
diff --git a/tftf/tests/runtime_services/secure_service/test_ffa_memory_sharing.c b/tftf/tests/runtime_services/secure_service/test_ffa_memory_sharing.c
index 6e73161f..fded1998 100644
--- a/tftf/tests/runtime_services/secure_service/test_ffa_memory_sharing.c
+++ b/tftf/tests/runtime_services/secure_service/test_ffa_memory_sharing.c
@@ -30,6 +30,7 @@ static test_result_t test_memory_send_sp(uint32_t mem_func)
ffa_memory_handle_t handle;
uint32_t *ptr;
struct mailbox_buffers mb;
+ const uint32_t primary_uuid[] = PRIMARY_UUID;
/**********************************************************************
* Verify that FFA is there and that it has the correct version.
@@ -55,7 +56,7 @@ static test_result_t test_memory_send_sp(uint32_t mem_func)
/**********************************************************************
* Verify that cactus primary SP is deployed in the system.
**********************************************************************/
- SKIP_TEST_IF_FFA_ENDPOINT_NOT_DEPLOYED(mb, PRIMARY_UUID);
+ SKIP_TEST_IF_FFA_ENDPOINT_NOT_DEPLOYED(mb, primary_uuid);
struct ffa_memory_region_constituent constituents[] = {
{(void *)share_page, 1, 0}