Message ID | 20230717072107.753304-7-jens.wiklander@linaro.org (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | Xen FF-A mediator | expand |
Hi Jens, > On 17 Jul 2023, at 09:20, Jens Wiklander <jens.wiklander@linaro.org> wrote: > > According to DEN0077A version 1.1 REL0, section 13.8, defines > flags used for the function FFA_PARTITION_INFO_GET. > > Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> > Reviewed-by: Henry Wang <Henry.Wang@arm.com> Reviewed-by: Bertrand Marquis <bertrand.marquis@arm.com> Cheers Bertrand > --- > xen/arch/arm/tee/ffa.c | 34 ++++++++++++++++++++++++++++++++++ > 1 file changed, 34 insertions(+) > > diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c > index 2296e3115beb..c1dead73d1f2 100644 > --- a/xen/arch/arm/tee/ffa.c > +++ b/xen/arch/arm/tee/ffa.c > @@ -57,6 +57,40 @@ > #define FFA_MY_VERSION MAKE_FFA_VERSION(FFA_MY_VERSION_MAJOR, \ > FFA_MY_VERSION_MINOR) > > +/* > + * Flags to determine partition properties in FFA_PARTITION_INFO_GET return > + * message: > + * BIT(0): Supports receipt of direct requests > + * BIT(1): Can send direct requests > + * BIT(2): Can send and receive indirect messages > + * BIT(3): Supports receipt of notifications > + * BIT(4-5): Partition ID is a PE endpoint ID > + * BIT(6): Partition must be informed about each VM that is created by > + * the Hypervisor > + * BIT(7): Partition must be informed about each VM that is destroyed by > + * the Hypervisor > + * BIT(8): Partition runs in the AArch64 execution state else AArch32 > + * execution state > + */ > +#define FFA_PART_PROP_DIRECT_REQ_RECV BIT(0, U) > +#define FFA_PART_PROP_DIRECT_REQ_SEND BIT(1, U) > +#define FFA_PART_PROP_INDIRECT_MSGS BIT(2, U) > +#define FFA_PART_PROP_RECV_NOTIF BIT(3, U) > +#define FFA_PART_PROP_IS_TYPE_MASK (3U << 4) > +#define FFA_PART_PROP_IS_PE_ID (0U << 4) > +#define FFA_PART_PROP_IS_SEPID_INDEP (1U << 4) > +#define FFA_PART_PROP_IS_SEPID_DEP (2U << 4) > +#define FFA_PART_PROP_IS_AUX_ID (3U << 4) > +#define FFA_PART_PROP_NOTIF_CREATED BIT(6, U) > +#define FFA_PART_PROP_NOTIF_DESTROYED BIT(7, U) > +#define FFA_PART_PROP_AARCH64_STATE BIT(8, U) > + > +/* > + * Flag used as parameter to FFA_PARTITION_INFO_GET to return partition > + * count only. > + */ > +#define FFA_PARTITION_INFO_GET_COUNT_FLAG BIT(0, U) > + > /* Function IDs */ > #define FFA_ERROR 0x84000060U > #define FFA_SUCCESS_32 0x84000061U > -- > 2.34.1 >
diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c index 2296e3115beb..c1dead73d1f2 100644 --- a/xen/arch/arm/tee/ffa.c +++ b/xen/arch/arm/tee/ffa.c @@ -57,6 +57,40 @@ #define FFA_MY_VERSION MAKE_FFA_VERSION(FFA_MY_VERSION_MAJOR, \ FFA_MY_VERSION_MINOR) +/* + * Flags to determine partition properties in FFA_PARTITION_INFO_GET return + * message: + * BIT(0): Supports receipt of direct requests + * BIT(1): Can send direct requests + * BIT(2): Can send and receive indirect messages + * BIT(3): Supports receipt of notifications + * BIT(4-5): Partition ID is a PE endpoint ID + * BIT(6): Partition must be informed about each VM that is created by + * the Hypervisor + * BIT(7): Partition must be informed about each VM that is destroyed by + * the Hypervisor + * BIT(8): Partition runs in the AArch64 execution state else AArch32 + * execution state + */ +#define FFA_PART_PROP_DIRECT_REQ_RECV BIT(0, U) +#define FFA_PART_PROP_DIRECT_REQ_SEND BIT(1, U) +#define FFA_PART_PROP_INDIRECT_MSGS BIT(2, U) +#define FFA_PART_PROP_RECV_NOTIF BIT(3, U) +#define FFA_PART_PROP_IS_TYPE_MASK (3U << 4) +#define FFA_PART_PROP_IS_PE_ID (0U << 4) +#define FFA_PART_PROP_IS_SEPID_INDEP (1U << 4) +#define FFA_PART_PROP_IS_SEPID_DEP (2U << 4) +#define FFA_PART_PROP_IS_AUX_ID (3U << 4) +#define FFA_PART_PROP_NOTIF_CREATED BIT(6, U) +#define FFA_PART_PROP_NOTIF_DESTROYED BIT(7, U) +#define FFA_PART_PROP_AARCH64_STATE BIT(8, U) + +/* + * Flag used as parameter to FFA_PARTITION_INFO_GET to return partition + * count only. + */ +#define FFA_PARTITION_INFO_GET_COUNT_FLAG BIT(0, U) + /* Function IDs */ #define FFA_ERROR 0x84000060U #define FFA_SUCCESS_32 0x84000061U