[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