

ARMv8 offers the AArch64 execution mode

Source: ARM ARM employee Catalin Marinas has released a set of 36 patches that will extend the Linux kernel to provide support for ARM's AArch64 64-bit architecture. This 64-bit ARM support will be provided by the ARMv8 instruction set, which was announced in the autumn of 2011 and is expected to be first used in processors in 2014.

The AArch64 support will be given its own directory (arch/aarch64/) in the kernel sources, making it independent of the previous support for 32-bit ARM cores (officially: AArch32 architecture, arch/arm/). Various kernel developers have remarked that the 64-bit extension for the x86 architecture was initially handled in a similar way, but that the code was later merged to simplify its maintenance and development.

Among those discussing this issue is long-term kernel developer Arnd Bergmann, who gives various reasons for splitting the code: he said that most of the code is different anyway, and that it is independent of the legacy code which is currently in the process of being reworked. The developers are also discussing the name, which some consider too bulky and cryptic. Among the suggested alternatives to the official name of the instruction set is ARM64 – currently, however, all signs are pointing towards the continued use of AArch64.

In his kernel patch announcement, Marinas explains that an AArch64 version of Linux can execute 32-bit userland code in the 4KB page configuration if this code uses the ARM EABI; the developer added that, since there is no interworking between AArch32 and AArch64 code, the architecture requires a change of mode (exception entry/exit). At the end of May, ARM developer Marcus Shawcroft presented a GNU Compiler Collection (GCC) extension for review that provides support for AArch64. Apparently, no patches for Binutils have so far been released; the same applies to the Glibc port.

(crve)