Difference between revisions of "Xen ARM with Virtualization Extensions/Vexpress"

From Xen
(Add hint with recent firmware)
(Divide the page in 2 sections)
Line 1: Line 1:
  +
== Preparing the board ==
* If you are trying to run Xen on a Versatile Express Cortex A15 machine, you might want to copy xen (the Xen binary output, <tt>xen.git/xen/xen</tt>) and the Linux Dom0 zImage to the SOFTWARE directory and add the two following stanzas to your ''images.txt'' file:
 
  +
  +
* 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 ==
  +
  +
If you are trying to run Xen on a Versatile Express Cortex A15 machine, you might want to copy xen (the Xen binary output, <tt>xen.git/xen/xen</tt>) and the Linux Dom0 zImage to the SOFTWARE directory and add the two following stanzas to your ''images.txt'' file:
   
 
NOR3UPDATE: AUTO ;IMAGE UPDATE:NONE/AUTO/FORCE
 
NOR3UPDATE: AUTO ;IMAGE UPDATE:NONE/AUTO/FORCE
Line 14: Line 28:
   
 
Note that before commit [http://xenbits.xen.org/gitweb/?p=xen.git;a=commit;h=47d1a51480ad0f602d747e460d619436c907deea 47d1a51] (xen: arm: make zImage the default target which we install) it was necessary to use <tt>xen.git/xen/xen.bin</tt> for NOR3FILE instead of <tt>xen.git/xen/xen</tt>.
 
Note that before commit [http://xenbits.xen.org/gitweb/?p=xen.git;a=commit;h=47d1a51480ad0f602d747e460d619436c907deea 47d1a51] (xen: arm: make zImage the default target which we install) it was necessary to use <tt>xen.git/xen/xen.bin</tt> for NOR3FILE instead of <tt>xen.git/xen/xen</tt>.
 
* We recommend disabling the A7 cpus by editing the ''board.txt'' file under the SITE directory corresponding to your Cortex A15 daughterboard:
 
 
;SCC: 0x018 0x1FFFFFFF ;Reset control (CA7s running, CA15s running) - uncomment this for normal operation
 
;SCC: 0x018 0x1FFFF000 ;Reset control - (CA7s running, CA15s reset) - uncomment this to hold A15 cluster in reset
 
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
 
   
 
* The address of the Dom0 kernel in Flash at the moment is not configurable, it is defined as [http://xenbits.xen.org/gitweb/?p=xen.git;a=blob;f=xen/arch/arm/kernel.c;h=2f7a9ff2a5fbc95eaa276c9d2e09541ff3329535;hb=HEAD 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.
 
* The address of the Dom0 kernel in Flash at the moment is not configurable, it is defined as [http://xenbits.xen.org/gitweb/?p=xen.git;a=blob;f=xen/arch/arm/kernel.c;h=2f7a9ff2a5fbc95eaa276c9d2e09541ff3329535;hb=HEAD 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.

Revision as of 12:55, 6 September 2013

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

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:

NOR3UPDATE: AUTO                    ;IMAGE UPDATE:NONE/AUTO/FORCE
NOR3ADDRESS: 0c000000               ;Image Flash Address
NOR3FILE: \SOFTWARE\Xen\xen         ;Image File Name
NOR3LOAD: 80200000                  ;Image Load Address
NOR3ENTRY: 80200000                 ;Image Entry Point

NOR4UPDATE: AUTO                    ;IMAGE UPDATE:NONE/AUTO/FORCE
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.
  • In order to make your Dom0 boot sequence faster, you might want to consider passing init=/bin/bash to your kernel and then manually executing a minimal init script like this.