[fedora-arm] Support for ARMv7, hardware math

Jan-Simon Möller dl9pf at gmx.de
Sat Nov 27 17:49:15 UTC 2010


Am Samstag, 27. November 2010, 18:16:05 schrieb Chris Tyler:
> So I've had a number of conversations with Dennis Gilmore and folks from
> other ARM disro ports about v7 support, and particularly with respect to
> hardware math. (In addition, one of the Seneca students is currently
> investigating v5 vs. v7 support in an attempt to figure out how much of
> the Fedora universe needs to be recompiled for optimal benefit).
> 
> Regarding hardfp, though, things are quite unclear. My understanding of
> soft/softfp/hardfp was initially wrong. As I understand it now:
> 
> - soft does all the math in software. Function values are passed in CPU
> registers where appropriate.
> - softfp enables the use of FPU instructions, but continues to pass
> function arguments in CPU registers. This mode enables hardware
> acceleration of math and interoperability with soft, at the cost of a
> CPU->FPU register move in some cases.
> - hardfp enables the use of FPU instructions, and function values are
> passed in FPU registers where appropriate. This mode is incompatible
> with soft and softfp, and cannot be used on CPUs that have an FPU.

... and cannot be used on CPUs that have _no_ FPU 
(probably same for specialized/external FPU).

> According to gcc (docs + error messages), it is also incompatible with
> CPUs that use a "vfp" math unit, such as OMAP3xxx CPUs (BeagleBoard) and
> (I think) the CPU used in the XO1.75. I'm unclear on which hardware math
> units it is compatible with.

Hmm, really ?
There are different vfp versions (vfp/vfp2/vfp3 and vfp4 upcoming). 
From what I see and what was discussed 
at MeeGo Conference, the least common denominator is 
hardfp with vfpv3-d16. See:

* http://lists.meego.com/pipermail/meego-sdk/2010-November/000449.html
* http://wiki.debian.org/ArmHardFloatPort
* https://wiki.linaro.org/Linaro-arm-hardfloat

> 
> In terms of hardware support, I think we definitely want to continue to
> support armv5tel with software floating-point, since that's what is used
> on many current Marvell CPUs, including those used in the
> SheevaPlug/GuruPlug/OpenRD.
> 
> hardfp would break compatibility with all of the existing binary
> packages, and hardfp can't be compiled by gcc for any of the CPUs I have
> got my hands on so far.
> 
> Thus, I recommend that we aim at armv7l softfp to support as an arch
> alongside armv5tel.

I still think a armv7 hardfloat little with vfpv3-d16 would be a good baseline.

Best,
Jan-Simon


More information about the arm mailing list