Juno : ARM's first 64-bit Development Platform
Having started at ARM about a week ago, I have been very excited to work on Juno, ARM's first 64-bit Development Platform.Juno is aimed at accelerating the development of 64-bit software for the mobile and enterprise markets. Based on the ARMv8-A...
By Varun Sarwal
Having started at ARM about a week ago, I have been very excited to work on Juno, ARM's first 64-bit Development Platform.
Juno is aimed at accelerating the development of 64-bit software for the mobile and enterprise markets. Based on the ARMv8-A big.LITTLE™ architecture, Juno offers software developers an open, vendor neutral, reference platform for 64-bit software development. Interestingly, Linaro has also released an Android Open Source Project (AOSP) port for the 64-bit ARMv8-A architecture. The entire software stack for the platform is now available through Linaro. The software bundle includes ARM Trusted Firmware, Linux file systems and a Linux kernel (3.10) that can support both OpenEmbedded Linux and Android (AOSP) file systems.
Juno is aligned with the ARM® Server Base Architecture (SBSA), which means that developers can use the system for early access of porting and performance-tuning OS kernel or driver code to the 64-bit architecture, based on the ARM® Cortex®-A57 and ARM Cortex-A53 processors. This means Juno creates a common foundation for the software developers in the ARMv8 ecosystem and allows early access to the silicon. For the hardware vendors, Juno provides the entire ARMv8 IP portfolio working together in a big.LITTLE™ implementation, delivering high performance and low power consumption.
The timing of the platform release is important, as Google recently announced the details of the their "Android L", which would include a new Virtual Machine "ART" to support both 32 and 64-bit ARM architectures. The platform definitely aims to accelerate the time to market for future 64-bit ARM designs.
Hardware Overview

The Juno SoC was built by ARM with an aim to keep the implementation functionally correct so that it can be representative of a potential mobile platform. Therefore, like many development platforms, Juno isn't meant to deliver highest standards of performance or efficiency. It is meant
to enable software developers to port their applications to 64-bit ARMv8-A. Juno includes ARM's own Mali™-T624 graphics processor, the mobile-focused CCI-400, dual DDR3 memory controllers, and an ARM® Cortex® M3 System Control Processor that handles SoC-level power management and system control. Juno also offers SoC hardware expansion for customers wishing to implement their own custom RTL designs. This is enabled through the LogicTile design and Thin Links technology, which can be used to prototype custom CPU, GPU and peripheral designs. Lets have a quick look at Juno hardware specs:
| Feature | Details |
|---|---|
| CPUs | ARM® Cortex®-A57 MP2 cluster Speed: 1.1GHz (Overdrive) Caches: L1 48KB I, 32KB D, L2 2MB ARM® Cortex®-A53 MP4 cluster Speed: 850MHz (Overdrive) Caches: L1 32KB, L2 1MB |
| GPUs | ARM® Mali™-T624 MALI T624 Speed: 600MHz Caches: L2 128KB |
| Memory | 8GB 1600MHz DDR, 64MB user NOR FLASH, 256KB SRAM in IOFPGA |
| SoC | ARM® CoreSight™ ETM/CTI per core, VFS and power gating, 4 energy meters, DMC-400 dual channel DDR3L interface, Internal CCI-400, 128-bit, 533MHz |
| Rest of SoC | Internal NIC-400, 64-bit, 400MHz DMAC : PL330, 128-bit Static Memory Bus Interface : PL354 HDCLD dual video controllers: 1080p |
| Expansion support | AXI expansion to FPGA daughterboard USB 2.0 with 4 port hub |
| Debug & Trace | ARM® JTAG : 20-way DIL box header ARM® 32/16 bit parallel trace |
Software Overview
ARM has been working closely with Linaro to provide a stable software stack that includes low-level firmware for runtime services and high-level file systems such as OpenEmbedded Linux and Android (AOSP).
Linaro 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. The entire software stack for Juno is available through the Linaro website.

Let's drill-down into the different software components:
| Software | Description |
|---|---|
MCC Microcontroller Firmware | The MCC firmware takes care of early setup before the SCP or application processors are powered on. The MCC is also responsible for managing firmware upgrades. |
Systems Control Processor (SCP) Firmware | The SCP firmware loads the runtime that provides low level power management and system control for the Juno platform. |
| ARM Trusted Firmware | The ARM Trusted Firmware provides an open source framework enabling easy integration of secure OS and run-time services to ARMv8-A platforms. The project has been hosted as an open-source project on GitHub |
| Unified Extensible Firmware Interface (UEFI) | The Juno UEFI implementation provides Linux loader support for the Juno platform. It is based on the open source EFI Development Kit 2 (EDK2) implementation from the Tianocore sourceforge project. |
| A 64-bit Linux Kernel with big.LITTLE™ and Mali support | The Linux Kernel can support both Android and OpenEmbedded file systems. It is being managed by Linaro and can be downloaded from the Linaro website as a part of the entire software stack. |
| Linux-based file systems | This includes Android Open Source Project (AOSP) and OpenEmbedded Linux. Linaro has been responsible for porting AOSP to 64-bit ARM and will be maintaining this project. It can be downloaded from the Linaro website along with other software deliverables. |
Clearly, Juno offers software developers and system architects a robust product stack including cutting-edge hardware and software, which would serve as a firm baseline for testing future 64-bit ARM-based designs. It has received a lot of attention in the press. A simple Google News search on "Juno ARM 64-bit" would yield a number of blogs and news articles on the Juno platform, including details about the software stack provided by Linaro. Some of the top links are listed below.
ARM Unveils Juno Platform for 64-Bit Development
ARM arms devs for 64-bit push with 'Juno' board • The Register
ARM releases Juno dev platform for 64-bit computing - Software - News - HEXUS.net
ARM-Launches-New-Reference-Platform-For-64bit-Developers-Bakes-In-Linaro-Support
Support
For support and queries around the Juno platform, contact: juno-support@arm.com
Getting Started
In order to get started with the Juno board, a detailed getting-started guide can be found here.
If you want to learn how you could get Android installed on Juno, watch the following TUTORIAL: Installing Android on Juno ARM Development Platform
Additional Links
Juno ARM Development Platform Technical Reference manual
By Varun Sarwal
Re-use is only permitted for informational and non-commercial or personal use only.
