xref: /freebsd/sys/contrib/device-tree/src/xtensa/virt.dts (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1*c66ec88fSEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0
2*c66ec88fSEmmanuel Vadot/dts-v1/;
3*c66ec88fSEmmanuel Vadot
4*c66ec88fSEmmanuel Vadot/ {
5*c66ec88fSEmmanuel Vadot	compatible = "cdns,xtensa-iss";
6*c66ec88fSEmmanuel Vadot	#address-cells = <1>;
7*c66ec88fSEmmanuel Vadot	#size-cells = <1>;
8*c66ec88fSEmmanuel Vadot	interrupt-parent = <&pic>;
9*c66ec88fSEmmanuel Vadot
10*c66ec88fSEmmanuel Vadot	chosen {
11*c66ec88fSEmmanuel Vadot		bootargs = "console=ttyS0,115200n8 debug";
12*c66ec88fSEmmanuel Vadot	};
13*c66ec88fSEmmanuel Vadot
14*c66ec88fSEmmanuel Vadot	memory@0 {
15*c66ec88fSEmmanuel Vadot		device_type = "memory";
16*c66ec88fSEmmanuel Vadot		reg = <0x00000000 0x80000000>;
17*c66ec88fSEmmanuel Vadot	};
18*c66ec88fSEmmanuel Vadot
19*c66ec88fSEmmanuel Vadot	cpus {
20*c66ec88fSEmmanuel Vadot		#address-cells = <1>;
21*c66ec88fSEmmanuel Vadot		#size-cells = <0>;
22*c66ec88fSEmmanuel Vadot		cpu@0 {
23*c66ec88fSEmmanuel Vadot			compatible = "cdns,xtensa-cpu";
24*c66ec88fSEmmanuel Vadot			reg = <0>;
25*c66ec88fSEmmanuel Vadot			clocks = <&osc>;
26*c66ec88fSEmmanuel Vadot		};
27*c66ec88fSEmmanuel Vadot	};
28*c66ec88fSEmmanuel Vadot
29*c66ec88fSEmmanuel Vadot	clocks {
30*c66ec88fSEmmanuel Vadot		osc: osc {
31*c66ec88fSEmmanuel Vadot			#clock-cells = <0>;
32*c66ec88fSEmmanuel Vadot			compatible = "fixed-clock";
33*c66ec88fSEmmanuel Vadot			clock-frequency = <40000000>;
34*c66ec88fSEmmanuel Vadot		};
35*c66ec88fSEmmanuel Vadot	};
36*c66ec88fSEmmanuel Vadot
37*c66ec88fSEmmanuel Vadot	pic: pic {
38*c66ec88fSEmmanuel Vadot		compatible = "cdns,xtensa-pic";
39*c66ec88fSEmmanuel Vadot		/* one cell: internal irq number,
40*c66ec88fSEmmanuel Vadot		 * two cells: second cell == 0: internal irq number
41*c66ec88fSEmmanuel Vadot		 *            second cell == 1: external irq number
42*c66ec88fSEmmanuel Vadot		 */
43*c66ec88fSEmmanuel Vadot		#address-cells = <0>;
44*c66ec88fSEmmanuel Vadot		#interrupt-cells = <2>;
45*c66ec88fSEmmanuel Vadot		interrupt-controller;
46*c66ec88fSEmmanuel Vadot	};
47*c66ec88fSEmmanuel Vadot
48*c66ec88fSEmmanuel Vadot	pci {
49*c66ec88fSEmmanuel Vadot		compatible = "pci-host-ecam-generic";
50*c66ec88fSEmmanuel Vadot		device_type = "pci";
51*c66ec88fSEmmanuel Vadot		#address-cells = <3>;
52*c66ec88fSEmmanuel Vadot		#size-cells = <2>;
53*c66ec88fSEmmanuel Vadot		#interrupt-cells = <0x1>;
54*c66ec88fSEmmanuel Vadot
55*c66ec88fSEmmanuel Vadot		bus-range = <0x0 0x3e>;
56*c66ec88fSEmmanuel Vadot		reg = <0xf0100000 0x03f00000>;
57*c66ec88fSEmmanuel Vadot
58*c66ec88fSEmmanuel Vadot		     // BUS_ADDRESS(3)  CPU_PHYSICAL(1)  SIZE(2)
59*c66ec88fSEmmanuel Vadot		ranges = <0x01000000 0x0 0x00000000  0xf0000000  0x0 0x00010000>,
60*c66ec88fSEmmanuel Vadot			 <0x02000000 0x0 0xf4000000  0xf4000000  0x0 0x08000000>;
61*c66ec88fSEmmanuel Vadot
62*c66ec88fSEmmanuel Vadot		     // PCI_DEVICE(3)  INT#(1)  CONTROLLER(PHANDLE)  CONTROLLER_DATA(2)
63*c66ec88fSEmmanuel Vadot		interrupt-map = <
64*c66ec88fSEmmanuel Vadot			0x0000 0x0 0x0  0x1  &pic  0x0 0x1
65*c66ec88fSEmmanuel Vadot			0x0800 0x0 0x0  0x1  &pic  0x1 0x1
66*c66ec88fSEmmanuel Vadot			0x1000 0x0 0x0  0x1  &pic  0x2 0x1
67*c66ec88fSEmmanuel Vadot			0x1800 0x0 0x0  0x1  &pic  0x3 0x1
68*c66ec88fSEmmanuel Vadot			>;
69*c66ec88fSEmmanuel Vadot
70*c66ec88fSEmmanuel Vadot		interrupt-map-mask = <0x1800 0x0 0x0  0x7>;
71*c66ec88fSEmmanuel Vadot	};
72*c66ec88fSEmmanuel Vadot};
73