For support matters related to ARM hardware or firmware images downloaded from ARM sites, please contact ARM support

This release includes Linaro Android Jelly Bean and Ubuntu Precise Pangolin for Versatile Express and Real-Time System Model (RTSM). The images are able to boot A5 (using U-Boot), A9 (ATAGS), TC1 and TC2 using UEFI. Sources are also made available so you can build your own images.

About the TC2 Evaluation Build

The TC2 CoreTile is the first example of a big.LITTLE system shipped by ARM and serves as a platform for development and test of big.LITTLE software. TC2 contains a tri-core Cortex-A7 cluster and a dual-core Cortex-A15 cluster linked using the CCI–400 coherent interconnect.

The release integrates big.LITTLE development work which can be traced in the big.LITTLE MP working group git repo . Note: This repository has the following tree: big-LITTLE-MP-master-v14 that has been used for the 13.01 evaluation build. This tree includes the following patches that have been developed and qualified for correctness to enable the ARM Versatile Express V2P-CA15_A7 CoreTile (TC2) to run in full MP mode. This new functionality has been optimised for energy usage at near Cortex-A15 (big) performance. These patches are not currently ready to be submitted to the Linux mainline for integration (upstreaming), since they do not yet work seamlessly with the load-balancer. Work is ongoing to make the load-balancer more big.LITTLE aware, making the changes suitable for integration into the Linux mainline.

Scheduler modifications to support big.LITTLE

sched: Basic global balancing support for HMP: This patch introduces an extra-check at task up-migration to prevent overloading the cpus in the faster hmp_domain while the slower hmp_domain is not fully utilized. The patch also introduces a periodic balance check that can down-migrate tasks if the faster domain is oversubscribed and the slower is under-utilized.

per-task-load-average-v3-merged: Paul Turner’s patches enabling the calculation of load on a per-task basis.

task-placement-v2: Morten Rasmussen’s patches using the per-task load to schedule threads on the big or LITTLE cores as appropriate. The patches take into account multiple domains when making decisions on task migration, with ftrace events added for tracking these migrations. New Basic global balancing support for HMP – improves performance for cases where multiple 'big’ threads are running but allowing the use of LITTLE cores.

Experimental patches for making load values invariant to frequency settings. This helps reduce the chance of unnecessary up migrations to big cores.

An initial version of patches from Vincent Guittot which attempt to pack small (low-load) tasks onto the Cortex-A7 cores and also to improving idle balancing

A patch from Thomas Gliexner which supports a IRQ affinity mask being specified in the command line. This can be used to reduce unnecessary IRQ wakeups on Cortex-A15. For instructions see the irqaffinity entry in Documentation/kernel-parameters.txt

arm-multi_pmu_v2 – enables the use of multiple PMU types or sources, for example profiling across both Cortex-A15 and Cortex-A7 clusters and getting results for CCI.

Generic Landing Team Bugs:

Linaro Ubuntu images are made up of two components. The Hardware Pack, which contains the kernel, boot loader and/or Device Tree blob and a Root file system (RootFS) of your choice to generate an image.

The root file systems are described here where you can also download them.

Linaro provides two methods for installing Linaro binary builds:

Using a pre-built image, which you can download

Assembling your own image using provided components

Pre-Installation Steps

Before any installation begins, it is important that you ensure you Versatile Express board has the latest firmware and boot loader installed. Please check the “Firmware Update” tab on this page for the latest updates and installation instructions.

Building a custom image using pre-built components

Sometimes, you may wish to build your own custom image for a Versatile Express. Perhaps you wish to use a more recent snapshot of the hardware pack for Ubuntu or take the latest Android build. Whatever the reason, you will want to use the Linaro Image Tools to create a custom image.

Using components to generate the image will yield the same functionality found in the pre-built image of the same release.

Prerequisites

Download Artifacts from above or use the following command in your terminal

Note: The instructions above attempt to build an Ubuntu Desktop image. If you wish to create a small image, you can replace the ubuntu desktop tar ball with another root file system, which you can download from herebc. wget http://releases.linaro.org/13.01/ubuntu/vexpress/hwpack_linaro-vexpress_20130128-58_armhf_supported.tar.gzwget http://releases.linaro.org/13.01/ubuntu/vexpress/linaro-quantal-developer-20130128-256.tar.gz

Get Linaro image tools. There are multiple ways you can get the latest Linaro Image Tools:

Booting the image

After the media create tool has finished executing, remove the SD card from your PC and insert it into the Versatile Express board.

Before you can boot the image you will need to install the UEFI boot loader into NOR flash and update the Versatile MMC card configuration files. The instructions on the Firmware Update tab provide information on how to do this and how to configure UEFI to specify the SD card as a boot device.

Ubuntu images are comprised of a Hardware Pack (HWPack) and a root file system (RootFS). The hardware pack contains the kernel, boot loader and Device Tree blobs (if applicable). There is no need to rebuild the RootFS since it is comprised of a large number of debian packages. Instead, the best approach is to use an image, which you can create as outlined in the “Binary Image Installation” tab then replace the kernel with your compiled one. This is common practice that many engineers deploy when wanting a standard Linux image to use for testing and development purposes.

The root file systems are described here where you can also download them.

The following instructions will walk you through how to obtain the kernel source, build it, and add it to a pre-existing Ubuntu image.

Prerequisites

Install kpartx which you can get by issuing the following command in your terminal

sudo apt-get install kpartx

Linaro Ubuntu images are made up of two components. The Hardware Pack, which contains the kernel, boot loader and/or Device Tree blob and a Root file system (RootFS) of your choice to generate an image.

The root file systems are described here where you can also download them.

Create a 2GB image file

RTSM will only deal with file systems up to 2GB in size, however the released pre-built image for Ubuntu Desktop requires a 4GB filesystem. Therefore we will build our own Nano image using the pre-built artifacts as listed below.

We use a Nano RootFS for this example, however, you could use other RootFS types such as ALIP or Developer so long as you can install it to a 2GB file (Ubuntu Desktop doesn’t fit the 2GB limit).

Using the following command, you will download the nano RootFS, the hardware pack.