blob: 0ec02f4726b592f545dd387a13c152f71607e7cf [file] [log] [blame]
David Gibsonea20ff52007-05-08 14:09:18 +10001/*
2 * Device Tree Source for IBM Ebony
3 *
4 * Copyright (c) 2006, 2007 IBM Corp.
5 * Josh Boyer <jwboyer@linux.vnet.ibm.com>, David Gibson <dwg@au1.ibm.com>
6 *
7 * FIXME: Draft only!
8 *
9 * This file is licensed under the terms of the GNU General Public
10 * License version 2. This program is licensed "as is" without
11 * any warranty of any kind, whether express or implied.
12 *
13 * To build:
14 * dtc -I dts -O asm -o ebony.S -b 0 ebony.dts
15 * dtc -I dts -O dtb -o ebony.dtb -b 0 ebony.dts
16 */
17
18/ {
19 #address-cells = <2>;
20 #size-cells = <1>;
21 model = "ibm,ebony";
22 compatible = "ibm,ebony";
23 dcr-parent = <&/cpus/PowerPC,440GP@0>;
24
25 cpus {
26 #address-cells = <1>;
27 #size-cells = <0>;
28
29 PowerPC,440GP@0 {
30 device_type = "cpu";
31 reg = <0>;
32 clock-frequency = <0>; // Filled in by zImage
33 timebase-frequency = <0>; // Filled in by zImage
34 i-cache-line-size = <32>;
35 d-cache-line-size = <32>;
David Gibsonc72ea772007-05-16 13:48:50 +100036 i-cache-size = <8000>; /* 32 kB */
37 d-cache-size = <8000>; /* 32 kB */
David Gibsonea20ff52007-05-08 14:09:18 +100038 dcr-controller;
39 dcr-access-method = "native";
40 };
41 };
42
43 memory {
44 device_type = "memory";
45 reg = <0 0 0>; // Filled in by zImage
46 };
47
48 UIC0: interrupt-controller0 {
David Gibsonea20ff52007-05-08 14:09:18 +100049 compatible = "ibm,uic-440gp", "ibm,uic";
50 interrupt-controller;
51 cell-index = <0>;
52 dcr-reg = <0c0 009>;
53 #address-cells = <0>;
54 #size-cells = <0>;
55 #interrupt-cells = <2>;
56
57 };
58
59 UIC1: interrupt-controller1 {
David Gibsonea20ff52007-05-08 14:09:18 +100060 compatible = "ibm,uic-440gp", "ibm,uic";
61 interrupt-controller;
62 cell-index = <1>;
63 dcr-reg = <0d0 009>;
64 #address-cells = <0>;
65 #size-cells = <0>;
66 #interrupt-cells = <2>;
67 interrupts = <1e 4 1f 4>; /* cascade */
68 interrupt-parent = <&UIC0>;
69 };
70
71 CPC0: cpc {
David Gibsonea20ff52007-05-08 14:09:18 +100072 compatible = "ibm,cpc-440gp";
73 dcr-reg = <0b0 003 0e0 010>;
74 // FIXME: anything else?
75 };
76
77 plb {
David Gibsonea20ff52007-05-08 14:09:18 +100078 compatible = "ibm,plb-440gp", "ibm,plb4";
79 #address-cells = <2>;
80 #size-cells = <1>;
81 ranges;
82 clock-frequency = <0>; // Filled in by zImage
83
David Gibsonc72ea772007-05-16 13:48:50 +100084 SDRAM0: memory-controller {
85 compatible = "ibm,sdram-440gp";
David Gibsonea20ff52007-05-08 14:09:18 +100086 dcr-reg = <010 2>;
87 // FIXME: anything else?
88 };
89
David Gibsonc72ea772007-05-16 13:48:50 +100090 SRAM0: sram {
91 compatible = "ibm,sram-440gp";
92 dcr-reg = <020 8 00a 1>;
93 };
94
David Gibsonea20ff52007-05-08 14:09:18 +100095 DMA0: dma {
96 // FIXME: ???
David Gibsonc72ea772007-05-16 13:48:50 +100097 compatible = "ibm,dma-440gp";
David Gibsonea20ff52007-05-08 14:09:18 +100098 dcr-reg = <100 027>;
99 };
100
101 MAL0: mcmal {
David Gibsonea20ff52007-05-08 14:09:18 +1000102 compatible = "ibm,mcmal-440gp", "ibm,mcmal";
103 dcr-reg = <180 62>;
104 num-tx-chans = <4>;
105 num-rx-chans = <4>;
106 interrupt-parent = <&MAL0>;
107 interrupts = <0 1 2 3 4>;
108 #interrupt-cells = <1>;
109 #address-cells = <0>;
110 #size-cells = <0>;
111 interrupt-map = </*TXEOB*/ 0 &UIC0 a 4
112 /*RXEOB*/ 1 &UIC0 b 4
113 /*SERR*/ 2 &UIC1 0 4
114 /*TXDE*/ 3 &UIC1 1 4
115 /*RXDE*/ 4 &UIC1 2 4>;
116 interrupt-map-mask = <ffffffff>;
117 };
118
119 POB0: opb {
David Gibsonea20ff52007-05-08 14:09:18 +1000120 compatible = "ibm,opb-440gp", "ibm,opb";
121 #address-cells = <1>;
122 #size-cells = <1>;
123 /* Wish there was a nicer way of specifying a full 32-bit
124 range */
125 ranges = <00000000 1 00000000 80000000
126 80000000 1 80000000 80000000>;
127 dcr-reg = <090 00b>;
128 interrupt-parent = <&UIC1>;
129 interrupts = <7 4>;
130 clock-frequency = <0>; // Filled in by zImage
131
132 EBC0: ebc {
David Gibsonc72ea772007-05-16 13:48:50 +1000133 compatible = "ibm,ebc-440gp", "ibm,ebc";
David Gibsonea20ff52007-05-08 14:09:18 +1000134 dcr-reg = <012 2>;
135 #address-cells = <2>;
136 #size-cells = <1>;
137 clock-frequency = <0>; // Filled in by zImage
138 ranges = <0 00000000 fff00000 100000
139 1 00000000 48000000 100000
140 2 00000000 ff800000 400000
141 3 00000000 48200000 100000
142 7 00000000 48300000 100000>;
143 interrupts = <5 4>;
144 interrupt-parent = <&UIC1>;
145
David Gibsonc72ea772007-05-16 13:48:50 +1000146 small-flash@0,80000 {
David Gibsonea20ff52007-05-08 14:09:18 +1000147 device_type = "rom";
148 compatible = "direct-mapped";
149 probe-type = "JEDEC";
150 bank-width = <1>;
151 partitions = <0 80000>;
152 partition-names = "OpenBIOS";
153 reg = <0 80000 80000>;
154 };
155
156 ds1743@1,0 {
157 /* NVRAM & RTC */
David Gibsonea20ff52007-05-08 14:09:18 +1000158 compatible = "ds1743";
159 reg = <1 0 2000>;
160 };
161
162 large-flash@2,0 {
163 device_type = "rom";
164 compatible = "direct-mapped";
165 probe-type = "JEDEC";
166 bank-width = <1>;
167 partitions = <0 380000
David Gibsonc72ea772007-05-16 13:48:50 +1000168 380000 80000>;
David Gibsonea20ff52007-05-08 14:09:18 +1000169 partition-names = "fs", "firmware";
170 reg = <2 0 400000>;
171 };
172
173 ir@3,0 {
174 reg = <3 0 10>;
175 };
176
177 fpga@7,0 {
178 compatible = "Ebony-FPGA";
179 reg = <7 0 10>;
180 };
181 };
182
183 UART0: serial@40000200 {
184 device_type = "serial";
185 compatible = "ns16550";
186 reg = <40000200 8>;
187 virtual-reg = <e0000200>;
188 clock-frequency = <A8C000>;
189 current-speed = <2580>;
190 interrupt-parent = <&UIC0>;
191 interrupts = <0 4>;
192 };
193
194 UART1: serial@40000300 {
195 device_type = "serial";
196 compatible = "ns16550";
197 reg = <40000300 8>;
198 virtual-reg = <e0000300>;
199 clock-frequency = <A8C000>;
200 current-speed = <2580>;
201 interrupt-parent = <&UIC0>;
202 interrupts = <1 4>;
203 };
204
205 IIC0: i2c@40000400 {
206 /* FIXME */
207 device_type = "i2c";
208 compatible = "ibm,iic-440gp", "ibm,iic";
209 reg = <40000400 14>;
210 interrupt-parent = <&UIC0>;
211 interrupts = <2 4>;
212 };
213 IIC1: i2c@40000500 {
214 /* FIXME */
215 device_type = "i2c";
216 compatible = "ibm,iic-440gp", "ibm,iic";
217 reg = <40000500 14>;
218 interrupt-parent = <&UIC0>;
219 interrupts = <3 4>;
220 };
221
222 GPIO0: gpio@40000700 {
223 /* FIXME */
David Gibsonea20ff52007-05-08 14:09:18 +1000224 compatible = "ibm,gpio-440gp";
225 reg = <40000700 20>;
226 };
227
228 ZMII0: emac-zmii@40000780 {
David Gibsonea20ff52007-05-08 14:09:18 +1000229 compatible = "ibm,zmii-440gp", "ibm,zmii";
230 reg = <40000780 c>;
231 };
232
233 EMAC0: ethernet@40000800 {
234 linux,network-index = <0>;
235 device_type = "network";
236 compatible = "ibm,emac-440gp", "ibm,emac";
237 interrupt-parent = <&UIC1>;
238 interrupts = <1c 4 1d 4>;
239 reg = <40000800 70>;
240 local-mac-address = [000000000000]; // Filled in by zImage
241 mal-device = <&MAL0>;
242 mal-tx-channel = <0 1>;
243 mal-rx-channel = <0>;
244 cell-index = <0>;
245 max-frame-size = <5dc>;
246 rx-fifo-size = <1000>;
247 tx-fifo-size = <800>;
248 phy-mode = "rmii";
249 phy-map = <00000001>;
250 zmii-device = <&ZMII0>;
251 zmii-channel = <0>;
252 };
253 EMAC1: ethernet@40000900 {
254 linux,network-index = <1>;
255 device_type = "network";
256 compatible = "ibm,emac-440gp", "ibm,emac";
257 interrupt-parent = <&UIC1>;
258 interrupts = <1e 4 1f 4>;
259 reg = <40000900 70>;
260 local-mac-address = [000000000000]; // Filled in by zImage
261 mal-device = <&MAL0>;
262 mal-tx-channel = <2 3>;
263 mal-rx-channel = <1>;
264 cell-index = <1>;
265 max-frame-size = <5dc>;
266 rx-fifo-size = <1000>;
267 tx-fifo-size = <800>;
268 phy-mode = "rmii";
269 phy-map = <00000001>;
270 zmii-device = <&ZMII0>;
271 zmii-channel = <1>;
272 };
273
274
275 GPT0: gpt@40000a00 {
276 /* FIXME */
277 reg = <40000a00 d4>;
278 interrupt-parent = <&UIC0>;
279 interrupts = <12 4 13 4 14 4 15 4 16 4>;
280 };
281
282 };
283
284 PCIX0: pci@1234 {
285 device_type = "pci";
286 /* FIXME */
287 reg = <2 0ec00000 8
288 2 0ec80000 f0
289 2 0ec80100 fc>;
290 };
291 };
292
293 chosen {
294 linux,stdout-path = "/plb/opb/serial@40000200";
David Gibsonea20ff52007-05-08 14:09:18 +1000295 };
296};