Versatile Express - CortexA9x4 Setup

Introduction

The Versatile Express system consists of the a uATX motherboard and a CoreTile Express A9x4 daughterboard. This system is offered by ARM Ltd as a development environment for the CortexA9 quad core processor. Details of the system can be found at http://www.arm.com/products/tools/development-boards/versatile-express.php.

The current version of this platform has several options for booting. There is on-board flash, SD/MMC, compact flash, and network booting options. All of these options require the ARM boot monitor running for low level initialization. The ARM boot monitor code comes pre-installed.

Initial Setup

Disable Automatic Flash Updates

Booting a Versatile Express using a Linaro Image

The following links will guide you through the complete process to create a bootable Versatile Express.

The rest of the items in this wiki page are optional and are for reference only.

Bugs and Known Issues

Bugs

U-Boot

There are several options to run the u-boot bootloader:

  • u-boot in on-board flash
  • u-boot in the compact flash card (your code)
  • u-boot in the SD card (your code)

On-board Flash

Type one of the following options at the > prompt:

flash run u-boot
<or>
flash run u-boot-linaro

Compact Flash and SD Card

Type run u-boot at either the K> or M> prompts. Just type K: or M: to switch back and forth between cards.

  • K> = Compact Flash

  • M> = SD Card

The u-boot image needs to be the elf image to run directly. If you are trying to run a binary image it needs to be converted using the ARM boot monitor command CONVERT BINARY. Use help to see the syntax for the command.

K:\> run u-boot

U-Boot Options

There are a couple of options from the u-boot prompt.

  • Kernel loaded from flash
  • Tftp a kernel from a host machine

Kernel from flash

There is a pre-built 2.6.28 Linux kernel in flash. Load it and run it from the u-boot command prompt.

VExpress# bootm 0x41000000

If you installed a Linaro image there is a kernel at 0x44100000 also.

VExpress# bootm 0x44100000

Kernel from tftp

The hardest part of this option is getting your host set-up correctly. Once the tftp server is working correctly you can simply load a uImage into RAM and run it. The uImage will be built as part of the an ARM kernel build and can be found in the "arch/arm/boot/uImage" directory
Make sure the following options are set correctly in the u-boot environment.

# setenv loadaddr 0x81000000
# setenv bootfile uImage
# serverip 192.168.1.102 // your host ip address here
# ipaddr 192.168.1.117 // an appropriate address for your system

VExpress# tftp; bootm

Rootfs Options

There are also several of options for loading a rootfs. I'm going to include the kernel command line that is set in u-boot for each option. Note: the mem=1024M option is critical and the system won't boot without it.

  • SD or Compact Flash (The 1st partition is a small vfat with the bootloader. The 2nd partition is the rootfs and can be any supported type.)

setenv bootargs 'root=/dev/mmcblk0p2 rw ip=dhcp mem=1024M console=ttyAMA0 rootwait clcd=xvga rootwait=6'
  • USB hard drive

setenv bootargs 'root=/dev/sda1 rw ip=dhcp mem=1024M console=ttyAMA0 rootwait clcd=xvga'
  • NFS root
    • setup according to your host/target ipaddresses
  • On-board flash
    • This will restore your system using a legacy kernel
    • From a u-boot prompt type:

bootm 0x42000000 // Follow the prompts

Auto Boot

The following instructions will setup the Versatile Express to auto-boot.

  1. Connect the vexpress USB-B plug to your host. (If you connected with the vexpress in shutdown mode, just type usb_on.) The host should auto-detect the vexpress as a device.
  2. go to the software directory and edit the bootscr.txt file:
    • Something like:
      • vi /media/disk/SOFTWARE/bootscr.txt
      • change "fl run u-boot" to "fl run u-boot-linaro"
  3. Power down the system and set the left boot-option switch on the back to the down position. (The switch you need to change is closest to the standby button).
  4. Power on the system and it will boot straight to a shell prompt.

Replacing the Linux Installed on the VExpress System

First you need to upload the desired kernel to the development board. One way to do this is to remove the MicroSD card from the front of the Versatile Express and insert the MicroSD card into your computer. Copy your uImage kernel to <sd root>/SOFTWARE/kernel.bin. (Backup the old kernel image, in case your new kernel image is bad.) The next time you boot the Versatile Express the new kernel will be automatically detected and re-flashed.

Boards/Vexpress (last modified 2011-12-20 06:16:33)