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 = <8000>; /* 32 kB */ 37 d-cache-size = <8000>; /* 32 kB */ 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 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 { 60 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 { 72 compatible = "ibm,cpc-440gp"; 73 dcr-reg = <0b0 003 0e0 010>; 74 // FIXME: anything else? 75 }; 76 77 plb { 78 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 84 SDRAM0: memory-controller { 85 compatible = "ibm,sdram-440gp"; 86 dcr-reg = <010 2>; 87 // FIXME: anything else? 88 }; 89 90 SRAM0: sram { 91 compatible = "ibm,sram-440gp"; 92 dcr-reg = <020 8 00a 1>; 93 }; 94 95 DMA0: dma { 96 // FIXME: ??? 97 compatible = "ibm,dma-440gp"; 98 dcr-reg = <100 027>; 99 }; 100 101 MAL0: mcmal { 102 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 { 120 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 { 133 compatible = "ibm,ebc-440gp", "ibm,ebc"; 134 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 146 small-flash@0,80000 { 147 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 */ 158 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 168 380000 80000>; 169 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 */ 224 compatible = "ibm,gpio-440gp"; 225 reg = <40000700 20>; 226 }; 227 228 ZMII0: emac-zmii@40000780 { 229 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"; 295 }; 296}; 297