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).