162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Xen Virtual Machine for unprivileged guests
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci * Based on ARM Ltd. Versatile Express CoreTile Express (single CPU)
662306a36Sopenharmony_ci * Cortex-A15 MPCore (V2P-CA15)
762306a36Sopenharmony_ci *
862306a36Sopenharmony_ci */
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ci/dts-v1/;
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ci/ {
1362306a36Sopenharmony_ci	model = "XENVM-4.2";
1462306a36Sopenharmony_ci	compatible = "xen,xenvm-4.2", "xen,xenvm";
1562306a36Sopenharmony_ci	interrupt-parent = <&gic>;
1662306a36Sopenharmony_ci	#address-cells = <2>;
1762306a36Sopenharmony_ci	#size-cells = <2>;
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ci	chosen {
2062306a36Sopenharmony_ci		/* this field is going to be adjusted by the hypervisor */
2162306a36Sopenharmony_ci		bootargs = "console=hvc0 root=/dev/xvda";
2262306a36Sopenharmony_ci	};
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ci	cpus {
2562306a36Sopenharmony_ci		#address-cells = <1>;
2662306a36Sopenharmony_ci		#size-cells = <0>;
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_ci		cpu@0 {
2962306a36Sopenharmony_ci			device_type = "cpu";
3062306a36Sopenharmony_ci			compatible = "arm,cortex-a15";
3162306a36Sopenharmony_ci			reg = <0>;
3262306a36Sopenharmony_ci		};
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ci		cpu@1 {
3562306a36Sopenharmony_ci			device_type = "cpu";
3662306a36Sopenharmony_ci			compatible = "arm,cortex-a15";
3762306a36Sopenharmony_ci			reg = <1>;
3862306a36Sopenharmony_ci		};
3962306a36Sopenharmony_ci	};
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ci	psci {
4262306a36Sopenharmony_ci		compatible      = "arm,psci";
4362306a36Sopenharmony_ci		method          = "hvc";
4462306a36Sopenharmony_ci		cpu_off         = <1>;
4562306a36Sopenharmony_ci		cpu_on          = <2>;
4662306a36Sopenharmony_ci	};
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_ci	memory@80000000 {
4962306a36Sopenharmony_ci		device_type = "memory";
5062306a36Sopenharmony_ci		/* this field is going to be adjusted by the hypervisor */
5162306a36Sopenharmony_ci		reg = <0 0x80000000 0 0x08000000>;
5262306a36Sopenharmony_ci	};
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_ci	gic: interrupt-controller@2c001000 {
5562306a36Sopenharmony_ci		compatible = "arm,cortex-a15-gic", "arm,cortex-a9-gic";
5662306a36Sopenharmony_ci		#interrupt-cells = <3>;
5762306a36Sopenharmony_ci		#address-cells = <0>;
5862306a36Sopenharmony_ci		interrupt-controller;
5962306a36Sopenharmony_ci		reg = <0 0x2c001000 0 0x1000>,
6062306a36Sopenharmony_ci		      <0 0x2c002000 0 0x100>;
6162306a36Sopenharmony_ci	};
6262306a36Sopenharmony_ci
6362306a36Sopenharmony_ci	timer {
6462306a36Sopenharmony_ci		compatible = "arm,armv7-timer";
6562306a36Sopenharmony_ci		interrupts = <1 13 0xf08>,
6662306a36Sopenharmony_ci			     <1 14 0xf08>,
6762306a36Sopenharmony_ci			     <1 11 0xf08>,
6862306a36Sopenharmony_ci			     <1 10 0xf08>;
6962306a36Sopenharmony_ci	};
7062306a36Sopenharmony_ci
7162306a36Sopenharmony_ci	hypervisor {
7262306a36Sopenharmony_ci		compatible = "xen,xen-4.2", "xen,xen";
7362306a36Sopenharmony_ci		/* this field is going to be adjusted by the hypervisor */
7462306a36Sopenharmony_ci		reg = <0 0xb0000000 0 0x20000>;
7562306a36Sopenharmony_ci		/* this field is going to be adjusted by the hypervisor */
7662306a36Sopenharmony_ci		interrupts = <1 15 0xf08>;
7762306a36Sopenharmony_ci	};
7862306a36Sopenharmony_ci
7962306a36Sopenharmony_ci	motherboard {
8062306a36Sopenharmony_ci		arm,v2m-memory-map = "rs1";
8162306a36Sopenharmony_ci	};
8262306a36Sopenharmony_ci};
83