Hi,
This patch sets add a FF-A [1] mediator modeled after the TEE mediator
already present in Xen. The FF-A mediator implements the subset of the FF-A
1.1 specification needed to communicate with OP-TEE using FF-A as transport
mechanism instead of SMC/HVC as with the TEE mediator. It allows a similar
design in OP-TEE as with the TEE mediator where OP-TEE presents one virtual
partition of itself to each guest in Xen.
The FF-A mediator is generic in the sense it has nothing OP-TEE specific
except that only the subset needed for OP-TEE is implemented so far. The
hooks needed to inform OP-TEE that a guest is created or destroyed is part
of the FF-A specification.
It should be possible to extend the FF-A mediator to implement a larger
portion of the FF-A 1.1 specification without breaking with the way OP-TEE
is communicated with here. So it should be possible to support any TEE or
Secure Partition using FF-A as transport with this mediator.
[1] https://developer.arm.com/documentation/den0077/latest
Thanks,
Jens
v1->v2:
* Rebased on staging to resolve some merge conflicts as requested
Jens Wiklander (2):
xen/arm: smccc: add support for SMCCCv1.2 extended input/output
registers
xen/arm: add FF-A mediator
xen/arch/arm/Kconfig | 11 +
xen/arch/arm/Makefile | 1 +
xen/arch/arm/arm64/smc.S | 43 +
xen/arch/arm/domain.c | 10 +
xen/arch/arm/ffa.c | 1624 +++++++++++++++++++++++++++++
xen/arch/arm/include/asm/domain.h | 4 +
xen/arch/arm/include/asm/ffa.h | 71 ++
xen/arch/arm/include/asm/smccc.h | 42 +
xen/arch/arm/vsmc.c | 19 +-
9 files changed, 1821 insertions(+), 4 deletions(-)
create mode 100644 xen/arch/arm/ffa.c
create mode 100644 xen/arch/arm/include/asm/ffa.h
--
2.31.1