Hi,

This issue was raised long time ago but unfortunately never got fixed/merged.
It may be ok restoring the change and progress it:

Https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/11002

Https://lists.trustedfirmware.org/archives/list/tf-a@lists.trustedfirmware.org/message/5M2WXX7KI3EQC2E5IOO43SX4DMEELSHC/

https://lists.trustedfirmware.org/archives/list/tf-a@lists.trustedfirmware.org/thread/NW5R5O45MQXISC5KAQV6I5EQZIGCR2TE/

On a related note, I hope you saw the deprecation notice:
https://lists.trustedfirmware.org/archives/list/tf-a@lists.trustedfirmware.org/thread/Z6GAD7OGKNDPNKECJ63HQZ4XEYUJXTNM/

Regards,
Olivier.


From: Sureshkumar Ponnusamy <sponnusamy@microsoft.com>
Sent: 11 November 2025 05:46
To: David Daney <daviddaney@microsoft.com>; tf-a-owner@lists.trustedfirmware.org <tf-a-owner@lists.trustedfirmware.org>
Cc: Giri Mudusuru <girimudusuru@microsoft.com>; Kun Qin <Kun.Qin@microsoft.com>
Subject: RE: Question about SPM-MM SMC function ids
 

Yes,  the problem is in comparing logic and masks used.

 

From: David Daney <daviddaney@microsoft.com>
Sent: Monday, November 10, 2025 7:38 PM
To: Sureshkumar Ponnusamy <sponnusamy@microsoft.com>; tf-a-owner@lists.trustedfirmware.org
Cc: Giri Mudusuru <girimudusuru@microsoft.com>; Kun Qin <Kun.Qin@microsoft.com>
Subject: Re: Question about SPM-MM SMC function ids

 

According to the DEN0060A specification the only values used are:

 

MM_VERSION: 0x8400 0040

MM_COMMUNICATE: 0x8400 0041/0xC400 0041

 

These don't overlap with the TRNG function IDs defined in DEN0098

 

David.


From: Sureshkumar Ponnusamy <sponnusamy@microsoft.com>
Sent: Monday, November 10, 2025 7:32 PM
To: tf-a-owner@lists.trustedfirmware.org <tf-a-owner@lists.trustedfirmware.org>
Cc: Giri Mudusuru <girimudusuru@microsoft.com>; David Daney <daviddaney@microsoft.com>; Kun Qin <Kun.Qin@microsoft.com>
Subject: Question about SPM-MM SMC function ids

 

Hi Manish, Levi Yun , TF-A community ,

 

I am facing an issue when enabling SPM-MM feature and it looks like there is a minor issue with the SMC ID range check.

When SPM-MM is enabled, I cannot use the TRNG SMC services.

 

/* These macros are used to identify SPM-MM calls using the SMC function ID */

#define SPM_MM_FID_MASK                                   U(0xffff)

#define SPM_MM_FID_MIN_VALUE                      U(0x40)

#define SPM_MM_FID_MAX_VALUE                     U(0x7f)

#define is_spm_mm_fid(_fid)                                                                                   \

                                ((((_fid) & SPM_MM_FID_MASK) >= SPM_MM_FID_MIN_VALUE) && \

                                (((_fid) & SPM_MM_FID_MASK) <= SPM_MM_FID_MAX_VALUE))

 

Here, the SPM-MM SMC ID range spans from 0x40 to 0x7F, which overlaps with the TRNG SMC service IDs:

 

/* SMC function IDs for TRNG queries */

#define ARM_TRNG_VERSION U(0x84000050)

#define ARM_TRNG_FEATURES              U(0x84000051)

#define ARM_TRNG_GET_UUID              U(0x84000052)

#define ARM_TRNG_RND32                     U(0x84000053)

#define ARM_TRNG_RND64                     U(0xC4000053)

 

Could you please clarify the rationale behind including the TRNG SMC IDs within the SPM-MM ID range? If this overlap was unintentional, we have to fix  it.

Looking forward to your insights and feedback on this matter.

 

Thanks

Suresh