NameLast modifiedSizeLicense

Parent Directory Parent Directory
text hwpack_linaro-vexpress_20121021-377_armhf_supported.manifest.txt 21-Oct-2012 16:05 515 open
application/x-tar hwpack_linaro-vexpress_20121021-377_armhf_supported.tar.gz 21-Oct-2012 16:08 37.1M open
text linaro-precise-ubuntu-desktop-20121021-492.build-log.txt 21-Oct-2012 17:26 465.9K open
application/x-tar linaro-precise-ubuntu-desktop-20121021-492.config.tar.bz2 21-Oct-2012 17:26 6.5K open
other linaro-precise-ubuntu-desktop-20121021-492.list 21-Oct-2012 17:26 7.9M open
text linaro-precise-ubuntu-desktop-20121021-492.md5sums.txt 21-Oct-2012 17:26 435 open
other linaro-precise-ubuntu-desktop-20121021-492.packages 21-Oct-2012 17:26 38.7K open
text linaro-precise-ubuntu-desktop-20121021-492.sha1sums.txt 21-Oct-2012 17:26 475 open
application/x-tar linaro-precise-ubuntu-desktop-20121021-492.tar.gz 21-Oct-2012 17:37 534.4M open
other vexpress-precise_ubuntu-desktop_20121021-377.img.gz 21-Oct-2012 20:22 590.4M open
other vexpress-precise_ubuntu-desktop_20121021-377.img.gz.zsync 21-Oct-2012 20:22 19.5M open


Linaro releases monthly binary images for the ARM Versatile Express including support for A9, A5, A15 (TC1), TC2 (big.LITTLE) CoreTiles and RTSM.

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 . The integration branch present in 12.10 is big-LITTLE-MP-v9 which includes:

Scheduler modifications to support big.LITTLE

  • per-task-load-average-v3-fixed: 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.

New: The patches now take into account multiple domains when making decisions on task migration, with ftrace events added for tracking these migrations.

Hot-plug improvements. The aim of this sequence of improvements is to speed-up and make consistent the time taken to hot-plug cores.

  • per-cpu-thread-hotplug-v3-fixed
  • cpu-hotplug-get_online_cpus-v1
  • rcu-hotplug-v1

Cluster and asymmetric system support

  • arm-asymmetric-support-v3-v3.6-rc1 – uses arch_scale_freq_power function to reflect the relative capacity of each core
  • arm-multi_pmu_v2 – enables the use of multiple PMU types or sources, for example profiling across both Cortex-A15 and Cortex-A7 clusters. New: Bugfixes and patch restructuring
  • arm-multi_pmu_v1 – enables the use of multiple PMU types or sources, for example profiling across both Cortex-A15 and Cortex-A7 clusters.
  • scheduler-misc-v1 – miscellaneous scheduler patches complementing the MP work

Platform Support. In addition to the big.LITTLE MP work the TC2 platform support includes

  • CPUidle & CPUfreq support
  • hwmon driver allowing, amongst other things, TC2’s power, current andenergy measurements to be read through standard sysfs interfaces
  • Common clocks implementation
  • Regulator driver
  • Drivers for previously hard-coded configuration interfaces
  • Support self-hosted debugging through idle
  • In addition to the CPU PMUs the perf framework supports the CCI-400 PMUs
  • Misc fixes in this release
    • safely handle missing CPU frequencies
    • MMC Multi-Block fix
    • amba-clcd Device Treee mods
    • HDLCD fixes

This release also adds support for saving the self-hosted debugger setup when a CPU goes through a low power state, where hardware breakpoints are not preserved, and restoring the setup when the CPU is brought
back online.

Additionally, support for CPU PMUs present in big.LITTLE systems has been integrated into the kernel, with the framework now also supporting system PMUs. CCI-400 PMUs are the first example
implementation that is using the framework.

SCHED_HMP patches for scheduler have now been updated to take into account multiple domains when making decisions on task migration, with ftrace events added for tracking these
migrations.

Where To Find More Information

More information on Linaro can be found on our website.

Feedback and Support

Subscribe to the important Linaro mailing lists and join our IRC channels to stay on top of Linaro development.

  • Linaro Development mailing list
  • Linaro IRC channel on irc.freenode.net at #linaro

  • Bug reports should be filed in Launchpad against the individual packages that are affected. If a suitable package cannot be identified, feel free to assign them to Linaro project.
  • Questions? ask Linaro.
  • Interested in commercial support? inquire at Linaro support

