64-bit ARM support merged into Linux kernel
Source: ARM Less than 18 hours after the release of Linux 3.6, Linus Torvalds merged the first changes for version 3.7 into the main Linux kernel development tree. These included support for 64-bit ARM architecture (1, 2, 3, 4 and others), submitted for merger by ARM employee Catalin Marinas a little earlier.
The code for the architecture, officially known as AArch64, has been placed in a separate
arch/arm64/ directory in the kernel source code, as requested by a number of kernel developers when the code was first presented. When queried via a program such as uname, the kernel continues to return the cumbersome "aarch64", which will also be used by other software involved in supporting 64-bit ARM architecture, including binutils, which has included support for AArch64 since version 126.96.36.199.2, and the AArch64 extension for the GCC currently under development. A 64-bit version of ARM using the ARMv8 command set was first announced in autumn 2011. Applied Micro Circuits Corporation (AMCC) has now produced the first sample chips and is promising to release products containing 64-bit ARM cores later this year.
Also merged into the main Linux development tree is a patch collection which allows a kernel image which boots on a range of different 32-bit ARM platforms to be built. This kernel image is currently able to run on the Highbank, Vexpress, Mvebu, Socfpga and Picoxcell platforms. Code from further platforms should be converted for subsequent kernel versions, enabling the kernel image to run on as many platforms as possible, as is standard in the x86 world. Background information on this work can be found in this LWN.net article and in a video of a presentation by Linaro developer Arnd Bergmann (from the 26:15 mark).
In the 30-odd hours since the release of Linux 3.6, Linus Torvalds has already merged around 3,601 changes (about eight to eleven thousand changes are made per kernel version typically). According to diffstat, these changes modify 4,180 files, adding 220,804 and removing 141,317 lines of code (code which is moved is included in both figures). These include changes (1, 2 and others) enabling the kernel to use the SMAP (Supervisor Mode Access Prevention) security function designed for Intel's Haswell x86 processors. SMAP protects userland code from undesirable modification by the kernel, a stratagem sometimes used by attackers for privilege escalation. Details can be found in a posting on the Grsecurity forums and on page 408 of Intel's Architecture Instruction Set Extensions Programming Reference.