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 = <20>; 35 d-cache-line-size = <20>; 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 property is supplied by zImage 139 // based on firmware's configuration of the 140 // EBC bridge 141 interrupts = <5 4>; 142 interrupt-parent = <&UIC1>; 143 144 small-flash@0,80000 { 145 device_type = "rom"; 146 compatible = "direct-mapped"; 147 probe-type = "JEDEC"; 148 bank-width = <1>; 149 partitions = <0 80000>; 150 partition-names = "OpenBIOS"; 151 reg = <0 80000 80000>; 152 }; 153 154 ds1743@1,0 { 155 /* NVRAM & RTC */ 156 compatible = "ds1743"; 157 reg = <1 0 2000>; 158 }; 159 160 large-flash@2,0 { 161 device_type = "rom"; 162 compatible = "direct-mapped"; 163 probe-type = "JEDEC"; 164 bank-width = <1>; 165 partitions = <0 380000 166 380000 80000>; 167 partition-names = "fs", "firmware"; 168 reg = <2 0 400000>; 169 }; 170 171 ir@3,0 { 172 reg = <3 0 10>; 173 }; 174 175 fpga@7,0 { 176 compatible = "Ebony-FPGA"; 177 reg = <7 0 10>; 178 virtual-reg = <e8300000>; 179 }; 180 }; 181 182 UART0: serial@40000200 { 183 device_type = "serial"; 184 compatible = "ns16550"; 185 reg = <40000200 8>; 186 virtual-reg = <e0000200>; 187 clock-frequency = <A8C000>; 188 current-speed = <2580>; 189 interrupt-parent = <&UIC0>; 190 interrupts = <0 4>; 191 }; 192 193 UART1: serial@40000300 { 194 device_type = "serial"; 195 compatible = "ns16550"; 196 reg = <40000300 8>; 197 virtual-reg = <e0000300>; 198 clock-frequency = <A8C000>; 199 current-speed = <2580>; 200 interrupt-parent = <&UIC0>; 201 interrupts = <1 4>; 202 }; 203 204 IIC0: i2c@40000400 { 205 /* FIXME */ 206 device_type = "i2c"; 207 compatible = "ibm,iic-440gp", "ibm,iic"; 208 reg = <40000400 14>; 209 interrupt-parent = <&UIC0>; 210 interrupts = <2 4>; 211 }; 212 IIC1: i2c@40000500 { 213 /* FIXME */ 214 device_type = "i2c"; 215 compatible = "ibm,iic-440gp", "ibm,iic"; 216 reg = <40000500 14>; 217 interrupt-parent = <&UIC0>; 218 interrupts = <3 4>; 219 }; 220 221 GPIO0: gpio@40000700 { 222 /* FIXME */ 223 compatible = "ibm,gpio-440gp"; 224 reg = <40000700 20>; 225 }; 226 227 ZMII0: emac-zmii@40000780 { 228 compatible = "ibm,zmii-440gp", "ibm,zmii"; 229 reg = <40000780 c>; 230 }; 231 232 EMAC0: ethernet@40000800 { 233 linux,network-index = <0>; 234 device_type = "network"; 235 compatible = "ibm,emac-440gp", "ibm,emac"; 236 interrupt-parent = <&UIC1>; 237 interrupts = <1c 4 1d 4>; 238 reg = <40000800 70>; 239 local-mac-address = [000000000000]; // Filled in by zImage 240 mal-device = <&MAL0>; 241 mal-tx-channel = <0 1>; 242 mal-rx-channel = <0>; 243 cell-index = <0>; 244 max-frame-size = <5dc>; 245 rx-fifo-size = <1000>; 246 tx-fifo-size = <800>; 247 phy-mode = "rmii"; 248 phy-map = <00000001>; 249 zmii-device = <&ZMII0>; 250 zmii-channel = <0>; 251 }; 252 EMAC1: ethernet@40000900 { 253 linux,network-index = <1>; 254 device_type = "network"; 255 compatible = "ibm,emac-440gp", "ibm,emac"; 256 interrupt-parent = <&UIC1>; 257 interrupts = <1e 4 1f 4>; 258 reg = <40000900 70>; 259 local-mac-address = [000000000000]; // Filled in by zImage 260 mal-device = <&MAL0>; 261 mal-tx-channel = <2 3>; 262 mal-rx-channel = <1>; 263 cell-index = <1>; 264 max-frame-size = <5dc>; 265 rx-fifo-size = <1000>; 266 tx-fifo-size = <800>; 267 phy-mode = "rmii"; 268 phy-map = <00000001>; 269 zmii-device = <&ZMII0>; 270 zmii-channel = <1>; 271 }; 272 273 274 GPT0: gpt@40000a00 { 275 /* FIXME */ 276 reg = <40000a00 d4>; 277 interrupt-parent = <&UIC0>; 278 interrupts = <12 4 13 4 14 4 15 4 16 4>; 279 }; 280 281 }; 282 283 PCIX0: pci@1234 { 284 device_type = "pci"; 285 /* FIXME */ 286 reg = <2 0ec00000 8 287 2 0ec80000 f0 288 2 0ec80100 fc>; 289 }; 290 }; 291 292 chosen { 293 linux,stdout-path = "/plb/opb/serial@40000200"; 294 }; 295}; 296