Fixed in this release

Details of each item can be found by searching for the issue number (without the #) here

UEFI bugs:

  • LP: #1029844 UEFI: A5/A9/A15 aren’t supported in latest code
  • LP: #1029854 UEFI: TC2 port only boots with 1 CPU
  • LP: #1036228 UEFI: A9 does not pass command line to kernel when booted with device tree
  • LP: #1050364 UEFI: TC2 does not boot with big.LITTLE kernel features enabled
  • LP: #1053343 UEFI: TC2 does not support OSPM

Known Issues

UEFI Bugs:

Ubuntu Bugs:

  • LP: #1018654 YouTube can’t be played smoothly on vexpress Linaro ubuntu image.
  • LP: #1017479 Many SD card errors in vexpress Linaro ubuntu image.
  • LP: #1009845 lava-test run pwrmgmt failed on vexpress board with Linaro ubuntu image.
  • LP: #1009326 e2eaudio test failed on Origen, Snowball & vexpress ubuntu image.
  • LP: #966411 vexpress: ubuntu: Network manager doesn’t manage ethernet connection
  • LP: #966406 vexpress: ubuntu: Booting without an ethernet connection hangs
  • LP: #966377 vexpress: ubuntu: Suspend-Resume doesn’t work
  • LP: #966373 vexpress: ubuntu: Reboot and shutdown don’t work
  • LP: #1006737 vexpress: lots of mmc errors on boot

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:

  1. Using a pre-built image, which you can download
  2. 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.

Using pre-built image

Prerequisites

  • Ubuntu 12.04 64 bit or newer on your desktop PC (www.ubuntu.com)
  • 4GB SD card or larger
  • Latest firmware installed onto the Versatile Express. Please see “Firmware Update” tab
  • This release pre-built image (vexpress-precise_ubuntu-desktop_20121021-377.img.gz), which you can downloaded from the above list of artifacts or from here

Installation Steps

  • Unzip the downloaded pre-built image
  • Insert SD card into your PC and note the assigned '/dev/sdX'
dmesg
SDCARD=/dev/sdX # sdcard found from dmesg above
zcat vexpress-precise_ubuntu-desktop_20121021-377.img.gz | sudo dd bs=64k of=$SDCARD

When the image is created, skip down to the section “Copy the missing DTB files to the boot partition”

Note: Windows users may use the Image Writer for Windows.


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

  • Ubuntu 12.04 64 bit or newer on your desktop PC (www.ubuntu.com)
  • 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 here
bc. wget http://releases.linaro.org/12.10/ubuntu/vexpress/hwpack_linaro-vexpress_20121021-377_armhf_supported.tar.gz
wget http://releases.linaro.org/12.10/ubuntu/vexpress/linaro-precise-ubuntu-desktop-20121021-492.tar.gz

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

  • Method 1: Install them from the Linaro Image Tools PPA

sudo add-apt-repository ppa:linaro-maintainers/tools
sudo apt-get update
sudo apt-get install linaro-image-tools

  • Method 2: Building from source

wget http://releases.linaro.org/12.10/components/platform/linaro-image-tools/linaro-image-tools-2012.10.tar.gz
  • Insert SD card and note the assigned '/dev/sdX' or '/dev/mmcblk0'
dmesg | less

Look for a line that looks like the following at the end of the log

[288582.790722] sdc: sdc1 sdc2 sdc3 sdc4 <sdc5 sdc6 >

Or, if your machine uses ‘dev/mmcblkX’, you may see a line line this:

[10770.938042] mmcblk0: p1 p2 p3 p4 < p5 p6 >

WARNING: In the next step, make sure you use /dev/“whatever you see above”. You can erase your hard drive with the wrong parameter.

  • Create media
sudo linaro-media-create --mmc /dev/sdX --dev vexpress --hwpack hwpack_linaro-vexpress_20121021-377_armhf_supported.tar.gz --binary linaro-precise-ubuntu-desktop-20121021-492.tar.gz

Copy the missing DTB files to the boot partition

The DTB files for 12.10 are not on the boot parition of the created media. You should copy these files from the rootfs parition.

First, insert or mount the SD card created in the above steps. It’s often easiest to safely unmount the card, eject it and re-insert the card in order to get your PC to mount the partitions.

cp /media/rootfs/lib/firmware/3.*-linaro-vexpress/device-tree/vexpress-v2p-ca5s.dtb /media/boot/v2p-ca5s.dtb
cp /media/rootfs/lib/firmware/3.*-linaro-vexpress/device-tree/vexpress-v2p-ca9.dtb /media/boot/v2p-ca9.dtb
cp /media/rootfs/lib/firmware/3.*-linaro-vexpress/device-tree/vexpress-v2p-ca15-tc1.dtb /media/boot/v2p-ca15-tc1.dtb
cp /media/rootfs/lib/firmware/3.*-linaro-vexpress/device-tree/vexpress-v2p-ca15-tc2.dtb /media/boot/v2p-ca15-tc2.dtb

After copying, safely unmount the SD card.

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

  • Ubuntu 12.04 64 bit system. You can download Ubuntu from ubuntu.com
  • git and toolchain. You can get those by typing the following command in your terminal
sudo apt-get install build-essential git gcc-arm-linux-gnueabi

Get the source

You can use GIT to obtain the kernel source code for this release:

git clone git://git.linaro.org/kernel/linux-linaro-tracking.git
cd linux-linaro-tracking
git checkout ll-20121018.0

Create a kernel config

Do not use the defconfig for Versatile Express, instead, build a config from the config fragments that Linaro provides:

ARCH=arm scripts/kconfig/merge_config.sh  \
linaro/configs/linaro-base.conf \
linaro/configs/ubuntu.conf \
linaro/configs/vexpress.conf

Note: the config fragments are part of the git repository and the source tarball.

Build the kernel

To build the kernel uImage, use the following command:

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- uImage

Build the Flattened Device Tree binaries

Create the Device Tree blob if you don’t have one in your Linaro image (note, the A9 Core Tile boots using an ATAGS kernel so there is no need for a device tree blob):

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- dtbs

Installing your kernel and DTB on hardware

  • Insert the SD card containing the Linaro disk image into your PC SD card reader
  • Copy the kernel onto the memory card using
cp arch/arm/boot/uImage /media/boot/
  • Copy the device tree blob
    • For A9 CoreTile: no device tree blob is needed
    • For A5 CoreTile: cp arch/arm/boot/vexpress-v2p-ca5s.dtb /media/boot/v2p-ca5s.dtb
    • For A15 CoreTile (TC1): cp arch/arm/boot/vexpress-v2p-ca15-tc1.dtb /media/boot/v2p-ca15-tc1.dtb
    • For A15_A7 CoreTile (TC2): cp arch/arm/boot/vexpress-v2p-ca15-tc2.dtb /media/boot/v2p-ca15-tc2.dtb
  • Eject the memory card from your PC by using the following command
eject /media/boot
  • Insert the memory card into the Versatile Express board and power it on

Installing your kernel and DTB on RTSM

Follow the instructions on the RTSM tab, changing the RTSM_KERNEL and RTSM_DTB environment variables to point to your newly created binaries.

Ensure that you update your Versatile Express board firmware to the latest version. To update your VE board firmware, please follow the instructions below:

  • Install the Recovery firmware from the v4.0b VE CD/DVD that came with your Versatile Express
  • Connect and mount your Versatile Express motherboard USB mass storage device to your PC
  • Download the latest ARM firmware from silver.arm.com
    • Unzip the firmware zip to the root of the motherboard mounted drive
    • Please contact support@arm.com for any issues related this firmware update
  • Download additional Linaro binaries and configuration from here
    • Unzip the firmware zip to the root of the motherboard mounted drive
    • Please contact Linaro for any issues related to this firmware update
  • Unmount the Versatile Express motherboard
  • Set SW[0] on the rear panel of the board to ON
  • Reboot the Versatile Express board
    • You will need to configure UEFI to boot the image on the SD card.
    • See the UEFI page on the Linaro Wiki for more details on configuring UEFI.

This release was boot tested on RTSM A15×4 and A15×4-A7×4 models. No rigorous testing was carried out. This build is expected to run on other RTSM models.

Prerequisites

  • Install the RTSM model(s) you wish to run. You must have a valid license and the environment set up to run models
  • Install Linaro image tools
  • 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.

Install Linaro Image Tools

There are multiple ways you can get the latest Linaro Image Tools:

  • Method 1: Install them from the Linaro Image Tools PPA

sudo add-apt-repository ppa:linaro-maintainers/tools
sudo apt-get update
sudo apt-get install linaro-image-tools

  • Method 2: Building from source

wget http://releases.linaro.org/12.10/components/platform/linaro-image-tools/linaro-image-tools-2012.10.tar.gz

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). Note, you will also need the boot.tar.bz2 file from the Android release.

