Last week, Linaro 14.06 was released and one of the highlights was Android booting on ARMv8 models, but the organization has actually ported Android to a new 64-bit ARM platform. Juno ARM Development Platform is actually software development platform for ARMv8-A, including Juno Versatile Express board and an ARMv8-A reference software port developed by Linaro.
Juno VExpress Board has the following key hardware features:
- SoC – 2x ARM Cortex A57 cores @ 1.1 GHz (2MB L2 cache), 4x Cortex A53 cores @ 850 MHz (1MB L2 cache) in big.LITTLE configuration with Mali-T624 GPU @ 600 MHz. Compliant with SBSA specifications Level 1.
- I/O FPGA – Xilinx SPARTAN-6
- MCU – ARM Cortex M3 for Motherboard Configuration Controller (MCC)
- System Memory – 8GB DDR3L @ 1600 MHz
- Storage – User and configuration micro SD card lots, 64MB NOR flash, configuration EEPROM
- Connectivity – 10/100M Ethernet + 10M “configuration” Ethernet
- Video Output – 2x HDMI
- USB – 4x USB 2.0 host port + “configuration USB”
- Serial – 2x UART (1x DB9 interface)
- Debugging – P-JTAG (Processor CoreSight debug) port, coresight trace port
- Expansion – 2 headers (HDRX and HDRY) for LogicTile Express FPGA daughterboard
- Misc – Push buttons, LEDs, energy monitors, etc…
The hardware enables development of ARMv8-A AArch64 kernel and tools, secure OS & hypervisors through ARM Trusted Firmware, 3D graphics and GPU compute with native big.LITTLE and Mali support, Middleware & file systems porting and optimization to 64-bit, and real-time debug, trace and performance tuning with CoreSight technology. Expansion is also provided with LogicTile Express 20MG FPGA board that connects directly to the platform and can be used for driver development and prototyping.
This type of board is not for everybody, and mostly reserved to silicon vendors, and people working on ARMv8 software development that can’t wait for actual silicon. Juno SoC is not optimized for performance (see relatively low frequencies) and most probably not for power consumption, it’s just to let people run and optimize software for ARMv8. The other reason it’s not for everyone is the price which should be several thousand dollars, and I would not be surprised if this board cost over $10,000, as older versatile express board sell for about $6,000. You can find more details on ARM’s Juno product page.
Linaro’s ARMv8 ports are based on Linux kernel 3.10 (Linaro Stable Kernel), and compiled with GCC 4.9 and can run both Juno and ARMv8 fast models. You can download ARMv8 ports for OpenEmbedded and Android Open Source Project (AOSP).
The OpenEmbedded ARMv8 release supports on-chip USB, non-secure UART, HDMI output, keyboard and mouse functionality of P/S2, and Ethernet. The big.LITTLE multiprocessing implementation supports all 6 cores (optimizations still required), boot is done via UEFI using the NOR flash, USB mass storage, or Ethernet, ARM trusted firmware and SCP firmware are both supported.
The Android ARMv8 release supports all OpenEmbedded features, and comes with a unified kernel and kernel config for Android and Linux, and the AOSP file system based on a snapshot from the 1st of June 2014, with ART Runtime enabled as default and booting in 64-bit primary mode, GPU and HDLCD support, although there are still some bugs leading to visual artifacts.
In theory, it should be possible to run Android or OpenEmbedded ARMv8 ports on any computers using ARMv8 fast models, but be prepared to be very very patient. I won’t try it…