Skip to content

Commit

Permalink
arm: introduce a DTS for Xen unprivileged virtual machines
Browse files Browse the repository at this point in the history
Given that the xenvm machine is based on vexpress but with an extremely
limited selection of peripherals (the guest is supposed to use virtual
devices instead), add "xen,xenvm" to the list of compatible machines in
mach-vexpress.


Changes in v3:

- add comments to mark fields that are likely to be changed by the
hypervisor.


Changes in v2:

- remove include skeleton;
- use #address-cells = <2> and #size-cells = <2>;
- remove the debug bootargs;
- use memory@80000000 instead of memory;
- remove the ranges and interrupt-map from the motherboard node;
- set the machine compatible to "xen,xenvm-4.2", "xen,xenvm";
- rename the dts file to xenvm-4.2.dts;
- add "xen,xenvm" to the list of compatible DT strings to mach-vexpress.


Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Pawel Moll <pawel.moll@arm.com> (v2m changes)
  • Loading branch information
Stefano Stabellini committed Sep 24, 2012
1 parent 77bfb47 commit bbd6eb2
Show file tree
Hide file tree
Showing 3 changed files with 71 additions and 1 deletion.
68 changes: 68 additions & 0 deletions arch/arm/boot/dts/xenvm-4.2.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
/*
* Xen Virtual Machine for unprivileged guests
*
* Based on ARM Ltd. Versatile Express CoreTile Express (single CPU)
* Cortex-A15 MPCore (V2P-CA15)
*
*/

/dts-v1/;

/ {
model = "XENVM-4.2";
compatible = "xen,xenvm-4.2", "xen,xenvm";
interrupt-parent = <&gic>;
#address-cells = <2>;
#size-cells = <2>;

chosen {
/* this field is going to be adjusted by the hypervisor */
bootargs = "console=hvc0 root=/dev/xvda";
};

cpus {
#address-cells = <1>;
#size-cells = <0>;

cpu@0 {
device_type = "cpu";
compatible = "arm,cortex-a15";
reg = <0>;
};
};

memory@80000000 {
device_type = "memory";
/* this field is going to be adjusted by the hypervisor */
reg = <0 0x80000000 0 0x08000000>;
};

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 0x100>;
};

timer {
compatible = "arm,armv7-timer";
interrupts = <1 13 0xf08>,
<1 14 0xf08>,
<1 11 0xf08>,
<1 10 0xf08>;
};

hypervisor {
compatible = "xen,xen-4.2", "xen,xen";
/* this field is going to be adjusted by the hypervisor */
reg = <0 0xb0000000 0 0x20000>;
/* this field is going to be adjusted by the hypervisor */
interrupts = <1 15 0xf08>;
};

motherboard {
arm,v2m-memory-map = "rs1";
};
};
3 changes: 2 additions & 1 deletion arch/arm/mach-vexpress/Makefile.boot
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,5 @@ initrd_phys-y := 0x60800000
dtb-$(CONFIG_ARCH_VEXPRESS_DT) += vexpress-v2p-ca5s.dtb \
vexpress-v2p-ca9.dtb \
vexpress-v2p-ca15-tc1.dtb \
vexpress-v2p-ca15_a7.dtb
vexpress-v2p-ca15_a7.dtb \
xenvm-4.2.dtb
1 change: 1 addition & 0 deletions arch/arm/mach-vexpress/v2m.c
Original file line number Diff line number Diff line change
Expand Up @@ -658,6 +658,7 @@ static void __init v2m_dt_init(void)

const static char *v2m_dt_match[] __initconst = {
"arm,vexpress",
"xen,xenvm",
NULL,
};

Expand Down

0 comments on commit bbd6eb2

Please sign in to comment.