1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Memory
  5. Motherboards
  6. Processors
  7. Software
  8. Storage
  9. Operating Systems


Facebook RSS Twitter Twitter Google Plus


Phoronix Test Suite

OpenBenchmarking Benchmarking Platform
Phoromatic Test Orchestration

ARM Delivers 64-bit ARMv8 Linux Kernel Support (AArch64)

Linux Kernel

Published on 06 July 2012 06:41 PM EDT
Written by Michael Larabel in Linux Kernel
14 Comments

ARM has today posted their set of patches that implements core Linux kernel support for AArch64, the ARM 64-bit architecture.

Catalin Marinas of ARM posted to the Linux kernel mailing list a set of 36 patches that provides this initial 64-bit ARMv8 architecture support. "ARM introduced AArch64 as part of the ARMv8 architecture and consists of a substantially revised exception model (with 4 exception levels: EL0 - user, EL1 - kernel, EL2 - hypervisor, EL3 - secure monitor), new A64 instruction set based on larger register file, new FP/SIMD instructions. The new ABI is LP64 and takes advantage of the larger register file and mandates FP."

ARM previously published the AArch64 documentation concerning the instruction set and ABI but now it's met by nearly 23,000 lines of new arch/ code for the Linux kernel.

For some additional information from the mailing list announcement:
There is no hardware platform available at this point. From a kernel perspective, the aim is to minimise (or even completely remove) the platform code from the architecture specific directory. FDT is currently mandated and there are ongoing discussions for ACPI support.

In terms of MMU, it currently supports 39-bit address space for user and kernel (each) with 3-level page table and 4KB pages or 2-level page table and 64KB pages (see Documentation/aarch64/memory.txt). The virtual address space can be extended to 48-bit.

Compat (32-bit) user applications (ARM EABI only) are supported with the 4KB page configuration. There is no interworking between AArch32 and AArch64 code (the architecture requires an exception entry/exit to change the mode).

Linux Test Project (LTP) and LAMP stack have been used to test and validate this code against ARM simulation model throughout the development. Compilation requires a new aarch64-none-linux-gnu-toolchain (http://gcc.gnu.org/ml/gcc-patches/2012-05/msg01694.html).
For some additional information about 32-bit ARMv7 compatibility on ARMv8 hardware with the Linux AArch64 kernel, one of the patches mentions:
This patch adds support for 32-bit applications. The vectors page is a binary blob mapped into the application user space at 0xffff0000 (the AArch64 toolchain does not support compilation of AArch32 code). Full compatibility with ARMv7 user space is supported. The use of deprecated ARMv7 functionality (SWP, CP15 barriers) has been disabled by default on AArch64 kernels and unaligned LDM/STM is not supported.
Those wishing to examine the ARMv8 64-bit AArch64 Linux kernel support can find the patches on the kernel mailing list. Assuming the patches are in good shape, the support could be merged for the Linux 3.6 kernel when that merge window is open.

About The Author
Michael Larabel is the principal author of Phoronix.com and founded the web-site in 2004 with a focus on enriching the Linux hardware experience and being the largest web-site devoted to Linux hardware reviews, particularly for products relevant to Linux gamers and enthusiasts but also commonly reviewing servers/workstations and embedded Linux devices. Michael has written more than 10,000 articles covering the state of Linux hardware support, Linux performance, graphics hardware drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated testing software. He can be followed via and or contacted via .
Latest Linux News
  1. Yet Another OpenGL 4.5 Extension Is Nearing Completion In Mesa
  2. Xfce's Power Manager Is Finally Ported To GTK3
  3. The CompuLab Fitlet Is A Neat Little Linux PC With AMD SoC
  4. AMD & Others Are Working On The LLVM SPIR-V Converter
  5. Linux 4.1-rc5 Kernel Released
  6. Mesa 10.5.6 Brings Fixes All Over The Place
  7. NVIDIA's Proprietary Driver Is Moving Closer With Kernel Mode-Setting
  8. The Latest Linux Kernel Git Code Fixes The EXT4 RAID0 Corruption Problem
  9. Features Added To Mesa 10.6 For Open-Source GPU Drivers
  10. Ubuntu's LXD vs. KVM For The Linux Cloud
Latest Articles & Reviews
  1. Opening The Gates To Our Daily Open-Source Linux Benchmark Results
  2. The Latest Features For Linux Performance Management + Benchmark Monitoring
  3. Noctua NH-U12DX i4 + NF-F12
  4. Btrfs RAID 0/1 Benchmarks On The Linux 4.1 Kernel
Most Viewed News This Week
  1. The Linux 4.0 Kernel Currently Has An EXT4 Corruption Issue
  2. The Linux 4.0 EXT4 RAID Corruption Bug Has Been Uncovered
  3. Microsoft Open-Sources The Windows Communication Foundation
  4. NVIDIA's Proprietary Driver Is Moving Closer With Kernel Mode-Setting
  5. Systemd 220 Has Finally Been Released
  6. Another HTTPS Vulnerability Rattles The Internet
  7. LibreOffice 5.0 Open-Source Office Suite Has Been Branched
  8. LibreOffice 5.0 Beta 1 Released