[ 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 ====== 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!) Roadmap ======= * 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. Demo ==== 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. Bootstrapping ============= 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 bootstrapping: * 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 painful! 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. Misc ==== 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. Roadmap ARMv7 will continue. Cortex-A9 A15, A7 etc. ARMv8 under development. Hardware late 2013 onwards, specs late 2012. http://arm.com/architecture Demo "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. Bootstrapping Toolchain does work. Cross built base system tested via model. Kernel patches sent upstream for comments on Friday (http://lkml.indiana.edu/hypermail/linux/kernel/1207.0/03025.html). 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