Difference between revisions of "Xen ARM with Virtualization Extensions"

From Xen
(Requirements)
Line 16: Line 16:
 
:A [[device tree]] in the flat device tree format (.dtb). The device tree source for the AEM is here: [http://xenbits.xen.org/gitweb/?p=people/dvrabel/device-trees.git;a=summary git://xenbits.xen.org/people/dvrabel/device-trees.git].
 
:A [[device tree]] in the flat device tree format (.dtb). The device tree source for the AEM is here: [http://xenbits.xen.org/gitweb/?p=people/dvrabel/device-trees.git;a=summary git://xenbits.xen.org/people/dvrabel/device-trees.git].
 
;Xen
 
;Xen
:xen-unstable as of 13 Feb 2012.
+
:xen-unstable as of 1 Mar 2012.
 
;Linux kernel for dom0
 
;Linux kernel for dom0
 
:vexpress-dt branch of [http://xenbits.xen.org/gitweb/?p=people/dvrabel/linux.git;a=summary git://xenbits.xen.org/people/dvrabel/linux.git]
 
:vexpress-dt branch of [http://xenbits.xen.org/gitweb/?p=people/dvrabel/linux.git;a=summary git://xenbits.xen.org/people/dvrabel/linux.git]
Line 37: Line 37:
   
 
The DTB to use is specified by the CONFIG_DTB_FILE config variable which should be set to the absolute path of the DTB. This variable may be set in <tt>.config</tt> or on the make command line.
 
The DTB to use is specified by the CONFIG_DTB_FILE config variable which should be set to the absolute path of the DTB. This variable may be set in <tt>.config</tt> or on the make command line.
  +
  +
The Xen command line may be set with the <tt>bootargs</tt> parameter of the <tt>chosen</tt> node of the device tree.
   
 
== Dom0 kernel ==
 
== Dom0 kernel ==
   
Enable at least ARCH_VEXPRESS, ARCH_VEXPRESS_DT, ARM_APPENDED_DTB and ARM_ATAG_DTB_COMPAT. Disable SPARSE_IRQ (it doesn't play nicely with device tree support).
+
Enable at least ARCH_VEXPRESS, ARCH_VEXPRESS_DT, . Disable SPARSE_IRQ (it doesn't play nicely with device tree support).
   
 
A working configuration is available [http://xenbits.xen.org/people/dvrabel/xen-arm/vexpress-dt.config here].
 
A working configuration is available [http://xenbits.xen.org/people/dvrabel/xen-arm/vexpress-dt.config here].
  +
  +
The Linux command line may be set with the <tt>xen,dom0-bootargs</tt> parameter of the <tt>chosen</tt> node of the device tree supplied to Xen.
   
 
=== Device Tree Blob (DTB) ===
 
=== Device Tree Blob (DTB) ===
Line 50: Line 54:
 
=== Flash Image ===
 
=== Flash Image ===
   
The dom0 kernel is loaded by Xen from the beginning of the flash. The kernel zImage and the DTB should be appended. e.g., <tt>cat zImage vexpress-v2p-aem-v7a.dtb &gt; flash.bin</tt>.
+
The dom0 kernel is loaded by Xen from the beginning of the flash.
   
 
=== Native boot ===
 
=== Native boot ===
   
 
To boot the kernel natively use an updated boot-wrapper from [http://xenbits.xen.org/gitweb/?p=people/dvrabel/boot-wrapper.git;a=summary git://xenbits.xen.org/people/dvrabel/boot-wrapper.git].
 
To boot the kernel natively use an updated boot-wrapper from [http://xenbits.xen.org/gitweb/?p=people/dvrabel/boot-wrapper.git;a=summary git://xenbits.xen.org/people/dvrabel/boot-wrapper.git].
  +
  +
For a native boot the kernel should have ARM_APPENDED_DTB and ARM_ATAG_DTB_COMPAT enabled. The kernel zImage and the DTB should be appended. e.g., <tt>cat zImage vexpress-v2p-aem-v7a.dtb &gt; image.bin</tt>.
   
 
== Developer FAQs ==
 
== Developer FAQs ==

Revision as of 16:45, 28 February 2012

The ARM v7-A architecture includes the optional virtualization extensions that allow a hypervisor to manage fully hardware virtualized guests. These extensions will be available in some ARM Cortex A15 and Cortex A7 processors.

This port is a work-in-progress and cannot yet start any guests (other than dom0).

Hardware

Currently there are no processors available which implement the virtualisation extensions. Therefore we are currently targetting the Real-time System Model's provided by ARM. See Xen ARMv7 with Virtualization Extensions/FastModels for more information on obtaining and building the necessary model.

Requirements

ARM Fast Model
Either the v7-A ARM Envelope Model (AEM) or the Cortex A15/A7 models (single CPU only).
Device Tree
A device tree in the flat device tree format (.dtb). The device tree source for the AEM is here: git://xenbits.xen.org/people/dvrabel/device-trees.git.
Xen
xen-unstable as of 1 Mar 2012.
Linux kernel for dom0
vexpress-dt branch of git://xenbits.xen.org/people/dvrabel/linux.git
dom0 userspace
(more details here)

Device Trees

Xen needs the device trees to be in the flat device tree format (the device tree blob or DTB). This is built by the device tree compiler (dtc) from the device tree source files (.dts and .dtsi.

Version 1.3 or later of dtc is required.

Build the .dtb files with make.

A pre-built vexpress-v2p-aem-v7a.dtb.

Xen

When running on the model there is no bootloader to provide the DTB. Instead, it is linked with the xen image.

The DTB to use is specified by the CONFIG_DTB_FILE config variable which should be set to the absolute path of the DTB. This variable may be set in .config or on the make command line.

The Xen command line may be set with the bootargs parameter of the chosen node of the device tree.

Dom0 kernel

Enable at least ARCH_VEXPRESS, ARCH_VEXPRESS_DT, . Disable SPARSE_IRQ (it doesn't play nicely with device tree support).

A working configuration is available here.

The Linux command line may be set with the xen,dom0-bootargs parameter of the chosen node of the device tree supplied to Xen.

Device Tree Blob (DTB)

Build the device tree blobs (flattened device tree binary files) with make dtbs. A suitable DTB file for the envelope model is vexpress-v2p-aem-v7a.dtb.

Flash Image

The dom0 kernel is loaded by Xen from the beginning of the flash.

Native boot

To boot the kernel natively use an updated boot-wrapper from git://xenbits.xen.org/people/dvrabel/boot-wrapper.git.

For a native boot the kernel should have ARM_APPENDED_DTB and ARM_ATAG_DTB_COMPAT enabled. The kernel zImage and the DTB should be appended. e.g., cat zImage vexpress-v2p-aem-v7a.dtb > image.bin.

Developer FAQs

Use the Xen ARMv7 Dev FAQ page to cover commonly asked questions.