xref: /freebsd/sys/contrib/device-tree/src/powerpc/iss4xx.dts (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1*c66ec88fSEmmanuel Vadot/*
2*c66ec88fSEmmanuel Vadot * Device Tree Source for IBM Embedded PPC 476 Platform
3*c66ec88fSEmmanuel Vadot *
4*c66ec88fSEmmanuel Vadot * Copyright 2010 Torez Smith, IBM Corporation.
5*c66ec88fSEmmanuel Vadot *
6*c66ec88fSEmmanuel Vadot * Based on earlier code:
7*c66ec88fSEmmanuel Vadot *    Copyright (c) 2006, 2007 IBM Corp.
8*c66ec88fSEmmanuel Vadot *    Josh Boyer <jwboyer@linux.vnet.ibm.com>, David Gibson <dwg@au1.ibm.com>
9*c66ec88fSEmmanuel Vadot *
10*c66ec88fSEmmanuel Vadot * This file is licensed under the terms of the GNU General Public
11*c66ec88fSEmmanuel Vadot * License version 2.  This program is licensed "as is" without
12*c66ec88fSEmmanuel Vadot * any warranty of any kind, whether express or implied.
13*c66ec88fSEmmanuel Vadot */
14*c66ec88fSEmmanuel Vadot
15*c66ec88fSEmmanuel Vadot/dts-v1/;
16*c66ec88fSEmmanuel Vadot
17*c66ec88fSEmmanuel Vadot/ {
18*c66ec88fSEmmanuel Vadot	#address-cells = <2>;
19*c66ec88fSEmmanuel Vadot	#size-cells = <1>;
20*c66ec88fSEmmanuel Vadot	model = "ibm,iss-4xx";
21*c66ec88fSEmmanuel Vadot	compatible = "ibm,iss-4xx";
22*c66ec88fSEmmanuel Vadot	dcr-parent = <&{/cpus/cpu@0}>;
23*c66ec88fSEmmanuel Vadot
24*c66ec88fSEmmanuel Vadot	aliases {
25*c66ec88fSEmmanuel Vadot		serial0 = &UART0;
26*c66ec88fSEmmanuel Vadot	};
27*c66ec88fSEmmanuel Vadot
28*c66ec88fSEmmanuel Vadot	cpus {
29*c66ec88fSEmmanuel Vadot		#address-cells = <1>;
30*c66ec88fSEmmanuel Vadot		#size-cells = <0>;
31*c66ec88fSEmmanuel Vadot
32*c66ec88fSEmmanuel Vadot		cpu@0 {
33*c66ec88fSEmmanuel Vadot			device_type = "cpu";
34*c66ec88fSEmmanuel Vadot			model = "PowerPC,4xx"; // real CPU changed in sim
35*c66ec88fSEmmanuel Vadot			reg = <0x00000000>;
36*c66ec88fSEmmanuel Vadot			clock-frequency = <100000000>; // 100Mhz :-)
37*c66ec88fSEmmanuel Vadot			timebase-frequency = <100000000>;
38*c66ec88fSEmmanuel Vadot			i-cache-line-size = <32>; // may need fixup in sim
39*c66ec88fSEmmanuel Vadot			d-cache-line-size = <32>; // may need fixup in sim
40*c66ec88fSEmmanuel Vadot			i-cache-size = <32768>; /* may need fixup in sim */
41*c66ec88fSEmmanuel Vadot			d-cache-size = <32768>; /* may need fixup in sim */
42*c66ec88fSEmmanuel Vadot			dcr-controller;
43*c66ec88fSEmmanuel Vadot			dcr-access-method = "native";
44*c66ec88fSEmmanuel Vadot		};
45*c66ec88fSEmmanuel Vadot	};
46*c66ec88fSEmmanuel Vadot
47*c66ec88fSEmmanuel Vadot	memory {
48*c66ec88fSEmmanuel Vadot		device_type = "memory";
49*c66ec88fSEmmanuel Vadot		reg = <0x00000000 0x00000000 0x00000000>; // Filled in by zImage
50*c66ec88fSEmmanuel Vadot	};
51*c66ec88fSEmmanuel Vadot
52*c66ec88fSEmmanuel Vadot	UIC0: interrupt-controller0 {
53*c66ec88fSEmmanuel Vadot		compatible = "ibm,uic-4xx", "ibm,uic";
54*c66ec88fSEmmanuel Vadot		interrupt-controller;
55*c66ec88fSEmmanuel Vadot		cell-index = <0>;
56*c66ec88fSEmmanuel Vadot		dcr-reg = <0x0c0 0x009>;
57*c66ec88fSEmmanuel Vadot		#address-cells = <0>;
58*c66ec88fSEmmanuel Vadot		#size-cells = <0>;
59*c66ec88fSEmmanuel Vadot		#interrupt-cells = <2>;
60*c66ec88fSEmmanuel Vadot
61*c66ec88fSEmmanuel Vadot	};
62*c66ec88fSEmmanuel Vadot
63*c66ec88fSEmmanuel Vadot	UIC1: interrupt-controller1 {
64*c66ec88fSEmmanuel Vadot		compatible = "ibm,uic-4xx", "ibm,uic";
65*c66ec88fSEmmanuel Vadot		interrupt-controller;
66*c66ec88fSEmmanuel Vadot		cell-index = <1>;
67*c66ec88fSEmmanuel Vadot		dcr-reg = <0x0d0 0x009>;
68*c66ec88fSEmmanuel Vadot		#address-cells = <0>;
69*c66ec88fSEmmanuel Vadot		#size-cells = <0>;
70*c66ec88fSEmmanuel Vadot		#interrupt-cells = <2>;
71*c66ec88fSEmmanuel Vadot		interrupts = <0x1e 0x4 0x1f 0x4>; /* cascade */
72*c66ec88fSEmmanuel Vadot		interrupt-parent = <&UIC0>;
73*c66ec88fSEmmanuel Vadot	};
74*c66ec88fSEmmanuel Vadot
75*c66ec88fSEmmanuel Vadot	plb {
76*c66ec88fSEmmanuel Vadot		compatible = "ibm,plb-4xx", "ibm,plb4"; /* Could be PLB6, doesn't matter */
77*c66ec88fSEmmanuel Vadot		#address-cells = <2>;
78*c66ec88fSEmmanuel Vadot		#size-cells = <1>;
79*c66ec88fSEmmanuel Vadot		ranges;
80*c66ec88fSEmmanuel Vadot		clock-frequency = <0>; // Filled in by zImage
81*c66ec88fSEmmanuel Vadot
82*c66ec88fSEmmanuel Vadot		POB0: opb {
83*c66ec88fSEmmanuel Vadot			compatible = "ibm,opb-4xx", "ibm,opb";
84*c66ec88fSEmmanuel Vadot			#address-cells = <1>;
85*c66ec88fSEmmanuel Vadot			#size-cells = <1>;
86*c66ec88fSEmmanuel Vadot			/* Wish there was a nicer way of specifying a full 32-bit
87*c66ec88fSEmmanuel Vadot			   range */
88*c66ec88fSEmmanuel Vadot			ranges = <0x00000000 0x00000001 0x00000000 0x80000000
89*c66ec88fSEmmanuel Vadot				  0x80000000 0x00000001 0x80000000 0x80000000>;
90*c66ec88fSEmmanuel Vadot			clock-frequency = <0>; // Filled in by zImage
91*c66ec88fSEmmanuel Vadot			UART0: serial@40000200 {
92*c66ec88fSEmmanuel Vadot				device_type = "serial";
93*c66ec88fSEmmanuel Vadot				compatible = "ns16550a";
94*c66ec88fSEmmanuel Vadot				reg = <0x40000200 0x00000008>;
95*c66ec88fSEmmanuel Vadot				virtual-reg = <0xe0000200>;
96*c66ec88fSEmmanuel Vadot				clock-frequency = <11059200>;
97*c66ec88fSEmmanuel Vadot				current-speed = <115200>;
98*c66ec88fSEmmanuel Vadot				interrupt-parent = <&UIC0>;
99*c66ec88fSEmmanuel Vadot				interrupts = <0x0 0x4>;
100*c66ec88fSEmmanuel Vadot			};
101*c66ec88fSEmmanuel Vadot		};
102*c66ec88fSEmmanuel Vadot	};
103*c66ec88fSEmmanuel Vadot
104*c66ec88fSEmmanuel Vadot	nvrtc {
105*c66ec88fSEmmanuel Vadot		compatible = "ds1743-nvram", "ds1743", "rtc-ds1743";
106*c66ec88fSEmmanuel Vadot		reg = <0 0xEF703000 0x2000>;
107*c66ec88fSEmmanuel Vadot	};
108*c66ec88fSEmmanuel Vadot	iss-block {
109*c66ec88fSEmmanuel Vadot		compatible = "ibm,iss-sim-block-device";
110*c66ec88fSEmmanuel Vadot		reg = <0 0xEF701000 0x1000>;
111*c66ec88fSEmmanuel Vadot	};
112*c66ec88fSEmmanuel Vadot
113*c66ec88fSEmmanuel Vadot	chosen {
114*c66ec88fSEmmanuel Vadot		stdout-path = "/plb/opb/serial@40000200";
115*c66ec88fSEmmanuel Vadot	};
116*c66ec88fSEmmanuel Vadot};
117