[PATCH v2 00/12] xen/arm: ffa: FF-A v1.2 support

Bertrand Marquis posted 12 patches 1 month, 3 weeks ago
Patches applied successfully (tree, apply log)
git fetch https://gitlab.com/xen-project/patchew/xen tags/patchew/cover.1765807707.git.bertrand.marquis@arm.com
xen/arch/arm/include/asm/tee/ffa.h |   3 +-
xen/arch/arm/tee/ffa.c             | 202 ++++++++++++++++------
xen/arch/arm/tee/ffa_msg.c         | 232 +++++++++++++++++++------
xen/arch/arm/tee/ffa_notif.c       |  14 +-
xen/arch/arm/tee/ffa_partinfo.c    | 263 +++++++++++++++++------------
xen/arch/arm/tee/ffa_private.h     | 154 +++++++++++------
xen/arch/arm/tee/ffa_rxtx.c        | 237 +++++++++++++++++++++-----
xen/arch/arm/tee/ffa_shm.c         |  52 +++---
8 files changed, 827 insertions(+), 330 deletions(-)
[PATCH v2 00/12] xen/arm: ffa: FF-A v1.2 support
Posted by Bertrand Marquis 1 month, 3 weeks ago
This series updates Xen’s FF-A mediator on Arm to implement the FF-A
v1.2 interface while keeping existing v1.0/v1.1 guests working.

Patches 1–7 rework the low-level plumbing:

  1) add the FF-A v1.2 function IDs and probe the new ABIs
  2) track per-VM FFA_VERSION state and enforce negotiation
  3) Fix is_64bit initialisation
  4) harden RX/TX mapping and validation
  5) rework SPMC RX/TX buffer management so access is serialized and
     RX buffers are always released back to the SPMC
  6) rework VM RX/TX buffer to have generic acquire/release function
     equivalent to SPMC access functions
  7) switch the mediator to spec-compliant signed 32-bit status codes

Patches 8–11 update the data structures and direct-call paths:

  8) add ffa_uuid helpers and rework partition-info handling
  9) add FFA_RUN support
  10) add the v1.1/v1.2 SEND2 header layout
  11) add MSG_SEND_DIRECT_REQ2/RESP2 support and marshal the extended
     register set for v1.2 guests

Patch 12 tightens the dispatcher and advertises FF-A v1.2:

  - reject SMCCC64 calls from AArch32 guests
  - expose RX/TX capacity fields
  - bump Xen's FF-A version to 1.2 once the implementation is complete

v1.0/v1.1 guests continue to use the v1.1 ABI without behaviour changes,
while v1.2 guests can negotiate the wider ABI and use RUN, SEND2, and
DIRECT_REQ2/RESP2 with the extended register set.

This serie was validated through gitlab-ci here:
https://gitlab.com/xen-project/people/bmarquis/xen-ffa-research/-/tree/ffa-v1.2/v2
Build pipeline for the serie:
https://gitlab.com/xen-project/people/bmarquis/xen-ffa-research/-/pipelines/2215466965

Changes since v1:
- Rebase on staging
- Remove invalid ASSERT in patch 5
- Add extra comment to use ACCESS_ONCE for guest_vers in patch 2
- Add Jens R-b in other patches

Changes since v0:
- Rework version negotiation to prevent concurrency issues
- Introduce patch 3 to fix an init bug
- Introduce patch 5 to make VM RX/TX buffer acquire/release working in
  the same way as SPMC RX/TX buffers
- minor fixes described in each patch changelog