Using the following command, you will download the nano RootFS, the hardware pack and the boot.tar.gz you need from the Android build.

wget http://releases.linaro.org/12.10/ubuntu/precise-images/nano/linaro-precise-nano-20121021-473.tar.gz
wget http://releases.linaro.org/12.10/ubuntu/precise-hwpacks/hwpack_linaro-vexpress_20121021-377_armhf_supported.tar.gz
wget http://releases.linaro.org/12.10/android/vexpress/boot.tar.bz2

Now you need to create the image using the following commands.

linaro-media-create --image-file linaro.img --image-size 2000M --dev vexpress --hwpack hwpack_linaro-vexpress_20121021-377_armhf_supported.tar.gz --binary linaro-precise-nano-20121021-473.tar.gz
sudo kpartx -a linaro.img
mkdir boot
sudo mount /dev/mapper/loop0p1 boot
cp boot/uImage .
cp boot/uInitrd .
sudo umount boot
tar jxvf boot.tar.bz2

Run A15×4 model

This example shows how to run the Linaro kernel on a quad core A15 RTSM model:

RTSM_MODEL=$HOME/ARM/RTSM/Linux64_RTSM_VE_Cortex-A15x4/RTSM_VE_Cortex-A15x4
RTSM_BOOTWRAPPER=boot/rtsm/linux-system-semi.axf
RTSM_MMC=linaro.img
RTSM_KERNEL=uImage
RTSM_DTB=boot/rtsm/rtsm_ve-ca15x4.dtb
RTSM_INITRD=uInitrd
RTSM_CMDLINE="console=ttyAMA0,115200n8 root=/dev/mmcblk0p2 rootwait ro mem=1024M ip=dhcp"
$RTSM_MODEL \
$RTSM_BOOTWRAPPER \
-C motherboard.smsc_91c111.enabled=1 \
-C motherboard.hostbridge.userNetworking=1 \
-C motherboard.mmc.p_mmc_file="$RTSM_MMC" \
-C cluster.cpu0.semihosting-cmd_line="--kernel $RTSM_KERNEL --dtb $RTSM_DTB --initrd $RTSM_INITRD -- $RTSM_CMDLINE"

