[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

AArch64 planning BoF at DebConf

[ Please note the cross-post and Reply-To ]

Hi folks,

Here's a summary of what we discussed in the AArch64 port planning BoF
[1] last week (10th July). Thanks to the awesome efforts of the
DebConf video team, the video of the session is already online [2] in
case you missed it. I've also attached the Gobby notes that were taken
during the session. Again, thanks to the people who took part - we had
a very useful discussion. Slides are up on my website [3].


Naming issues: ARM are calling the new 64-bit architecture
AArch64. Other people don't like that and various other names have
been proposed for use elsewhere. Debian/Ubuntu developers have already
picked the name "arm64" in dpkg and elsewhere.

ARMv8 summary

For more details, look at http://arm.com/architecture. Quick summary:

 * Carries over the ARMv7 feature set.
 * First 64bit ARM CPU, runs 32bit code too.
 * ARM Neon SIMD.
 * VFPv3 as from ARMv7.
 * Includes ARM proprietary security extensions.
 * Supports virtualisation and LPAE.

New 64-bit (A64) instruction set

 * Fixed length 32-bit instructions.
 * 5 bits of register space -> 31 general purpose 64 bit registers.
 * SIMD 32x128bit registers
 * Better support for different FP modes
 * Improved atomic support
 * Neon required (believed, but confirm!)


 * ARMv7 will continue. Cortex-A9, Cortex-A15, Cortex-A7 etc.
 * ARMv8 under development.
 * Expect to see first v8 hardware late 2013 onwards, specs due later
   in 2012.


I showed an ARM "Fast Model" running AArch64 software: a Linux kernel
(3.4) and an Ubuntu (Natty) based userland. The userland AArch64
software was all built using xdeb. Basic-ish LAMP stack for
demonstration (as might be expected for a simple server workload):
Apache, Postgres, Dropbear ssh, PHP. Not a *quick* machine to run
things in, but fast enough for demonstration and verification.

Also demonstrated a 32-bit armhf chroot: standard 32-bit software
build as provided elsewhere in Debian/Ubuntu, no changes
needed. AArch64 will happily run existing ARM software. Showed Xorg,
xfce and firefox running.


Kernel patches for AArch64 have just been sent upstream for comments
on Friday 6th July[5].

The toolchain already works (as you can see from the demo). gcc
patches are already in a branch upstream[4], binutils etc. coming
shortly. People are currently cross-building small systems and testing
in the model.

ARM and Linaro are going to be helping by working on projects to aid

  * Basic OpenEmbedded rootfs
  * Backporting toolchain changes into gcc 4.7
  * Shared bug tracker at Linaro to help sharing issues and patches
    across distros

I'm hoping to get AArch64 bootstrapped and ready for release in Debian
by Wheezy+1, which I acknowledge will take a lot of work in a
comparatively short space of time. We will need to cross-bootstrap as
much as possible, verifying things in the model. Existing bootstrap
work done by Wookey and co. will help a lot here. As soon as we can
get access to hardware, start building natively and try and get into
debian-ports. *If* we can get everything going well, into main archive
ASAP after that.

It's useful that ARMv8 will happily run existing armhf software, so we
can run that as a base on systems for build machines etc. We've learnt
the lesson from armhf bringup that using unstable to host buildds is

Because of multi-arch, we will also get to use 32-bit armhf software
elsewhere where it's useful, e.g. 32-bit openjdk will run out of the
box until we get a 64-bit version.


There's no support in qemu yet, but many people are interested in it
for a variety of reasons. Once sufficient specs are released, I'd
expect work to happen quickly.

How to help

First things first: make sure your packages cross-build well, and make
your Multi-Arch build-dependencies work. There are a lot of patches
already in the BTS to help with these.

Next: help make more of the archive work for automatic bootstrapping
and cross-building.

Once we can get hold of models and then hardware, help to test and
verify more of the system. Fun places to get involved are language
bootstraps - in many cases, the runtime / compiler for a language will
be written *in* that language, so there's work to cross-bootstrap the
first build and bring things up from there.

Get involved on the debian-arm list (and elsewhere) and keep
communicating about what you're working on and what you'd like to do.

[1] http://penta.debconf.org/dc12_schedule/events/882.en.html
[2] http://meetings-archive.debian.net/pub/debian-meetings/2012/debconf12/high/882_AArch64_planning.ogv
[3] http://www.einval.com/~steve/talks/Debconf12-aarch64/
[4] svn://gcc.gnu.org/gcc/branches/ARM/aarch64branch
[5] http://lkml.indiana.edu/hypermail/linux/kernel/1207.0/03025.html

Steve McIntyre, Cambridge, UK.                                steve@einval.com
You raise the blade, you make the change... You re-arrange me 'til I'm sane...
Please take notes here
ARM insist on it being called AArch64. Likely to be arm64 in Debian (name
already in dpkg arch tables, and autoconf tests).
ARMv8 summary
 Carries over the ARMv7 feature set. First 64bit ARM CPU, runs 32bit code too.
 ARM Neon SIMD. VFPv3 as from ARMv7. Includes ARM proprietary security extensions.
 supports virtualisation and LPAE. Fixed length 32-bit instructions.
 5 bits of register space, 31 general purpose 64 bit registers.
 SIMD 32x128bit registers. Better support for FP.
 Improved atomic support. Neon required.

 ARMv7 will continue. Cortex-A9 A15, A7 etc.
 ARMv8 under development. Hardware late 2013 onwards, specs late 2012.

 "FastModel", Ubuntu based system. Linux 3.4 for the model. Some port work 
 already done for apache, dropbear etc. All crossbuilt Maverick/Natty 
 using xdeb. 130+ packages built. For the demo, running a 32bit armhf Xorg
 and firefox.

 Toolchain does work. Cross built base system tested via model.
 Kernel patches sent upstream for comments on Friday
 Basic rootfs via OpenEmbedded
 Toolchain changes to be backported to gcc-4.7
 Shared bug tracker.

Cross-bootstrap for Debian.
 Wheezy+1 would be nice.
 openjdk 32 bit will run out of the box due to MultiArch.

To help:
 Make packages cross-build well and make your build-dependencies MultiArch.

Attachment: signature.asc
Description: Digital signature

Reply to: