Commit ea20ff5d0338a0fbd78783df657f94ffa7967dd9
Committed by
Paul Mackerras
1 parent
2cd9764770
Exists in
master
and in
7 other branches
[POWERPC] Add device tree for Ebony
Add a device tree for the Ebony evaluation board (440GP based). This tree is not complete or finalized. This tree needs a version of dtc recent enough to include reference-to-labels to process. Signed-off-by: David Gibson <dwg@au1.ibm.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
Showing 1 changed file with 307 additions and 0 deletions Side-by-side Diff
arch/powerpc/boot/dts/ebony.dts
1 | +/* | |
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>; | |
36 | + i-cache-size = <0>; | |
37 | + d-cache-size = <0>; | |
38 | + 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 { | |
49 | + device_type = "ibm,uic"; | |
50 | + compatible = "ibm,uic-440gp", "ibm,uic"; | |
51 | + interrupt-controller; | |
52 | + cell-index = <0>; | |
53 | + dcr-reg = <0c0 009>; | |
54 | + #address-cells = <0>; | |
55 | + #size-cells = <0>; | |
56 | + #interrupt-cells = <2>; | |
57 | + | |
58 | + }; | |
59 | + | |
60 | + UIC1: interrupt-controller1 { | |
61 | + device_type = "ibm,uic"; | |
62 | + compatible = "ibm,uic-440gp", "ibm,uic"; | |
63 | + interrupt-controller; | |
64 | + cell-index = <1>; | |
65 | + dcr-reg = <0d0 009>; | |
66 | + #address-cells = <0>; | |
67 | + #size-cells = <0>; | |
68 | + #interrupt-cells = <2>; | |
69 | + interrupts = <1e 4 1f 4>; /* cascade */ | |
70 | + interrupt-parent = <&UIC0>; | |
71 | + }; | |
72 | + | |
73 | + CPC0: cpc { | |
74 | + device_type = "ibm,cpc"; | |
75 | + compatible = "ibm,cpc-440gp"; | |
76 | + dcr-reg = <0b0 003 0e0 010>; | |
77 | + // FIXME: anything else? | |
78 | + }; | |
79 | + | |
80 | + plb { | |
81 | + device_type = "ibm,plb"; | |
82 | + compatible = "ibm,plb-440gp", "ibm,plb4"; | |
83 | + #address-cells = <2>; | |
84 | + #size-cells = <1>; | |
85 | + ranges; | |
86 | + clock-frequency = <0>; // Filled in by zImage | |
87 | + | |
88 | + SDRAM0: sdram { | |
89 | + device_type = "memory-controller"; | |
90 | + compatible = "ibm,sdram-440gp", "ibm,sdram"; | |
91 | + dcr-reg = <010 2>; | |
92 | + // FIXME: anything else? | |
93 | + }; | |
94 | + | |
95 | + DMA0: dma { | |
96 | + // FIXME: ??? | |
97 | + device_type = "ibm,dma-4xx"; | |
98 | + compatible = "ibm,dma-440gp", "ibm,dma-4xx"; | |
99 | + dcr-reg = <100 027>; | |
100 | + }; | |
101 | + | |
102 | + MAL0: mcmal { | |
103 | + device_type = "mcmal-dma"; | |
104 | + compatible = "ibm,mcmal-440gp", "ibm,mcmal"; | |
105 | + dcr-reg = <180 62>; | |
106 | + num-tx-chans = <4>; | |
107 | + num-rx-chans = <4>; | |
108 | + interrupt-parent = <&MAL0>; | |
109 | + interrupts = <0 1 2 3 4>; | |
110 | + #interrupt-cells = <1>; | |
111 | + #address-cells = <0>; | |
112 | + #size-cells = <0>; | |
113 | + interrupt-map = </*TXEOB*/ 0 &UIC0 a 4 | |
114 | + /*RXEOB*/ 1 &UIC0 b 4 | |
115 | + /*SERR*/ 2 &UIC1 0 4 | |
116 | + /*TXDE*/ 3 &UIC1 1 4 | |
117 | + /*RXDE*/ 4 &UIC1 2 4>; | |
118 | + interrupt-map-mask = <ffffffff>; | |
119 | + }; | |
120 | + | |
121 | + POB0: opb { | |
122 | + device_type = "ibm,opb"; | |
123 | + compatible = "ibm,opb-440gp", "ibm,opb"; | |
124 | + #address-cells = <1>; | |
125 | + #size-cells = <1>; | |
126 | + /* Wish there was a nicer way of specifying a full 32-bit | |
127 | + range */ | |
128 | + ranges = <00000000 1 00000000 80000000 | |
129 | + 80000000 1 80000000 80000000>; | |
130 | + dcr-reg = <090 00b>; | |
131 | + interrupt-parent = <&UIC1>; | |
132 | + interrupts = <7 4>; | |
133 | + clock-frequency = <0>; // Filled in by zImage | |
134 | + | |
135 | + EBC0: ebc { | |
136 | + device_type = "ibm,ebc"; | |
137 | + compatible = "ibm,ebc-440gp"; | |
138 | + dcr-reg = <012 2>; | |
139 | + #address-cells = <2>; | |
140 | + #size-cells = <1>; | |
141 | + clock-frequency = <0>; // Filled in by zImage | |
142 | + ranges = <0 00000000 fff00000 100000 | |
143 | + 1 00000000 48000000 100000 | |
144 | + 2 00000000 ff800000 400000 | |
145 | + 3 00000000 48200000 100000 | |
146 | + 7 00000000 48300000 100000>; | |
147 | + interrupts = <5 4>; | |
148 | + interrupt-parent = <&UIC1>; | |
149 | + | |
150 | + small-flash@0,0 { | |
151 | + device_type = "rom"; | |
152 | + compatible = "direct-mapped"; | |
153 | + probe-type = "JEDEC"; | |
154 | + bank-width = <1>; | |
155 | + partitions = <0 80000>; | |
156 | + partition-names = "OpenBIOS"; | |
157 | + reg = <0 80000 80000>; | |
158 | + }; | |
159 | + | |
160 | + ds1743@1,0 { | |
161 | + /* NVRAM & RTC */ | |
162 | + device_type = "nvram"; | |
163 | + compatible = "ds1743"; | |
164 | + reg = <1 0 2000>; | |
165 | + }; | |
166 | + | |
167 | + large-flash@2,0 { | |
168 | + device_type = "rom"; | |
169 | + compatible = "direct-mapped"; | |
170 | + probe-type = "JEDEC"; | |
171 | + bank-width = <1>; | |
172 | + partitions = <0 380000 | |
173 | + 280000 80000>; | |
174 | + partition-names = "fs", "firmware"; | |
175 | + reg = <2 0 400000>; | |
176 | + }; | |
177 | + | |
178 | + ir@3,0 { | |
179 | + reg = <3 0 10>; | |
180 | + }; | |
181 | + | |
182 | + fpga@7,0 { | |
183 | + compatible = "Ebony-FPGA"; | |
184 | + reg = <7 0 10>; | |
185 | + }; | |
186 | + }; | |
187 | + | |
188 | + UART0: serial@40000200 { | |
189 | + device_type = "serial"; | |
190 | + compatible = "ns16550"; | |
191 | + reg = <40000200 8>; | |
192 | + virtual-reg = <e0000200>; | |
193 | + clock-frequency = <A8C000>; | |
194 | + current-speed = <2580>; | |
195 | + interrupt-parent = <&UIC0>; | |
196 | + interrupts = <0 4>; | |
197 | + }; | |
198 | + | |
199 | + UART1: serial@40000300 { | |
200 | + device_type = "serial"; | |
201 | + compatible = "ns16550"; | |
202 | + reg = <40000300 8>; | |
203 | + virtual-reg = <e0000300>; | |
204 | + clock-frequency = <A8C000>; | |
205 | + current-speed = <2580>; | |
206 | + interrupt-parent = <&UIC0>; | |
207 | + interrupts = <1 4>; | |
208 | + }; | |
209 | + | |
210 | + IIC0: i2c@40000400 { | |
211 | + /* FIXME */ | |
212 | + device_type = "i2c"; | |
213 | + compatible = "ibm,iic-440gp", "ibm,iic"; | |
214 | + reg = <40000400 14>; | |
215 | + interrupt-parent = <&UIC0>; | |
216 | + interrupts = <2 4>; | |
217 | + }; | |
218 | + IIC1: i2c@40000500 { | |
219 | + /* FIXME */ | |
220 | + device_type = "i2c"; | |
221 | + compatible = "ibm,iic-440gp", "ibm,iic"; | |
222 | + reg = <40000500 14>; | |
223 | + interrupt-parent = <&UIC0>; | |
224 | + interrupts = <3 4>; | |
225 | + }; | |
226 | + | |
227 | + GPIO0: gpio@40000700 { | |
228 | + /* FIXME */ | |
229 | + device_type = "gpio"; | |
230 | + compatible = "ibm,gpio-440gp"; | |
231 | + reg = <40000700 20>; | |
232 | + }; | |
233 | + | |
234 | + ZMII0: emac-zmii@40000780 { | |
235 | + device_type = "emac-zmii"; | |
236 | + compatible = "ibm,zmii-440gp", "ibm,zmii"; | |
237 | + reg = <40000780 c>; | |
238 | + }; | |
239 | + | |
240 | + EMAC0: ethernet@40000800 { | |
241 | + linux,network-index = <0>; | |
242 | + device_type = "network"; | |
243 | + compatible = "ibm,emac-440gp", "ibm,emac"; | |
244 | + interrupt-parent = <&UIC1>; | |
245 | + interrupts = <1c 4 1d 4>; | |
246 | + reg = <40000800 70>; | |
247 | + local-mac-address = [000000000000]; // Filled in by zImage | |
248 | + mal-device = <&MAL0>; | |
249 | + mal-tx-channel = <0 1>; | |
250 | + mal-rx-channel = <0>; | |
251 | + cell-index = <0>; | |
252 | + max-frame-size = <5dc>; | |
253 | + rx-fifo-size = <1000>; | |
254 | + tx-fifo-size = <800>; | |
255 | + phy-mode = "rmii"; | |
256 | + phy-map = <00000001>; | |
257 | + zmii-device = <&ZMII0>; | |
258 | + zmii-channel = <0>; | |
259 | + }; | |
260 | + EMAC1: ethernet@40000900 { | |
261 | + linux,network-index = <1>; | |
262 | + device_type = "network"; | |
263 | + compatible = "ibm,emac-440gp", "ibm,emac"; | |
264 | + interrupt-parent = <&UIC1>; | |
265 | + interrupts = <1e 4 1f 4>; | |
266 | + reg = <40000900 70>; | |
267 | + local-mac-address = [000000000000]; // Filled in by zImage | |
268 | + mal-device = <&MAL0>; | |
269 | + mal-tx-channel = <2 3>; | |
270 | + mal-rx-channel = <1>; | |
271 | + cell-index = <1>; | |
272 | + max-frame-size = <5dc>; | |
273 | + rx-fifo-size = <1000>; | |
274 | + tx-fifo-size = <800>; | |
275 | + phy-mode = "rmii"; | |
276 | + phy-map = <00000001>; | |
277 | + zmii-device = <&ZMII0>; | |
278 | + zmii-channel = <1>; | |
279 | + }; | |
280 | + | |
281 | + | |
282 | + GPT0: gpt@40000a00 { | |
283 | + /* FIXME */ | |
284 | + reg = <40000a00 d4>; | |
285 | + interrupt-parent = <&UIC0>; | |
286 | + interrupts = <12 4 13 4 14 4 15 4 16 4>; | |
287 | + }; | |
288 | + | |
289 | + }; | |
290 | + | |
291 | + PCIX0: pci@1234 { | |
292 | + device_type = "pci"; | |
293 | + /* FIXME */ | |
294 | + reg = <2 0ec00000 8 | |
295 | + 2 0ec80000 f0 | |
296 | + 2 0ec80100 fc>; | |
297 | + }; | |
298 | + }; | |
299 | + | |
300 | + chosen { | |
301 | + linux,stdout-path = "/plb/opb/serial@40000200"; | |
302 | +// linux,initrd-start = <0>; /* FIXME */ | |
303 | +// linux,initrd-end = <0>; | |
304 | +// bootargs = ""; | |
305 | + }; | |
306 | +}; |