We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Hello,
I want to use the ARM pointer authentication feature. I compiled a program with PAC instructions. I inspected the assembly and made sure they were properly inserted. I also compiled and ran an ARM Base FVP and was able to share the directories in order to run the program. However, the FVP gives me an illegal instruction. I am sure the kernel supports it, since it is version 5.3.0. How do I enable PAC so that these instructions would be recognized?
Thank you for your help
the Armv8-A simulation model in the FVP is designed to support several different revisions of the Armv8-A Architecture Specification. As Pointer Authentication is not supported in earlier revisions of the the spec, there is a parameter to enable/disable it in the model. By default Pointer Authentication support is OFF. To enable it, set the "has_pointer_authentication" and "has_enhanced_pac" to 1 in both CPU clusters in the FVP.
i.e., when you run the FVP, add to the command line:
-C cluster*.has_enhanced_pac=1 -C -cluster*.has_pointer_authentication=1
Hi Rob,
Should " -C cluster*.has_arm_v8-3=1 -C cluster*has_arm_v8-5=1" also be enabled in this case ?
FVP_Base_AEMv8A-AEMv8A with version 11.10 enable has_pointer_authentication by default. Thanks.
Hello Rob,
Thank you for your reply.
Awesome! Your commands did the trick and it works. I also experimented with this command
-C cluster*.has_arm_v8-3=1
and it works as well.
Thank you for your help.
good to hear that it is working. to get a full list of parameters for the FVP, run it with the command line argument "--list-params". You will probably want to pipe the output to a text file. This will show you all the configuration options for the Armv8-A model (and all the other models in the platform).