[SRU][N:linux-bluefield][PATCH v2 1/1] UBUNTU: [CONFIG] Disable CONFIG_ARM_FFA_TRANSPORT and CONFIG_ARM_FFA_SMCCC for OPTEE functionality
James Hurley
jahurley at nvidia.com
Mon Aug 18 17:33:27 UTC 2025
BugLink: https://bugs.launchpad.net/bugs/2120582
Need to disable the KCONFIG support for the ARM FF-A Transport to make OPTEE functional.
OP-TEE supports 2 communication transports and by default attempts to set up both transports.
(1) SMC - Secure Monitor Transport - this is the traditional and primary transport mechanism for OP-TEE.
(2) FF-A (Firmware Framework for Arm) Transport - this is new and added for Ubuntu 24.04
For the FF-A transport, the OPTEE driver depends on the FFA Kernel Module.
The FFA Kernel Module requires ARM SMCCC version 1.2 support. Ubuntu 24.04 kernel only supports ARM SMCCC
version 1.1 and below. What happens is when the FFA Kernel Module loads, it aborts since 1.2 is NOT supported
and is unloaded. Later the OPTEE driver uses an FFA API and tries calling into the FFA kernel Module
which has unloaded), resulting in the OPTEE driver getting an undefined symbol error and unloading itself.
This also results in the Msoft fTPM driver and tee-supplicant not loading either as they depend on the
OPTEE driver.
The fix is to disable the kernel configuration for the ARM FFA Transport. This results in OPTEE not calling
into the FFA kernel module and instead using its traditional SMC transport and loads and functions properly.
---
debian.bluefield/config/annotations | 2 ++
1 file changed, 2 insertions(+)
diff --git a/debian.bluefield/config/annotations b/debian.bluefield/config/annotations
index 9573eefe3041..d8bf7fc871e0 100644
--- a/debian.bluefield/config/annotations
+++ b/debian.bluefield/config/annotations
@@ -134,6 +134,8 @@ CONFIG_ARM64_PA_BITS_52 policy<{'arm64-bluefield-64k': '
CONFIG_ARM64_VA_BITS_39 policy<{'arm64': 'n', 'arm64-bluefield-64k': '-'}>
CONFIG_ARM64_VA_BITS_42 policy<{'arm64-bluefield-64k': 'n'}>
CONFIG_ARM64_VA_BITS_52 policy<{'arm64-bluefield-64k': 'n'}>
+CONFIG_ARM_FFA_SMCCC policy<{'arm64': '-'}>
+CONFIG_ARM_FFA_TRANSPORT policy<{'arm64': 'n'}>
CONFIG_ARM_SMMU_QCOM_DEBUG policy<{'arm64': 'y', 'arm64-bluefield-64k': 'n'}>
CONFIG_ATL1 policy<{'arm64': '-'}>
CONFIG_ATL1C policy<{'arm64': '-'}>
--
2.30.1
More information about the kernel-team
mailing list