NameLast modifiedSizeLicense

Parent Directory Parent Directory
text hwpack_linaro-lsk-vexpress_20140525-654_armhf_supported.manifest.txt 05-Feb-2016 18:11 535 open
application/x-tar hwpack_linaro-lsk-vexpress_20140525-654_armhf_supported.tar.gz 31-Mar-2016 15:35 18.5M open
application/x-ms-manifest linaro-image-alip-genericarmv7a-20140522-261.manifest 05-Feb-2016 18:11 30.0K open
application/x-ms-manifest linaro-image-alip-genericarmv7a-20140522-261.rootfs.manifest 05-Feb-2016 18:11 13.8K open
application/x-tar linaro-image-alip-genericarmv7a-20140522-261.rootfs.tar.gz 31-Mar-2016 15:35 40.1M open
other lsk-vexpress-openembedded_alip-armv7a-gcc-4.8_20140525-654.img.gz 31-Mar-2016 15:35 73.8M open
other lsk-vexpress-openembedded_alip-armv7a-gcc-4.8_20140525-654.img.gz.zsync 31-Mar-2016 15:35 19.5M open


None

Linaro OpenEmbedded 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.

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
  • Download the pre-built image for this release
    bc. wget http://releases.linaro.org/14.05/openembedded/vexpress-lsk/lsk-vexpress-openembedded_alip-armv7a-gcc-4.8_20140525-654.img.gz

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 http://releases.linaro.org/14.05/openembedded/vexpress-lsk/lsk-vexpress-openembedded_alip-armv7a-gcc-4.8_20140525-654.img.gz | sudo dd bs=64k of=$SDCARD

When the image is created, skip down to the section “Booting the image”.

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 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
wget http://releases.linaro.org/14.05/openembedded/vexpress-lsk/hwpack_linaro-lsk-vexpress_20140525-654_armhf_supported.tar.gz
wget http://releases.linaro.org/14.05/openembedded/vexpress-lsk/linaro-image-alip-genericarmv7a-20140522-261.rootfs.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/14.03/components/platform/linaro-image-tools/linaro-image-tools-2014.03.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-lsk-vexpress_20140525-654_armhf_supported.tar.gz --binary linaro-image-alip-genericarmv7a-20140522-261.rootfs.tar.gz

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.

None

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

  • Clone the Linaro Versatile Express Firmware repository
  • Connect and mount your Versatile Express motherboard USB mass storage device to your PC
  • Remove all of the existing files from the USB mass storage device
  • Copy the Linaro Firmware to the board

For example:

