ARM support in Linux distributions demystified
3 min read
Article URL: Comments URL: Points: 1 # Comments: 0
ARM support in Linux distributions demystified December 28, 2020

There are a lot of historical ARM architecture versions, but this article focuses on ARMv6 and newer.


Floating point units in ARM are called "vector floating point", abbreviated as VFP.

VFPv2 is used optionally in ARMv6

VFPv3 is used in ARMv7

This comment in Android source code has some more details.

Most Linux distribtions like Debian have "armhf" builds. This means "ARMv7+VFPv3+D16". There are exceptions to this, like Alpine and Raspbian, who have "armhf" build which are actually "ARMv6+VFPv2", but these binaries are also forward compatible with later versions of the ARM Architecture. This also means that Alpine is not compatible with minimal ARMv6 implementations, because the VPFv2 extention is optional.

Alpine also has an "armv7" build, which is the same as "armhf" in Debian and other distributions.

Examples of ARMv6 SoCs that include the VFPv2 extension are:

The Broadcom BCM2835 (sometimes referred to by its family name BMC2708 which only includes this SoC), used in early Raspberry Pi models and later Raspberry Pi Zero models, which are produced until at least 2026.

The Broadcom BCM21553 used in the Samsung Galaxy Ace i, Samsung Galaxy Pop Plus/Galaxy Mini Plus and the Samsung Galaxy Y.

The Samsung S3C6410 used in the Samsung Galaxy Spica.

The Qualcomm MSM7227 used in e.g. the HTC myTouch 3G Slide and the Samsung Galaxy Ace

Read full article