Hi Saurabh Jain,
I'm not an expert on FPU and its usage, however your intuition around questions 1, 2 and 3 seems correct to me. For no.4 I guess the answer is 'yes' in order to have consistency of ABI across security states.
Many details can be found in the Armv8-M Architecture Reference Manual and it's also possible that our (TF-M) documentation may lack of details of most recent changes with regards to FPU and CP10-CP11 configurations.
If you find any discrepancies, please feel free to share and we'll try to help and address further.
Many thanks, Best regards,
Nick
________________________________ From: Jain, Saurabh via TF-M tf-m@lists.trustedfirmware.org Sent: 15 November 2024 21:00 To: tf-m@lists.trustedfirmware.org tf-m@lists.trustedfirmware.org Subject: [TF-M] FPU use with TF-M
Hi We’re developing a platform using TF-M and would like to get some clarity on using FPU on Secure and Non-Secure side. The idea is to let NS application decide if it wants to use FPU.
Currently, we are enabling CONFIG_TFM_ENABLE_FP which means we’re setting CPACR.CP10, CPACR.CP11 and enabling NSACR.CP10, NSACR.CP11.
With this configuration:
1. Is it okay if SE perform some FP operation which would set CONTROL.FPCA and return to NSE (CPACR_NS.CP10 and CPACR_NS.CP11 are not set) while CONTROL.FPCA is still set? 2. With the above configuration, if NSE wants to use FPU, it simply needs to enable CPACR_NS.CP10 and CPACR_NS.CP11. Is this correct? 3. If SE doesn’t require FPU, we could simply enable CONFIG_TFM_ENABLE_CP10CP11 (CONFIG_TFM_ENABLE_FP is OFF) and NS app would still be able access FPU after enabling CPACR_NS bits? 4. There is a hard requirement for the -mfloat-abi to be consistent for S, NS and all the static libraries used?
Thank you in advance!
Best Saurabh Jain
-- TF-M mailing list -- tf-m@lists.trustedfirmware.org To unsubscribe send an email to tf-m-leave@lists.trustedfirmware.org