Bertrand Marquis (12):
  xen/arm: ffa: add FF-A v1.2 function IDs
  xen/arm: ffa: per-VM FFA_VERSION negotiation state
  xen/arm: ffa: Fix is_64bit init
  xen/arm: ffa: harden RX/TX mapping
  xen/arm: ffa: rework SPMC RX/TX buffer management
  xen/arm: ffa: rework VM RX/TX buffer management
  xen/arm: ffa: use signed 32-bit status codes
  xen/arm: ffa: add UUID helpers for partition info
  xen/arm: ffa: Add FFA_RUN support
  xen/arm: ffa: add v1.2 SEND2 header layout
  xen/arm: ffa: add MSG_SEND_DIRECT_REQ2 support
  xen/arm: ffa: advertise FF-A v1.2

 xen/arch/arm/include/asm/tee/ffa.h |   3 +-
 xen/arch/arm/tee/ffa.c             | 202 ++++++++++++++++------
 xen/arch/arm/tee/ffa_msg.c         | 232 +++++++++++++++++++------
 xen/arch/arm/tee/ffa_notif.c       |  14 +-
 xen/arch/arm/tee/ffa_partinfo.c    | 263 +++++++++++++++++------------
 xen/arch/arm/tee/ffa_private.h     | 154 +++++++++++------
 xen/arch/arm/tee/ffa_rxtx.c        | 237 +++++++++++++++++++++-----
 xen/arch/arm/tee/ffa_shm.c         |  52 +++---
 8 files changed, 827 insertions(+), 330 deletions(-)

-- 
2.51.2


Re: [PATCH v2 00/12] xen/arm: ffa: FF-A v1.2 support
Posted by Bertrand Marquis 1 month ago
Hi,

Gentle ping: This serie has been fully reviewed by Jens and would need a maintainer ack or review.

Cheers
Bertrand

> On 15 Dec 2025, at 15:49, Bertrand Marquis <Bertrand.Marquis@arm.com> wrote:
> 
> This series updates Xen’s FF-A mediator on Arm to implement the FF-A
> v1.2 interface while keeping existing v1.0/v1.1 guests working.
> 
> Patches 1–7 rework the low-level plumbing:
> 
>  1) add the FF-A v1.2 function IDs and probe the new ABIs
>  2) track per-VM FFA_VERSION state and enforce negotiation
>  3) Fix is_64bit initialisation
>  4) harden RX/TX mapping and validation
>  5) rework SPMC RX/TX buffer management so access is serialized and
>     RX buffers are always released back to the SPMC
>  6) rework VM RX/TX buffer to have generic acquire/release function
>     equivalent to SPMC access functions
>  7) switch the mediator to spec-compliant signed 32-bit status codes
> 
> Patches 8–11 update the data structures and direct-call paths:
> 
>  8) add ffa_uuid helpers and rework partition-info handling
>  9) add FFA_RUN support
>  10) add the v1.1/v1.2 SEND2 header layout
>  11) add MSG_SEND_DIRECT_REQ2/RESP2 support and marshal the extended
>     register set for v1.2 guests
> 
> Patch 12 tightens the dispatcher and advertises FF-A v1.2:
> 
>  - reject SMCCC64 calls from AArch32 guests
>  - expose RX/TX capacity fields
>  - bump Xen's FF-A version to 1.2 once the implementation is complete
> 
> v1.0/v1.1 guests continue to use the v1.1 ABI without behaviour changes,
> while v1.2 guests can negotiate the wider ABI and use RUN, SEND2, and
> DIRECT_REQ2/RESP2 with the extended register set.
> 
> This serie was validated through gitlab-ci here:
> https://gitlab.com/xen-project/people/bmarquis/xen-ffa-research/-/tree/ffa-v1.2/v2
> Build pipeline for the serie:
> https://gitlab.com/xen-project/people/bmarquis/xen-ffa-research/-/pipelines/2215466965
> 
> Changes since v1:
> - Rebase on staging
> - Remove invalid ASSERT in patch 5
> - Add extra comment to use ACCESS_ONCE for guest_vers in patch 2
> - Add Jens R-b in other patches
> 
> Changes since v0:
> - Rework version negotiation to prevent concurrency issues
> - Introduce patch 3 to fix an init bug
> - Introduce patch 5 to make VM RX/TX buffer acquire/release working in
>  the same way as SPMC RX/TX buffers
> - minor fixes described in each patch changelog
> 
> 
> Bertrand Marquis (12):
>  xen/arm: ffa: add FF-A v1.2 function IDs
>  xen/arm: ffa: per-VM FFA_VERSION negotiation state
>  xen/arm: ffa: Fix is_64bit init
>  xen/arm: ffa: harden RX/TX mapping
>  xen/arm: ffa: rework SPMC RX/TX buffer management
>  xen/arm: ffa: rework VM RX/TX buffer management
>  xen/arm: ffa: use signed 32-bit status codes
>  xen/arm: ffa: add UUID helpers for partition info
>  xen/arm: ffa: Add FFA_RUN support
>  xen/arm: ffa: add v1.2 SEND2 header layout
>  xen/arm: ffa: add MSG_SEND_DIRECT_REQ2 support
>  xen/arm: ffa: advertise FF-A v1.2
> 
> xen/arch/arm/include/asm/tee/ffa.h |   3 +-
> xen/arch/arm/tee/ffa.c             | 202 ++++++++++++++++------
> xen/arch/arm/tee/ffa_msg.c         | 232 +++++++++++++++++++------
> xen/arch/arm/tee/ffa_notif.c       |  14 +-
> xen/arch/arm/tee/ffa_partinfo.c    | 263 +++++++++++++++++------------
> xen/arch/arm/tee/ffa_private.h     | 154 +++++++++++------
> xen/arch/arm/tee/ffa_rxtx.c        | 237 +++++++++++++++++++++-----
> xen/arch/arm/tee/ffa_shm.c         |  52 +++---
> 8 files changed, 827 insertions(+), 330 deletions(-)
> 
> -- 
> 2.51.2
> 
> 

