Xen ARM with Virtualization Extensions/Vexpress

From Xen
Revision as of 15:20, 6 September 2013 by Julieng (talk | contribs) (Start to add U-Boot section)

Preparing the board

  • We recommend disabling the A7 cpus by editing the board.txt file under the SITE directory corresponding to your Cortex A15 daughterboard:
SCC: 0x018 0x00001FFF            ;Reset control - (CA7s reset, CA15s running) - uncomment this to hold A7 cluster in 
  • With recent firmware (newer than boot monitor V5.1.9), the Versatile Express can use multiple ways to bring up secondary cpus. Xen only supports sys_flags bring up. To select this mode, you need to set the bit[12] of SCC: 0x700 to 0. For instance:
** Before:
  SCC: 0x700 0x0032F003
** After:
  SCC: 0x700 0x0032E003

Booting Xen and dom0

Booting wit U-boot

Icon Info.png This section is in work in progress, please use "booting without U-boot" section

The current approach requires tftp but it can be easily modify to load the different images from the mmc.

Build and flash U-Boot

Theses steps will programme U-Boot into NOR flash.

1) Clone U-Boot from the official website (tested with v2013.10-rc2 tag).

Booting without U-Boot

This solution requires to modify the firmware configuration. The support will be removed soon because Xen will require all CPU to boot in hypervisor mode. We advice to the use the U-Boot solution (see above).

If you are trying to run Xen on a Versatile Express Cortex A15 machine, you might want to copy xen (the Xen binary output, xen.git/xen/xen) and the Linux Dom0 zImage to the SOFTWARE directory and add the two following stanzas to your images.txt file:

NOR3ADDRESS: 0c000000               ;Image Flash Address
NOR3FILE: \SOFTWARE\Xen\xen         ;Image File Name
NOR3LOAD: 80200000                  ;Image Load Address
NOR3ENTRY: 80200000                 ;Image Entry Point

NOR4ADDRESS: 000c0000               ;Image Flash Address
NOR4FILE: \SOFTWARE\Xen\zImage      ;Image File Name
NOR4LOAD: 80008000                  ;Image Load Address
NOR4ENTRY: 80008000                 ;Image Entry Point
  • Note that before commit 47d1a51 (xen: arm: make zImage the default target which we install) it was necessary to use xen.git/xen/xen.bin for NOR3FILE instead of xen.git/xen/xen.
  • The address of the Dom0 kernel in Flash at the moment is not configurable, it is defined as KERNEL_FLASH_ADDRESS in Xen. On a Versatile Express machine this address can be determined by executing flash list images from the boot manager. You'll have to manually change it.