[PATCH v2 00/11] arm64: FF-A runtime transport for EFI variables

Heinrich Schuchardt xypron.glpk at gmx.de
Thu Jun 11 07:58:45 CEST 2026


On 5/14/26 14:49, Harsimran Singh Tungal wrote:
> Hi all,
> 
> This series adds FF-A runtime transport support so EFI variable runtime
> services can communicate with the secure world after ExitBootServices().
> It also extends tests, docs, and board configs to validate the runtime
> path and keep boot‑time behavior aligned with the runtime flow.
> 
> Changes in this series:
> - Add EFI runtime-safe memset helper and FF-A runtime transport support.
> - Implement FF-A runtime communication in the EFI variable TEE backend.
> - Enable runtime variable operations and move helpers to avoid conflicts.
> - Add sandbox runtime transport tests and metadata reuse.
> - Extend EFI selftests for runtime variables and bootefi selftest config.
> - Document the FF-A runtime transport and selftest behavior.
> 
> Changes in v2:
> 
> Address Simon Glass's review comments:
> - Fix `efi_memset_runtime()` style, declaration, and byte cast
> - Tighten the FF-A runtime context failure path, clean up `arm-ffa-runtime.c`
>    style issues, and move ExitBootServices event registration earlier in probe
> - Add shared-buffer bounds/alignment checks, and tightening comments/kernel-doc
> - Document the FF-A shared buffer cacheline-alignment requirement and add
>    BUILD_BUG_ON() checks for the address
> - Cache attributes before the shared buffer is reused, moving the read-only
>    check earlier, and split the `u16_strsize()` related change in separate patch
> - Reword commit messages for the runtime helper relocation
> - Rework the non-volatile runtime variable selftest into setup/verify phases
> - Extend the sandbox FF-A runtime tests with no-context coverage,
>    runtime-context reset, and separate errno-mapping coverage
> - Refresh the FF-A runtime transport and bootefi documentation
> - Drop patch 12 in v1, as ffa_mm_communicate handles both runtime and
>    boottime capabilities in v2
> - Squash patch 8 and patch 9 from v1
> 
> Address Ilias Apalodimas's review comments:
> - Reuse common MM SP error mapping for boot and runtime paths
> - Rename runtime-phase tracking to reflect the ExitBootServices transition
> - Collapse duplicated boot-time and runtime MM communication helpers into common
>    implementations
> - Keep the arm64 cache-maintenance path runtime-safe.
> - Move FF-A shared-buffer runtime memory-map registration to the end of
>    variable-service initialization
> 
> Link to v1: https://lore.kernel.org/u-boot/20260424173151.371134-1-harsimransingh.tungal@arm.com/
> 
> Harsimran Singh Tungal (11):
>    efi_loader: add runtime memset helper
>    arm-ffa: add FF-A bus runtime support
>    efi_loader: add FF-A runtime support in EFI variable TEE driver
>    efi_loader: enable EFI runtime SetVariable()/GetVariable() using FF-A
>      transport
>    charset: mark u16_strsize() as __efi_runtime
>    efi_loader: move runtime variable read helpers to efi_variable.c
>    corstone1000: enable bootefi selftest
>    efi: selftest: add runtime variable tests with non-volatile storage
>    test: dm: add sandbox FF-A runtime transport tests
>    doc: arm64: document FF-A runtime path for EFI variables
>    doc: bootefi: note two-phase runtime variables selftest
> 
>   arch/arm/cpu/armv8/cache.S                    |   8 +
>   arch/arm/cpu/armv8/cache_v8.c                 |  13 +-
>   arch/sandbox/include/asm/sandbox_arm_ffa.h    |  16 +-
>   configs/corstone1000_defconfig                |   3 +
>   doc/arch/arm64.ffa.rst                        |  86 ++-
>   doc/usage/cmd/armffa.rst                      |  11 +
>   doc/usage/cmd/bootefi.rst                     |  27 +
>   drivers/firmware/arm-ffa/Kconfig              |  11 +
>   drivers/firmware/arm-ffa/Makefile             |   4 +-
>   drivers/firmware/arm-ffa/arm-ffa-runtime.c    | 295 ++++++++
>   drivers/firmware/arm-ffa/arm-ffa-uclass.c     | 113 +--
>   drivers/firmware/arm-ffa/arm-ffa.c            |  16 +-
>   drivers/firmware/arm-ffa/ffa-emul-uclass.c    |  48 +-
>   include/arm_ffa.h                             |  16 +-
>   include/arm_ffa_priv.h                        |  22 +-
>   include/arm_ffa_runtime.h                     | 191 +++++
>   include/efi_loader.h                          |   3 +
>   lib/charset.c                                 |   2 +-
>   lib/efi_loader/Kconfig                        |   4 +
>   lib/efi_loader/efi_runtime.c                  |  20 +
>   lib/efi_loader/efi_var_common.c               |  24 -
>   lib/efi_loader/efi_variable.c                 |  24 +
>   lib/efi_loader/efi_variable_tee.c             | 650 +++++++++++++---
>   .../efi_selftest_variables_runtime.c          | 713 ++++++++++++------
>   test/dm/Makefile                              |   3 +-
>   test/dm/ffa.c                                 |   6 +-
>   test/dm/ffa_runtime.c                         | 129 ++++
>   27 files changed, 1962 insertions(+), 496 deletions(-)
>   create mode 100644 drivers/firmware/arm-ffa/arm-ffa-runtime.c
>   create mode 100644 include/arm_ffa_runtime.h
>   create mode 100644 test/dm/ffa_runtime.c
> 


Hello Harsimram,

Due to the open questions I guess this series should not be merged 
before a v3 has been sent to address these.

Best regards

Heinrich


More information about the U-Boot mailing list