mbox series

[0/8] arm_ffa: Add FFA_MEM_SHARE and FFA_MEM_RECLAIM support

Message ID 20241101142017.79311-1-abdellatif.elkhlifi@arm.com
Headers show
Series arm_ffa: Add FFA_MEM_SHARE and FFA_MEM_RECLAIM support | expand

Message

Abdellatif El Khlifi Nov. 1, 2024, 2:20 p.m. UTC
From: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>

Add to the FF-A bus FFA_MEM_SHARE and FFA_MEM_RECLAIM ABIs.

These FF-A ABIs are for memory management. They are used for sharing
memory between U-Boot and secure world.

FFA_MEM_SHARE starts a transaction to grant access to a memory region
to one or more Borrowers (aka Secure Partitions or endpoints).
FFA_MEM_RECLAIM restores exclusive access to a memory region back to
its Owner (U-Boot).

For more details about these ABIs please refer to the FF-A v1.0
specification [1]. For more details about FF-A in U-Boot please
refer to the readme [2].

This work is based on the implementation in Linux kernel [3].

This work is provided with sandbox support (emulation and test cases).

[1]: https://developer.arm.com/documentation/den0077/a/?lang=en
[2]: doc/arch/arm64.ffa.rst
[3]: commit cc2195fe536c28e192df5d07e6dd277af36814b4
     Files: drivers/firmware/arm_ffa/driver.c , include/linux/arm_ffa.h

Cc: Tom Rini <trini@konsulko.com>
Cc: Simon Glass <sjg@chromium.org>
Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Cc: Jens Wiklander <jens.wiklander@linaro.org>
Cc: Achin Gupta <achin.gupta@arm.com>
Cc: Drew Reed <Drew.Reed@arm.com>
Cc: Hugues Kamba Mpiana <Hugues.KambaMpiana@arm.com>

Cheers,
Abdellatif

Abdellatif El Khlifi (8):
  arm_ffa: Add NULL pointer check to the driver operations
  arm_ffa: Add FFA_MEM_SHARE support
  arm_ffa: Add FFA_MEM_RECLAIM support
  arm_ffa: sandbox: Replace the emulator error log with debug log
  arm_ffa: sandbox: Add FFA_MEM_SHARE emulation
  arm_ffa: sandbox: Add FFA_MEM_SHARE tests
  arm_ffa: sandbox: Add FFA_MEM_RECLAIM emulation
  arm_ffa: sandbox: Add FFA_MEM_RECLAIM tests

 .../include/asm/sandbox_arm_ffa_priv.h        |   5 +-
 doc/arch/arm64.ffa.rst                        |   4 +
 drivers/firmware/arm-ffa/arm-ffa-uclass.c     | 286 +++++++++++++++++-
 drivers/firmware/arm-ffa/arm-ffa.c            |   4 +-
 drivers/firmware/arm-ffa/ffa-emul-uclass.c    |  92 +++++-
 drivers/firmware/arm-ffa/sandbox_ffa.c        |   4 +-
 include/arm_ffa.h                             | 111 ++++++-
 include/arm_ffa_priv.h                        | 143 ++++++++-
 test/dm/ffa.c                                 |  73 ++++-
 9 files changed, 707 insertions(+), 15 deletions(-)


base-commit: 28dc47038edc4e93f32d75a357131bcf01a18d85

Comments

Abdellatif El Khlifi Nov. 7, 2024, 3:33 p.m. UTC | #1
Hi Simon, Tom,

> Add to the FF-A bus FFA_MEM_SHARE and FFA_MEM_RECLAIM ABIs.
> 
> These FF-A ABIs are for memory management. They are used for sharing
> memory between U-Boot and secure world.
> 
> FFA_MEM_SHARE starts a transaction to grant access to a memory region
> to one or more Borrowers (aka Secure Partitions or endpoints).
> FFA_MEM_RECLAIM restores exclusive access to a memory region back to
> its Owner (U-Boot).
> 
> For more details about these ABIs please refer to the FF-A v1.0
> specification [1]. For more details about FF-A in U-Boot please
> refer to the readme [2].
> 
> This work is based on the implementation in Linux kernel [3].
> 
> This work is provided with sandbox support (emulation and test cases).
> 
> [1]: https://developer.arm.com/documentation/den0077/a/?lang=en
> [2]: doc/arch/arm64.ffa.rst
> [3]: commit cc2195fe536c28e192df5d07e6dd277af36814b4
>      Files: drivers/firmware/arm_ffa/driver.c , include/linux/arm_ffa.h
> 
> Cc: Tom Rini <trini@konsulko.com>
> Cc: Simon Glass <sjg@chromium.org>
> Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
> Cc: Jens Wiklander <jens.wiklander@linaro.org>
> Cc: Achin Gupta <achin.gupta@arm.com>
> Cc: Drew Reed <Drew.Reed@arm.com>
> Cc: Hugues Kamba Mpiana <Hugues.KambaMpiana@arm.com>
> 
> Cheers,
> Abdellatif
> 
> Abdellatif El Khlifi (8):
>   arm_ffa: Add NULL pointer check to the driver operations
>   arm_ffa: Add FFA_MEM_SHARE support
>   arm_ffa: Add FFA_MEM_RECLAIM support
>   arm_ffa: sandbox: Replace the emulator error log with debug log
>   arm_ffa: sandbox: Add FFA_MEM_SHARE emulation
>   arm_ffa: sandbox: Add FFA_MEM_SHARE tests
>   arm_ffa: sandbox: Add FFA_MEM_RECLAIM emulation
>   arm_ffa: sandbox: Add FFA_MEM_RECLAIM tests
> 

A gentle reminder please. Your comments are welcome.

Cheers,
Abdellatif