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

disable and remove fpu instructions

Hello,

I would like to disable the FPU on my ARM Cortex A9 CPU during the boot software execution.

But I need to employ RSA authentication to guarantee the integrity of my image partitions.

As I am trying to compile my boot software using arm-none-eabi-gcc with no FPU support, I noticed that the Xilinx xilrsa.a library may access VFP registers (FPU or NEON). See the exact errors at the bottom of my post.

However as I looked at the disassembly code, no vector instruction appears (e.g. vadd, vstr...) , and all accessed registers are with the general purpose range (0~15).

What would trigger this error then? Is it because the library has been compiled with arguments -mfpu=vfpv3  and -mfloat-abi=hard ??

Thank you

Florian

/usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: error: ../../ssbl_bsp//ps7_cortexa9_0/lib/librsa.a(SoftRSA.o) uses VFP register arguments, ssbl.elf does not
/usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: failed to merge target specific data of file ../../ssbl_bsp//ps7_cortexa9_0/lib/librsa.a(SoftRSA.o)
/usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: error: ../../ssbl_bsp//ps7_cortexa9_0/lib/librsa.a(SoftSHA256.o) uses VFP register arguments, ssbl.elf does not
/usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld: failed to merge target specific data of file ../../ssbl_bsp//ps7_cortexa9_0/lib/librsa.a(SoftSHA256.o)

Parents
  • The output from readelf -A librsa.a shows that mfpu has been set as vfpv3 (Tag_FP_arch = VFPv3) and that mfloat-abi was set as hard (Tag_ABI_VFP_args = VFP registers).

    The full output is shown below. Does that mean I must compile the rest of the code with FPU enabled?

Reply
  • The output from readelf -A librsa.a shows that mfpu has been set as vfpv3 (Tag_FP_arch = VFPv3) and that mfloat-abi was set as hard (Tag_ABI_VFP_args = VFP registers).

    The full output is shown below. Does that mean I must compile the rest of the code with FPU enabled?

Children