Add FF-A v1.1 format FFA_PARTITION_INFO_GET support
FF-A v1.0 and v1.1 functions are conditionally compiled based on the
selected FF-A version macro value.
Signed-off-by: Imre Kis <imre.kis@arm.com>
Change-Id: I03fbdaa14202134066e693f74103a2a3be765a10
diff --git a/components/messaging/ffa/libsp/include/sp_discovery.h b/components/messaging/ffa/libsp/include/sp_discovery.h
index 977c875..968aee8 100644
--- a/components/messaging/ffa/libsp/include/sp_discovery.h
+++ b/components/messaging/ffa/libsp/include/sp_discovery.h
@@ -19,12 +19,33 @@
uint8_t uuid[16];
};
+#if CFG_FFA_VERSION >= FFA_VERSION_1_1
+enum sp_partition_id_type {
+ sp_partition_id_type_pe_endpoint_id = 0,
+ sp_partition_id_type_sepid_independent,
+ sp_partition_id_type_sepid_dependent,
+ sp_partition_id_type_auxiliary_id
+};
+
+enum sp_execution_state {
+ sp_execution_state_aarch32 = 0,
+ sp_execution_state_aarch64,
+};
+#endif /* CFG_FFA_VERSION */
+
struct sp_partition_info {
uint16_t partition_id;
uint16_t execution_context_count;
bool supports_direct_requests;
bool can_send_direct_requests;
bool supports_indirect_requests;
+#if CFG_FFA_VERSION >= FFA_VERSION_1_1
+ enum sp_partition_id_type partition_id_type;
+ bool inform_vm_create;
+ bool inform_vm_destroy;
+ enum sp_execution_state execution_state;
+ struct sp_uuid uuid;
+#endif /* CFG_FFA_VERSION */
};
/**
@@ -87,6 +108,19 @@
sp_result sp_discovery_partition_info_get_all(struct sp_partition_info info[],
uint32_t *count);
+#if CFG_FFA_VERSION >= FFA_VERSION_1_1
+/**
+ * @brief Queries the count of partitions.
+ *
+ * @param[in] uuid The UUID of the partition
+ * @param[out] count The count of matching partitions
+ *
+ * @return The SP API result
+ */
+sp_result sp_discovery_partition_info_get_count(const struct sp_uuid *uuid,
+ uint32_t *count);
+#endif /* CFG_FFA_VERSION */
+
#ifdef __cplusplus
}
#endif