feat(ff-a): memory share bump to v1.1 EAC0
Hafnium was updated to match FF-A v1.1 EAC0 [1].
This is the equivalent change for FF-A memory sharing
tests.
[1] https://review.trustedfirmware.org/c/hafnium/hafnium/+/15012
Signed-off-by: J-Alves <joao.alves@arm.com>
Change-Id: Ibf39ac35e1c7e336843be848fb389401dd792516
diff --git a/include/runtime_services/ffa_helpers.h b/include/runtime_services/ffa_helpers.h
index 8ca51d3..8ce6ed3 100644
--- a/include/runtime_services/ffa_helpers.h
+++ b/include/runtime_services/ffa_helpers.h
@@ -352,10 +352,10 @@
typedef uint8_t ffa_memory_access_permissions_t;
/**
- * This corresponds to table "Memory region attributes descriptor" of the FF-A
- * 1.0 specification.
+ * This corresponds to table 10.18 of the FF-A v1.1 EAC0 specification, "Memory
+ * region attributes descriptor".
*/
-typedef uint8_t ffa_memory_attributes_t;
+typedef uint16_t ffa_memory_attributes_t;
#define FFA_DATA_ACCESS_OFFSET (0x0U)
#define FFA_DATA_ACCESS_MASK ((0x3U) << FFA_DATA_ACCESS_OFFSET)
@@ -419,7 +419,8 @@
/**
* A set of contiguous pages which is part of a memory region. This corresponds
- * to table "Constituent memory region descriptor" of the FFA 1.0 specification.
+ * to table 10.14 of the FF-A v1.1 EAC0 specification, "Constituent memory
+ * region descriptor".
*/
struct ffa_memory_region_constituent {
/**
@@ -434,8 +435,8 @@
};
/**
- * A set of pages comprising a memory region. This corresponds to table
- * "Composite memory region descriptor" of the FFA 1.0 specification.
+ * A set of pages comprising a memory region. This corresponds to table 10.13 of
+ * the FF-A v1.1 EAC0 specification, "Composite memory region descriptor".
*/
struct ffa_composite_memory_region {
/**
@@ -520,9 +521,9 @@
/**
* Information about a set of pages which are being shared. This corresponds to
- * table "Lend, donate or share memory transaction descriptor" of the FFA
- * 1.0 specification. Note that it is also used for retrieve requests and
- * responses.
+ * table 10.20 of the FF-A v1.1 EAC0 specification, "Lend, donate or share
+ * memory transaction descriptor". Note that it is also used for retrieve
+ * requests and responses.
*/
struct ffa_memory_region {
/**
@@ -531,8 +532,6 @@
*/
ffa_id_t sender;
ffa_memory_attributes_t attributes;
- /** Reserved field, must be 0. */
- uint8_t reserved_0;
/** Flags to control behaviour of the transaction. */
ffa_memory_region_flags_t flags;
ffa_memory_handle_t handle;
@@ -541,15 +540,22 @@
* memory region.
*/
uint64_t tag;
- /** Reserved field, must be 0. */
- uint32_t reserved_1;
+ /** Size of the memory access descriptor. */
+ uint32_t memory_access_desc_size;
/**
* The number of `ffa_memory_access` entries included in this
* transaction.
*/
uint32_t receiver_count;
/**
- * An array of `attribute_count` endpoint memory access descriptors.
+ * Offset of the 'receivers' field, which relates to the memory access
+ * descriptors.
+ */
+ uint32_t receivers_offset;
+ /** Reserved field (12 bytes) must be 0. */
+ uint32_t reserved[3];
+ /**
+ * An array of `receiver_count` endpoint memory access descriptors.
* Each one specifies a memory region offset, an endpoint and the
* attributes with which this memory region should be mapped in that
* endpoint's page table.
@@ -559,7 +565,8 @@
/**
* Descriptor used for FFA_MEM_RELINQUISH requests. This corresponds to table
- * "Descriptor to relinquish a memory region" of the FFA 1.0 specification.
+ * 16.25 of the FF-A v1.1 EAC0 specification, "Descriptor to relinquish a memory
+ * region".
*/
struct ffa_mem_relinquish {
ffa_memory_handle_t handle;