This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Enabling pointer authentication on ARM FVP Base

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