Run A15×4-A7×4 model

This example shows how to run the Linaro kernel on a big.LITTLE RTSM model:

RTSM_MODEL=$HOME/ARM/RTSM/Linux64_RTSM_VE_Cortex-A15x4-A7x4/RTSM_VE_Cortex-A15x4-A7x4
RTSM_BOOTWRAPPER=boot/rtsm/linux-system-semi.axf
RTSM_MMC=linaro.img
RTSM_KERNEL=uImage
RTSM_DTB=boot/rtsm/rtsm_ve-ca15x4-ca7x4.dtb
RTSM_INITRD=uInitrd
RTSM_CMDLINE="console=ttyAMA0,115200n8 root=/dev/mmcblk0p2 rootwait ro mem=1024M ip=dhcp"
$RTSM_MODEL \
-a coretile.cluster0.*=$RTSM_BOOTWRAPPER \
-a coretile.cluster1.*=$RTSM_BOOTWRAPPER \
-C motherboard.smsc_91c111.enabled=1 \
-C motherboard.hostbridge.userNetworking=1 \
-C motherboard.mmc.p_mmc_file=$RTSM_MMC \
-C coretile.dualclustersystemconfigurationblock.CFG_ACTIVECLUSTER=0x3 \
-C coretile.cluster0.cpu0.semihosting-enable=1 \
-C coretile.cluster0.cpu0.semihosting-cmd_line="--kernel $RTSM_KERNEL --dtb $RTSM_DTB --initrd $RTSM_INITRD -- $RTSM_CMDLINE"