Hi Chenxu,
Let me add a few more details wrt TF-A capabilities to SVE, as we realize my earlier answer was a bit short :)
The main SVE support today lands in the normal world, which means this is the place application code can benefit SVE instructions and perform computations on large vectors. TF-A's ENABLE_SVE_FOR_NS option disable EL3 traps to permit the above (and restricts usage to normal world only). Exploring SVE features shall be done in the normal if possible as much as possible. In other words, it's currently not possible to benefit SVE instructions (and vectors usage) directly from within EL3 firmware (or a lower secure EL payload), as there is no SVE state save/restore operation involved. An extension is the ENABLE_SVE_FOR_SWD option, which permits the specific use case of SEL2/Hafnium saving/restoring the NS SVE state, such that (SEL1/0) secure partitions can use FP/SIMD (but not SVE).
Hope this makes it clearer!
Regards, Olivier.
________________________________________ From: Olivier Deprez via TF-A tf-a@lists.trustedfirmware.org Sent: 25 August 2022 11:03 To: tf-a@lists.trustedfirmware.org; Chenxu Wang Subject: [TF-A] Re: Does FVP and current TF-A support the SVE/SVE2 programming?
Hi,
See comments below.
Regards, Olivier.
________________________________________ From: Chenxu Wang via TF-A tf-a@lists.trustedfirmware.org Sent: 25 August 2022 10:44 To: tf-a@lists.trustedfirmware.org Subject: [TF-A] Does FVP and current TF-A support the SVE/SVE2 programming?
Hi all,
I want to perform some encryption/decryption in TF-A. I find that Arm provides some hardware-assisted instructions for encryption and integrity verification (e.g., AESE, SHA1...). But it seems that FVP does not support them.
[OD] the model requires a crypto plugin that may not be available in the public FVP version. You should contact Arm support if needing access to it.
I recently read Armv9 and know that Arm purposes SVE/SVE2 to accelerate the matrix computation. It seems that it can be another approach to accelerate the encryption.
Since I am a novice in Armv9 (and in FVP), thus, I want to ask: (1) Do FVP and TF-A support the SVE? If yes, how to configure it? (2) Do FVP and TF-A support the SVE2? If yes, how to configure it?
[OD] You need to invoke the SVE plugin on the FVP command line by: --plugin=<...>/Base_RevC_AEMvA_pkg/plugins/Linux64_GCC-9.3/ScalableVectorExtension.so
See also the TF-A build options https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git/tree/docs/gettin...
Looking forward to your reply!
Sincerely, WANG Chenxu -- TF-A mailing list -- tf-a@lists.trustedfirmware.org To unsubscribe send an email to tf-a-leave@lists.trustedfirmware.org -- TF-A mailing list -- tf-a@lists.trustedfirmware.org To unsubscribe send an email to tf-a-leave@lists.trustedfirmware.org