Dear All,
I am confused about vfpv3 and neon.
As shown in i.MX 6Dual/6Quad Reference Manual, it supports neon and vfpv3, also in kernel defconfig, the related config is
"CONFIG_VFP=y
CONFIG_VFPv3=y
CONFIG_NEON=y".
Question1:
In L3.0.35_4.1.0_ER_SOURCE_BSP release package, the cflags is "-march=armv7-a -mfpu=vfpv3 -mfloat-abi=softfp",
but in android_jb4.3_1.1.0-ga_source release package, the arch_variant_cflags is "-march=armv7-a -mfpu=neon -mfloat-abi=softfp".
what is the difference?
Question2: Does the option only used in cflags? not uesd in ldflags?
For example:
arm-fsl-linux-gnueabi-gcc -c helloworld.c -march=armv7-a -mfpu=vfpv3 -mfloat-abi=softfp
arm-fsl-linux-gnueabi-gcc -o helloworld helloworld.o [-march=armv7-a -mfpu=vfpv3 -mfloat-abi=softfp]
Is it need to add the ldflags "-march=armv7-a -mfpu=vfpv3 -mfloat-abi=softfp" ?
Best Regards,
Richard
Basically, the ARM core of the i.MX6 supports both VFP and NEON :
NEON is a SIMD engine, the VFP is an Floating Point coprocessor.
"The Media Processing Engine (MPE) implements ARM NEON technology.
[...] The MPE also implements a VFPv3-D32 Floating-Point Unit."
We can apply NEON for single-precision floating-point operations for
several values in parallel. Under Linux one should use the same floating
point options for applications and kernel.
As for
"Is it need to add the ldflags "-march=armv7-a -mfpu=vfpv3 -mfloat-abi=softfp" ?"
- yes, since the mentioned options relates to C compiler.
Regards,
Yuri.
Hi Richard
fpu is not implemented on i.MX6 platform, below part of i.MX6DQ RM
for flags one can look at attached gcc release note.
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------