1*f126890aSEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0 2*f126890aSEmmanuel Vadot/* 3*f126890aSEmmanuel Vadot * Xen Virtual Machine for unprivileged guests 4*f126890aSEmmanuel Vadot * 5*f126890aSEmmanuel Vadot * Based on ARM Ltd. Versatile Express CoreTile Express (single CPU) 6*f126890aSEmmanuel Vadot * Cortex-A15 MPCore (V2P-CA15) 7*f126890aSEmmanuel Vadot * 8*f126890aSEmmanuel Vadot */ 9*f126890aSEmmanuel Vadot 10*f126890aSEmmanuel Vadot/dts-v1/; 11*f126890aSEmmanuel Vadot 12*f126890aSEmmanuel Vadot/ { 13*f126890aSEmmanuel Vadot model = "XENVM-4.2"; 14*f126890aSEmmanuel Vadot compatible = "xen,xenvm-4.2", "xen,xenvm"; 15*f126890aSEmmanuel Vadot interrupt-parent = <&gic>; 16*f126890aSEmmanuel Vadot #address-cells = <2>; 17*f126890aSEmmanuel Vadot #size-cells = <2>; 18*f126890aSEmmanuel Vadot 19*f126890aSEmmanuel Vadot chosen { 20*f126890aSEmmanuel Vadot /* this field is going to be adjusted by the hypervisor */ 21*f126890aSEmmanuel Vadot bootargs = "console=hvc0 root=/dev/xvda"; 22*f126890aSEmmanuel Vadot }; 23*f126890aSEmmanuel Vadot 24*f126890aSEmmanuel Vadot cpus { 25*f126890aSEmmanuel Vadot #address-cells = <1>; 26*f126890aSEmmanuel Vadot #size-cells = <0>; 27*f126890aSEmmanuel Vadot 28*f126890aSEmmanuel Vadot cpu@0 { 29*f126890aSEmmanuel Vadot device_type = "cpu"; 30*f126890aSEmmanuel Vadot compatible = "arm,cortex-a15"; 31*f126890aSEmmanuel Vadot reg = <0>; 32*f126890aSEmmanuel Vadot }; 33*f126890aSEmmanuel Vadot 34*f126890aSEmmanuel Vadot cpu@1 { 35*f126890aSEmmanuel Vadot device_type = "cpu"; 36*f126890aSEmmanuel Vadot compatible = "arm,cortex-a15"; 37*f126890aSEmmanuel Vadot reg = <1>; 38*f126890aSEmmanuel Vadot }; 39*f126890aSEmmanuel Vadot }; 40*f126890aSEmmanuel Vadot 41*f126890aSEmmanuel Vadot psci { 42*f126890aSEmmanuel Vadot compatible = "arm,psci"; 43*f126890aSEmmanuel Vadot method = "hvc"; 44*f126890aSEmmanuel Vadot cpu_off = <1>; 45*f126890aSEmmanuel Vadot cpu_on = <2>; 46*f126890aSEmmanuel Vadot }; 47*f126890aSEmmanuel Vadot 48*f126890aSEmmanuel Vadot memory@80000000 { 49*f126890aSEmmanuel Vadot device_type = "memory"; 50*f126890aSEmmanuel Vadot /* this field is going to be adjusted by the hypervisor */ 51*f126890aSEmmanuel Vadot reg = <0 0x80000000 0 0x08000000>; 52*f126890aSEmmanuel Vadot }; 53*f126890aSEmmanuel Vadot 54*f126890aSEmmanuel Vadot gic: interrupt-controller@2c001000 { 55*f126890aSEmmanuel Vadot compatible = "arm,cortex-a15-gic", "arm,cortex-a9-gic"; 56*f126890aSEmmanuel Vadot #interrupt-cells = <3>; 57*f126890aSEmmanuel Vadot #address-cells = <0>; 58*f126890aSEmmanuel Vadot interrupt-controller; 59*f126890aSEmmanuel Vadot reg = <0 0x2c001000 0 0x1000>, 60*f126890aSEmmanuel Vadot <0 0x2c002000 0 0x100>; 61*f126890aSEmmanuel Vadot }; 62*f126890aSEmmanuel Vadot 63*f126890aSEmmanuel Vadot timer { 64*f126890aSEmmanuel Vadot compatible = "arm,armv7-timer"; 65*f126890aSEmmanuel Vadot interrupts = <1 13 0xf08>, 66*f126890aSEmmanuel Vadot <1 14 0xf08>, 67*f126890aSEmmanuel Vadot <1 11 0xf08>, 68*f126890aSEmmanuel Vadot <1 10 0xf08>; 69*f126890aSEmmanuel Vadot }; 70*f126890aSEmmanuel Vadot 71*f126890aSEmmanuel Vadot hypervisor { 72*f126890aSEmmanuel Vadot compatible = "xen,xen-4.2", "xen,xen"; 73*f126890aSEmmanuel Vadot /* this field is going to be adjusted by the hypervisor */ 74*f126890aSEmmanuel Vadot reg = <0 0xb0000000 0 0x20000>; 75*f126890aSEmmanuel Vadot /* this field is going to be adjusted by the hypervisor */ 76*f126890aSEmmanuel Vadot interrupts = <1 15 0xf08>; 77*f126890aSEmmanuel Vadot }; 78*f126890aSEmmanuel Vadot 79*f126890aSEmmanuel Vadot motherboard { 80*f126890aSEmmanuel Vadot arm,v2m-memory-map = "rs1"; 81*f126890aSEmmanuel Vadot }; 82*f126890aSEmmanuel Vadot}; 83