git clone git://git.linaro.org/arm/vexpress-firmware.git
rm -rf /media/VEMSD/*
cp -R vexpress-firmware/* /media/VEMSD

Once you have finished copying the firmware over:

  • Safely unmount the Versatile Express motherboard
  • Reboot the Versatile Express board
  • At the ARM Boot Loader “Cmd> “ prompt, type the following commands:
Cmd> flash
Cmd> eraseall
Cmd> exit
Cmd> reboot
  • You may need to configure UEFI to boot from the image that you’ve created. See the UEFI page on the Linaro Wiki for more details on configuring UEFI.
  • You may want to set /media/VEMSD/config.txt AUTORUN to TRUE to be make the CoreTile boot from power on.
  • For TC2, you should set the DIP swich closest to the black reset button down so that the Boot Monitor runs the boot script on power on.
  • Versatile Express version 5.2 contains the original firmware and documentation for the Versatile Express platform
  • Please contact support@arm.com for any issues related their firmware
  • Please contact Linaro for any issues related to booting this release on the Versatile Express platform.


Using TC2 as an A7-only or A15-only board

Configure the Firmware

It is possible to configure a TC2 development board as an A7 or A15 only board. To do this, the developer should modify the /SITE1/HBI0249A/board.txt file on the Versatile Express firmware drive, usually mounted at /media/VEMSD.

The relevant register is CFGREG6 on pages 78-81 of the following TRM:
http://infocenter.arm.com/help/topic/com.arm.doc.ddi0503e/DDI0503E_v2p_ca15_a7_tc2_trm.pdf

You should add the following setting in board.txt:

SCC: 0x018 0x1FFFFFFF     ; CFGRW6 - Reset register default (both clusters active)
– or –
SCC: 0x018 0x00001FFF     ; CFGRW6 - A15-only config
– or –
SCC: 0x018 0x1FFFF000     ; CFGRW6 - A7-only config

Remember to update TOTALSCCS, eg, if it was 32 and you’ve added one register, it becomes 33:

TOTALSCCS: 33                   ;Total Number of SCC registers

Configure the Device Tree

Once the hardware is booting as an A7 or A15 only board, next you need to remove the unused CPU nodes from the device tree.

In the kernel source tree, edit arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts and remove the unused CPUs from this section:

   cpus {
        #address-cells = <1>;
        #size-cells = <0>;
       cpu2: cpu@2 {
            device_type = "cpu";
            compatible = "arm,cortex-a7";
            reg = <0x100>;
            cluster = <&cluster1>;
            core = <&core2>;
            clock-frequency = <800000000>;
            cci-control-port = <&cci_control2>;
        };
       cpu3: cpu@3 {
            device_type = "cpu";
            compatible = "arm,cortex-a7";
            reg = <0x101>;
            cluster = <&cluster1>;
            core = <&core3>;
            clock-frequency = <800000000>;
            cci-control-port = <&cci_control2>;
        };
       cpu4: cpu@4 {
            device_type = "cpu";
            compatible = "arm,cortex-a7";
            reg = <0x102>;
            cluster = <&cluster1>;
            core = <&core4>;
            clock-frequency = <800000000>;
            cci-control-port = <&cci_control2>;
        };
       cpu0: cpu@0 {
            device_type = "cpu";
            compatible = "arm,cortex-a15";
            reg = <0>;
            cluster = <&cluster0>;
            core = <&core0>;
            clock-frequency = <1000000000>;
            cci-control-port = <&cci_control1>;
        };
       cpu1: cpu@1 {
            device_type = "cpu";
            compatible = "arm,cortex-a15";
            reg = <1>;
            cluster = <&cluster0>;
            core = <&core1>;
            clock-frequency = <1000000000>;
            cci-control-port = <&cci_control1>;
        };
    };

Next, you need to remove the GIC entries that are associated with the removed CPUs, eg:

   gic: interrupt-controller@2c001000 {
        compatible = "arm,cortex-a15-gic", "arm,cortex-a9-gic";
        #interrupt-cells = <3>;
        #address-cells = <0>;
        interrupt-controller;
        reg = <0 0x2c001000 0 0x1000>,
              <0 0x2c002000 0 0x1000>,
              <0 0x2c004000 0 0x2000>,
              <0 0x2c006000 0 0x2000>;
        interrupts = <1 9 0xf04>;
       gic-cpuif@0 {
            compatible = "arm,gic-cpuif";
            cpuif-id = <0>;
            cpu = <&cpu0>;
        };
       gic-cpuif@1 {
            compatible = "arm,gic-cpuif";
            cpuif-id = <1>;
            cpu = <&cpu1>;
        };
       gic-cpuif@2 {
            compatible = "arm,gic-cpuif";
            cpuif-id = <2>;
            cpu = <&cpu2>;
        };
       gic-cpuif@3 {
            compatible = "arm,gic-cpuif";
            cpuif-id = <3>;
            cpu = <&cpu3>;
        };
       gic-cpuif@4 {
            compatible = "arm,gic-cpuif";
            cpuif-id = <4>;
            cpu = <&cpu4>;
        };
    };

Finally, you need to re-compile the DTS file and copy it to the SD card used to boot the system, eg:

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- dtbs
cp arch/arm/boot/dts/vexpress-v2p-ca15_a7.dtb /media/boot/v2p-ca15-tc2.dtb

This release has been boot tested on FVP_VE A15×4 and A9MPx4. Reaching a login prompt is the only test carried out. This build is expected to run on other models. No UEFI binary exists for dual cluster A15x{1|4}-A7x{1|4} models; in this case the A15 binary can be used, but the A7 CPUs will be held in reset.

Prerequisites

  • Install the 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 OpemEmbedded 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.

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/14.02/components/platform/linaro-image-tools/linaro-image-tools-2014.02.tar.gz

Create a 2GB image file

Fast Models will only deal with file systems up to 2GB in size, however the pre-built image may be larger. In this case, you can build your own image using the pre-built artifacts as listed below.

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

wget http://releases.linaro.org/14.05/openembedded/vexpress-lsk/hwpack_linaro-lsk-vexpress_20140525-654_armhf_supported.tar.gz
wget http://releases.linaro.org/14.05/openembedded/vexpress-lsk/linaro-image-alip-genericarmv7a-20140522-261.rootfs.tar.gz

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-lsk-vexpress_20140525-654_armhf_supported.tar.gz --binary linaro-image-alip-genericarmv7a-20140522-261.rootfs.tar.gz
sudo kpartx -a linaro.img
mkdir boot
sudo mount /dev/mapper/loop0p1 boot
cp boot/uImage .
cp -ar boot/rtsm rtsm
sudo umount boot
sudo kpartx -d linaro.img

note: unless you use kpartx to delete the loop mappings as above, even if you update linaro.img and re-mount it, it will not refresh and you will end up using the old image.

Run Fast Models with UEFI

The instructions for running UEFI on the various models are very similar. The two differences are the UEFI binary and the model used. Follow the model specific instruction below, then proceed to the generic instructions in the section “Run the model with UEFI”. Make sure that the model binary is on your path, or alter the MODEL variable definition to include the path to the binary.

Run A9×4 model with UEFI

MODEL=FVP_VE_Cortex-A9_MPx4
UEFI=rtsm/uefi_rtsm_ve-ca9x4.bin

Run A15×1 model with UEFI

MODEL=FVP_VE_Cortex-A15x1
UEFI=rtsm/uefi_rtsm_ve-ca15.bin

Run A15×2 model with UEFI

MODEL=FVP_VE_Cortex-A15x2
UEFI=rtsm/uefi_rtsm_ve-ca15.bin

Run A15×4 model with UEFI

MODEL=FVP_VE_Cortex-A15x4
UEFI=rtsm/uefi_rtsm_ve-ca15.bin

Run the model with UEFI

touch uefi-vars.fd # create the file if it doesn't already exist
$MODEL \
-C motherboard.flashloader0.fname=$UEFI \
-C motherboard.flashloader1.fname=uefi-vars.fd \
-C motherboard.flashloader1.fnameWrite=uefi-vars.fd \
-C motherboard.mmc.p_mmc_file=linaro.img \
-C motherboard.pl011_uart0.unbuffered_output=true \
-C motherboard.smsc_91c111.enabled=1 \
-C motherboard.hostbridge.userNetworking=1