ARM7 != ARMv7

ARM architecture is fun when it comes to names and numbers. And it is around 30 years old as well. So from time to time I have a discussion where I say something like in title…

There are few sources of mistakes when it comes to ARM. Family names, instruction sets, core names and marketing. Hard to tell which makes biggest mess…

Anything below ARMv7a is history — there is ARMology about it so please read it. But it does not mean that we have clear situation now 😀

ARMv7a (and higher) means Cortex-A family. But due to companies like AllWinner and Apple we have it more complicated:

A4 is Apple cpu with Cortex-A8 core

A5 is low-end Cortex-A5 core but also Apple cpu with Cortex-A9 cores (there was also A5X)

A6 is Apple cpu with their own core (also A6X)

A7 is Cortex-A7 core but also Apple cpu with 64-bit ARMv8 cores

A8 is Cortex-A8 core (the only single core Cortex-A)

A9 is Cortex-A9 core

A10 is AllWinner cpu with Cortex-A8 core (there was also A10s)

A12 is Cortex-A12 core

A13 is AllWinner cpu with Cortex-A8 core (stripped down A10)

A15 is Cortex-A15 core

A17 is Cortex-A17 core

A20 is AllWinner cpu with Cortex-A7 cores

A23 is AllWinner cpu with Cortex-A7 cores

A31 is AllWinner cpu with Cortex-A7 cores (also A31s)

A53 is Cortex-A53 core (64-bit ARMv8)

A57 is Cortex-A57 core (64-bit ARMv8)

A80 is AllWinner cpu with eight cores (4xA7 + 4xA15)

There are also other Cortex cores but their name do not start with “A” 🙂 But the good thing is that all ARMv7a cpus can run same code. ARMv8 ones can run own code — 32-bit support is optional. All all major distros like Debian, Fedora, OpenSUSE or Ubuntu work on support for both families.

UPDATE: Arnd Bergmann wrote in comment (switch to Blog below article) there is also A2, which is the PowerPC core used in BlueGene. Further, AMD has x86 CPUs called A4, A6, A8 and A10, which are also not ARM. Fun, isn’t it?