Re: [PATCH v2 00/12] xen/arm: ffa: FF-A v1.2 support
Posted by Julien Grall 1 week, 3 days ago
Hi Bertrand,

On 08/01/2026 07:59, Bertrand Marquis wrote:
> Gentle ping: This serie has been fully reviewed by Jens and would need a maintainer ack or review.

As we discussed during the last Arm maintainer call, as you maintain TEE 
with Volodymyr, you technically only need a reviewed-by from someone 
from the community with suitable stature to review.

I think in this case, you meet all the requirements with Jen's acked-by. 
So I will commit the series as-is.

Cheers,

-- 
Julien Grall
Re: [PATCH v2 00/12] xen/arm: ffa: FF-A v1.2 support
Posted by Bertrand Marquis 1 week, 2 days ago
Hi Julien,

> On 28 Jan 2026, at 22:50, Julien Grall <julien@xen.org> wrote:
> 
> Hi Bertrand,
> 
> On 08/01/2026 07:59, Bertrand Marquis wrote:
>> Gentle ping: This serie has been fully reviewed by Jens and would need a maintainer ack or review.
> 
> As we discussed during the last Arm maintainer call, as you maintain TEE with Volodymyr, you technically only need a reviewed-by from someone from the community with suitable stature to review.
> 
> I think in this case, you meet all the requirements with Jen's acked-by. So I will commit the series as-is.

Thanks a lot.

Would it make sense to add Jens as reviewer for tee ?
He is involved and knowledgeable in both ffa and optee implementation.

@Jens: Would you be ok with that ?

Cheers
Bertrand
Re: [PATCH v2 00/12] xen/arm: ffa: FF-A v1.2 support
Posted by Jens Wiklander 1 week, 2 days ago
Hi all,

On Thu, Jan 29, 2026 at 8:32 AM Bertrand Marquis
<Bertrand.Marquis@arm.com> wrote:
>
> Hi Julien,
>
> > On 28 Jan 2026, at 22:50, Julien Grall <julien@xen.org> wrote:
> >
> > Hi Bertrand,
> >
> > On 08/01/2026 07:59, Bertrand Marquis wrote:
> >> Gentle ping: This serie has been fully reviewed by Jens and would need a maintainer ack or review.
> >
> > As we discussed during the last Arm maintainer call, as you maintain TEE with Volodymyr, you technically only need a reviewed-by from someone from the community with suitable stature to review.
> >
> > I think in this case, you meet all the requirements with Jen's acked-by. So I will commit the series as-is.
>
> Thanks a lot.
>
> Would it make sense to add Jens as reviewer for tee ?
> He is involved and knowledgeable in both ffa and optee implementation.
>
> @Jens: Would you be ok with that ?

Yes, that's OK.

Cheers,
Jens