[SRU][N:linux-bluefield][PATCH v1 1/1] UBUNTU: SAUCE: UBUNTU: [CONFIG] Fix OP-TEE driver load for Noble

James Hurley jahurley at nvidia.com
Thu Aug 14 15:59:10 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 (CONFIG_ARM_FFA_TRANSPORT and CONFIG_ARM_FFA_SMCCC) 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.master/config/annotations | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/debian.master/config/annotations b/debian.master/config/annotations
index 7c73cd54a6c4..3f636baed4db 100644
--- a/debian.master/config/annotations
+++ b/debian.master/config/annotations
@@ -1735,8 +1735,8 @@ CONFIG_ARM_ERRATA_857271                        policy<{'armhf': 'y'}>
 CONFIG_ARM_ERRATA_857272                        policy<{'armhf': 'y'}>
 CONFIG_ARM_EXYNOS_BUS_DEVFREQ                   policy<{'armhf': 'n'}>
 CONFIG_ARM_EXYNOS_CPUIDLE                       policy<{'armhf': 'n'}>
-CONFIG_ARM_FFA_SMCCC                            policy<{'arm64': 'y'}>
-CONFIG_ARM_FFA_TRANSPORT                        policy<{'arm64': 'm'}>
+CONFIG_ARM_FFA_SMCCC                            policy<{'arm64': 'n'}>
+CONFIG_ARM_FFA_TRANSPORT                        policy<{'arm64': 'n'}>
 CONFIG_ARM_GIC                                  policy<{'arm64': 'y', 'armhf': 'y'}>
 CONFIG_ARM_GIC_MAX_NR                           policy<{'arm64': '1', 'armhf': '1'}>
 CONFIG_ARM_GIC_PM                               policy<{'arm64': 'y'}>
--
2.43.2



More information about the kernel-team mailing list