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/[email protected]/ 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 -- 2.34.1

