The ARM Arc Part 2
This is a continuation to The ARM Arc Part 1 published in July.
It all started in 2012 when the Fedora ARM community decided to move from the legacy ARMv5 software floating point ABI to the new ARMv7 hard float ABI. The move meant better performing code, native atomic operations, threading support, and other modern OS features becoming available to ARM software developers on a general purpose OS. Doing the work required a way to bootstrap a new architecture, which is notoriously difficult due to Fedora’s inter-dependent package structure. When building package A depends on having package B, and building package B depends on having package A, and you have 15000 such packages, it poses an epic challenge.
At Red Hat this was a familiar activity and a great opportunity: a way to get a head start on the architecture neutral aspects of bootstrapping 64 bit ARM (“AArch64”), which did not yet exist on anything but paper. Several competing bootstrap techniques were proposed and ultimately 5-stage builds won. The bootstrap system worked well for ARMv7 in 2012, AArch64 in 2013, and it was even used a third time in 2014 to add support for POWER 8 Little Endian support in RHEL 7.1. It’s always nice when you can reuse a bit of code!
Last week Fedora 21 was released for Primary Architectures including 32 bit ARM, supporting a wide array of new hobbyist devices in the market. Likewise, this week the Fedora ARM community released Fedora 21 for AArch64, its first official AArch64 GA release. Fedora 21 for AArch64 supports Applied Micro’s first generation X-Gene processor as well as AMD’s Seattle processor, both employing industry standard UEFI, and experimental ACPI support- a first in the budding ARM Server space.
Amidst all the above taking place we launched the ARM Partner Early Access Program (“PEAP”), an initiative to integrate an experimental AArch64 OS with ARM partner hardware. The PEAP provides a vehicle for its participants to jointly develop, test, and refine the software, firmware and hardware needed to sustainably support industry standards on ARM servers. The program launched with the support of several ARM semiconductors, OEMs and other ISVs, and continues to grow with each passing month. Development done in the PEAP is sent back upstream, making it available for future OS releases.
With 5 publicly announced semiconductors producing or indicating an intention to produce AArch64 server processors and several more creating hobbyist level devices, 2015 promises to be a very interesting and busy year.