diff options
-rw-r--r-- | arch/arm/boot/dts/xenvm-4.2.dts | 68 | ||||
-rw-r--r-- | arch/arm/mach-vexpress/Makefile.boot | 3 | ||||
-rw-r--r-- | arch/arm/mach-vexpress/v2m.c | 1 |
3 files changed, 71 insertions, 1 deletions
diff --git a/arch/arm/boot/dts/xenvm-4.2.dts b/arch/arm/boot/dts/xenvm-4.2.dts new file mode 100644 index 000000000000..ec3f9528e180 --- /dev/null +++ b/arch/arm/boot/dts/xenvm-4.2.dts | |||
@@ -0,0 +1,68 @@ | |||
1 | /* | ||
2 | * Xen Virtual Machine for unprivileged guests | ||
3 | * | ||
4 | * Based on ARM Ltd. Versatile Express CoreTile Express (single CPU) | ||
5 | * Cortex-A15 MPCore (V2P-CA15) | ||
6 | * | ||
7 | */ | ||
8 | |||
9 | /dts-v1/; | ||
10 | |||
11 | / { | ||
12 | model = "XENVM-4.2"; | ||
13 | compatible = "xen,xenvm-4.2", "xen,xenvm"; | ||
14 | interrupt-parent = <&gic>; | ||
15 | #address-cells = <2>; | ||
16 | #size-cells = <2>; | ||
17 | |||
18 | chosen { | ||
19 | /* this field is going to be adjusted by the hypervisor */ | ||
20 | bootargs = "console=hvc0 root=/dev/xvda"; | ||
21 | }; | ||
22 | |||
23 | cpus { | ||
24 | #address-cells = <1>; | ||
25 | #size-cells = <0>; | ||
26 | |||
27 | cpu@0 { | ||
28 | device_type = "cpu"; | ||
29 | compatible = "arm,cortex-a15"; | ||
30 | reg = <0>; | ||
31 | }; | ||
32 | }; | ||
33 | |||
34 | memory@80000000 { | ||
35 | device_type = "memory"; | ||
36 | /* this field is going to be adjusted by the hypervisor */ | ||
37 | reg = <0 0x80000000 0 0x08000000>; | ||
38 | }; | ||
39 | |||
40 | gic: interrupt-controller@2c001000 { | ||
41 | compatible = "arm,cortex-a15-gic", "arm,cortex-a9-gic"; | ||
42 | #interrupt-cells = <3>; | ||
43 | #address-cells = <0>; | ||
44 | interrupt-controller; | ||
45 | reg = <0 0x2c001000 0 0x1000>, | ||
46 | <0 0x2c002000 0 0x100>; | ||
47 | }; | ||
48 | |||
49 | timer { | ||
50 | compatible = "arm,armv7-timer"; | ||
51 | interrupts = <1 13 0xf08>, | ||
52 | <1 14 0xf08>, | ||
53 | <1 11 0xf08>, | ||
54 | <1 10 0xf08>; | ||
55 | }; | ||
56 | |||
57 | hypervisor { | ||
58 | compatible = "xen,xen-4.2", "xen,xen"; | ||
59 | /* this field is going to be adjusted by the hypervisor */ | ||
60 | reg = <0 0xb0000000 0 0x20000>; | ||
61 | /* this field is going to be adjusted by the hypervisor */ | ||
62 | interrupts = <1 15 0xf08>; | ||
63 | }; | ||
64 | |||
65 | motherboard { | ||
66 | arm,v2m-memory-map = "rs1"; | ||
67 | }; | ||
68 | }; | ||
diff --git a/arch/arm/mach-vexpress/Makefile.boot b/arch/arm/mach-vexpress/Makefile.boot index 318d308dfb93..38dbaac63349 100644 --- a/arch/arm/mach-vexpress/Makefile.boot +++ b/arch/arm/mach-vexpress/Makefile.boot | |||
@@ -7,4 +7,5 @@ initrd_phys-y := 0x60800000 | |||
7 | dtb-$(CONFIG_ARCH_VEXPRESS_DT) += vexpress-v2p-ca5s.dtb \ | 7 | dtb-$(CONFIG_ARCH_VEXPRESS_DT) += vexpress-v2p-ca5s.dtb \ |
8 | vexpress-v2p-ca9.dtb \ | 8 | vexpress-v2p-ca9.dtb \ |
9 | vexpress-v2p-ca15-tc1.dtb \ | 9 | vexpress-v2p-ca15-tc1.dtb \ |
10 | vexpress-v2p-ca15_a7.dtb | 10 | vexpress-v2p-ca15_a7.dtb \ |
11 | xenvm-4.2.dtb | ||
diff --git a/arch/arm/mach-vexpress/v2m.c b/arch/arm/mach-vexpress/v2m.c index 37608f22ee31..0a79b085ceaf 100644 --- a/arch/arm/mach-vexpress/v2m.c +++ b/arch/arm/mach-vexpress/v2m.c | |||
@@ -658,6 +658,7 @@ static void __init v2m_dt_init(void) | |||
658 | 658 | ||
659 | const static char *v2m_dt_match[] __initconst = { | 659 | const static char *v2m_dt_match[] __initconst = { |
660 | "arm,vexpress", | 660 | "arm,vexpress", |
661 | "xen,xenvm", | ||
661 | NULL, | 662 | NULL, |
662 | }; | 663 | }; |
663 | 664 | ||