summaryrefslogtreecommitdiff
path: root/tftf/tests/runtime_services/realm_payload/host_realm_payload_sve_tests.c
diff options
context:
space:
mode:
Diffstat (limited to 'tftf/tests/runtime_services/realm_payload/host_realm_payload_sve_tests.c')
-rw-r--r--tftf/tests/runtime_services/realm_payload/host_realm_payload_sve_tests.c20
1 files changed, 8 insertions, 12 deletions
diff --git a/tftf/tests/runtime_services/realm_payload/host_realm_payload_sve_tests.c b/tftf/tests/runtime_services/realm_payload/host_realm_payload_sve_tests.c
index 5e9d4fd..03de96a 100644
--- a/tftf/tests/runtime_services/realm_payload/host_realm_payload_sve_tests.c
+++ b/tftf/tests/runtime_services/realm_payload/host_realm_payload_sve_tests.c
@@ -472,8 +472,8 @@ rm_realm:
test_result_t host_sve_realm_check_vectors_leaked(void)
{
u_register_t rmi_feat_reg0;
- uint8_t *regs_base_wr, *regs_base_rd;
test_result_t rc;
+ uint64_t bitmap;
bool realm_rc;
uint8_t sve_vq;
@@ -520,17 +520,13 @@ test_result_t host_sve_realm_check_vectors_leaked(void)
* be either 0 or the old values filled by NS world.
* TODO: check if upper bits are zero
*/
- regs_base_wr = (uint8_t *)&ns_sve_z_regs_write;
- regs_base_rd = (uint8_t *)&ns_sve_z_regs_read;
-
- rc = TEST_RESULT_SUCCESS;
- for (int i = 0U; i < SVE_NUM_VECTORS; i++) {
- if (memcmp(regs_base_wr + (i * SVE_VQ_TO_BYTES(sve_vq)),
- regs_base_rd + (i * SVE_VQ_TO_BYTES(sve_vq)),
- SVE_VQ_TO_BYTES(sve_vq)) != 0) {
- ERROR("SVE Z%d mismatch\n", i);
- rc = TEST_RESULT_FAIL;
- }
+ bitmap = sve_z_regs_compare(&ns_sve_z_regs_write, &ns_sve_z_regs_read);
+ if (bitmap != 0UL) {
+ ERROR("SVE Z regs compare failed (bitmap: 0x%016llx)\n",
+ bitmap);
+ rc = TEST_RESULT_FAIL;
+ } else {
+ rc = TEST_RESULT_SUCCESS;
}
rm_realm: