test(ff-a): update partition info to include uuids
The ffa_partition_info_get interface has been updated in spm to
return the uuid of the partition in the descriptor. Updates the
tests to check this.
Signed-off-by: Daniel Boulby <daniel.boulby@arm.com>
Change-Id: I8f4cc4a26a781288896e56977c198c69fa09d974
diff --git a/include/runtime_services/ffa_endpoints.h b/include/runtime_services/ffa_endpoints.h
index 82e64a4..88055c4 100644
--- a/include/runtime_services/ffa_endpoints.h
+++ b/include/runtime_services/ffa_endpoints.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2020-2021, Arm Limited. All rights reserved.
+ * Copyright (c) 2020-2022, Arm Limited. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
@@ -13,6 +13,7 @@
#define PRIMARY_UUID {0x1e67b5b4, 0xe14f904a, 0x13fb1fb8, 0xcbdae1da}
#define SECONDARY_UUID {0x092358d1, 0xb94723f0, 0x64447c82, 0xc88f57f5}
#define TERTIARY_UUID {0x735cb579, 0xb9448c1d, 0xe1619385, 0xd2d80a77}
+#define IVY_UUID {0xd883baea, 0xaf4eafba, 0xfdf74481, 0xa744e5cb}
/* vcpu_count of cactus SPs. */
#define PRIMARY_EXEC_CTX_COUNT PLATFORM_CORE_COUNT
diff --git a/include/runtime_services/ffa_helpers.h b/include/runtime_services/ffa_helpers.h
index 03ac754..e4929b7 100644
--- a/include/runtime_services/ffa_helpers.h
+++ b/include/runtime_services/ffa_helpers.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018-2021, Arm Limited. All rights reserved.
+ * Copyright (c) 2018-2022, Arm Limited. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
@@ -57,6 +57,10 @@
/** Partition property: partition can receive notifications. */
#define FFA_PARTITION_NOTIFICATION 0x8
+/**
+ * Partition info descriptor as defined in Table 13.34 of the v1.1 BETA0
+ * FF-A Specification
+ */
struct ffa_partition_info {
/** The ID of the VM the information is about */
ffa_id_t id;
@@ -64,6 +68,8 @@
uint16_t exec_context;
/** The Partition's properties, e.g. supported messaging methods */
uint32_t properties;
+ /** The uuid of the partition */
+ struct ffa_uuid uuid;
};
static inline uint32_t ffa_func_id(smc_ret_values val)
diff --git a/spm/cactus/cactus_tests/cactus_test_ffa.c b/spm/cactus/cactus_tests/cactus_test_ffa.c
index 2e47ebc..bca3984 100644
--- a/spm/cactus/cactus_tests/cactus_test_ffa.c
+++ b/spm/cactus/cactus_tests/cactus_test_ffa.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018-2021, Arm Limited. All rights reserved.
+ * Copyright (c) 2018-2022, Arm Limited. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
@@ -18,12 +18,12 @@
/* FFA version test helpers */
#define FFA_MAJOR 1U
-#define FFA_MINOR 0U
+#define FFA_MINOR 1U
static uint32_t spm_version;
static const struct ffa_uuid sp_uuids[] = {
- {PRIMARY_UUID}, {SECONDARY_UUID}, {TERTIARY_UUID}
+ {PRIMARY_UUID}, {SECONDARY_UUID}, {TERTIARY_UUID}, {IVY_UUID}
};
static const struct ffa_uuid null_uuid = { .uuid = {0} };
@@ -34,7 +34,8 @@
.exec_context = PRIMARY_EXEC_CTX_COUNT,
.properties = (FFA_PARTITION_DIRECT_REQ_RECV |
FFA_PARTITION_DIRECT_REQ_SEND |
- FFA_PARTITION_NOTIFICATION)
+ FFA_PARTITION_NOTIFICATION),
+ .uuid = sp_uuids[0]
},
/* Secondary partition info */
{
@@ -42,7 +43,8 @@
.exec_context = SECONDARY_EXEC_CTX_COUNT,
.properties = (FFA_PARTITION_DIRECT_REQ_RECV |
FFA_PARTITION_DIRECT_REQ_SEND |
- FFA_PARTITION_NOTIFICATION)
+ FFA_PARTITION_NOTIFICATION),
+ .uuid = sp_uuids[1]
},
/* Tertiary partition info */
{
@@ -50,13 +52,16 @@
.exec_context = TERTIARY_EXEC_CTX_COUNT,
.properties = (FFA_PARTITION_DIRECT_REQ_RECV |
FFA_PARTITION_DIRECT_REQ_SEND |
- FFA_PARTITION_NOTIFICATION)
+ FFA_PARTITION_NOTIFICATION),
+ .uuid = sp_uuids[2]
},
/* Ivy partition info */
{
.id = SP_ID(4),
.exec_context = IVY_EXEC_CTX_COUNT,
- .properties = (FFA_PARTITION_DIRECT_REQ_RECV | FFA_PARTITION_DIRECT_REQ_SEND)
+ .properties = (FFA_PARTITION_DIRECT_REQ_RECV |
+ FFA_PARTITION_DIRECT_REQ_SEND),
+ .uuid = sp_uuids[3]
}
};
diff --git a/tftf/tests/runtime_services/secure_service/spm_common.c b/tftf/tests/runtime_services/secure_service/spm_common.c
index ff4cb76..f6800ce 100644
--- a/tftf/tests/runtime_services/secure_service/spm_common.c
+++ b/tftf/tests/runtime_services/secure_service/spm_common.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2021, Arm Limited. All rights reserved.
+ * Copyright (c) 2021-2022, Arm Limited. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
@@ -559,6 +559,22 @@
info[i].properties);
result = false;
}
+ if (info[i].uuid.uuid[0] != expected[i].uuid.uuid[0] ||
+ info[i].uuid.uuid[1] != expected[i].uuid.uuid[1] ||
+ info[i].uuid.uuid[2] != expected[i].uuid.uuid[2] ||
+ info[i].uuid.uuid[3] != expected[i].uuid.uuid[3]) {
+ ERROR("Wrong UUID. Expected %x %x %x %x, "
+ "got %x %x %x %x\n",
+ expected[i].uuid.uuid[0],
+ expected[i].uuid.uuid[1],
+ expected[i].uuid.uuid[2],
+ expected[i].uuid.uuid[3],
+ info[i].uuid.uuid[0],
+ info[i].uuid.uuid[1],
+ info[i].uuid.uuid[2],
+ info[i].uuid.uuid[3]);
+ result = false;
+ }
}
}
diff --git a/tftf/tests/runtime_services/secure_service/test_ffa_setup_and_discovery.c b/tftf/tests/runtime_services/secure_service/test_ffa_setup_and_discovery.c
index 383ce02..58d661e 100644
--- a/tftf/tests/runtime_services/secure_service/test_ffa_setup_and_discovery.c
+++ b/tftf/tests/runtime_services/secure_service/test_ffa_setup_and_discovery.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2020-2021, Arm Limited. All rights reserved.
+ * Copyright (c) 2020-2022, Arm Limited. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
@@ -19,7 +19,7 @@
static struct mailbox_buffers mb;
static const struct ffa_uuid sp_uuids[] = {
- {PRIMARY_UUID}, {SECONDARY_UUID}, {TERTIARY_UUID}
+ {PRIMARY_UUID}, {SECONDARY_UUID}, {TERTIARY_UUID}, {IVY_UUID}
};
static const struct ffa_uuid null_uuid = { .uuid = {0} };
@@ -29,27 +29,31 @@
.id = SP_ID(1),
.exec_context = PRIMARY_EXEC_CTX_COUNT,
.properties = FFA_PARTITION_DIRECT_REQ_RECV |
- FFA_PARTITION_NOTIFICATION
+ FFA_PARTITION_NOTIFICATION,
+ .uuid = sp_uuids[0]
},
/* Secondary partition info */
{
.id = SP_ID(2),
.exec_context = SECONDARY_EXEC_CTX_COUNT,
.properties = FFA_PARTITION_DIRECT_REQ_RECV |
- FFA_PARTITION_NOTIFICATION
+ FFA_PARTITION_NOTIFICATION,
+ .uuid = sp_uuids[1]
},
/* Tertiary partition info */
{
.id = SP_ID(3),
.exec_context = TERTIARY_EXEC_CTX_COUNT,
.properties = FFA_PARTITION_DIRECT_REQ_RECV |
- FFA_PARTITION_NOTIFICATION
+ FFA_PARTITION_NOTIFICATION,
+ .uuid = sp_uuids[2]
},
/* Ivy partition info */
{
.id = SP_ID(4),
.exec_context = IVY_EXEC_CTX_COUNT,
- .properties = FFA_PARTITION_DIRECT_REQ_RECV
+ .properties = FFA_PARTITION_DIRECT_REQ_RECV,
+ .uuid = sp_uuids[3]
}
};