Hello all,

I'm currently working on integrating OP-TEE support on the ARM64 architecture within the L4Re framework, specifically focusing on cryptographic operations such as encryption and decryption.

While reviewing the implementation, I noticed that in fiasco/src/kern/arm/smc_user.cpp, non-fast SMC calls are explicitly filtered out with the following check:

// only allow fast calls if (!(r0 & 0x80000000)) return commit_result(-L4_err::ENosys);

I'm trying to understand the rationale behind this design decision.
Was it primarily driven by real-time performance requirements, or are there other considerations?

Additionally, as OP-TEE often uses yielding calls for certain operations, do you think it would be appropriate for us to consider extending the kernel to support such calls?

We would appreciate any insights or recommendations you can provide.

Best regards,