1/* 2 * Device Tree Source for AMCC Rainier 3 * 4 * Based on Sequoia code 5 * Copyright (c) 2007 MontaVista Software, Inc. 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 */ 14 15/ { 16 #address-cells = <2>; 17 #size-cells = <1>; 18 model = "amcc,rainier"; 19 compatible = "amcc,rainier"; 20 dcr-parent = <&/cpus/cpu@0>; 21 22 cpus { 23 #address-cells = <1>; 24 #size-cells = <0>; 25 26 cpu@0 { 27 device_type = "cpu"; 28 model = "PowerPC,440GRx"; 29 reg = <0>; 30 clock-frequency = <0>; /* Filled in by zImage */ 31 timebase-frequency = <0>; /* Filled in by zImage */ 32 i-cache-line-size = <20>; 33 d-cache-line-size = <20>; 34 i-cache-size = <8000>; 35 d-cache-size = <8000>; 36 dcr-controller; 37 dcr-access-method = "native"; 38 }; 39 }; 40 41 memory { 42 device_type = "memory"; 43 reg = <0 0 0>; /* Filled in by zImage */ 44 }; 45 46 UIC0: interrupt-controller0 { 47 compatible = "ibm,uic-440grx","ibm,uic"; 48 interrupt-controller; 49 cell-index = <0>; 50 dcr-reg = <0c0 009>; 51 #address-cells = <0>; 52 #size-cells = <0>; 53 #interrupt-cells = <2>; 54 }; 55 56 UIC1: interrupt-controller1 { 57 compatible = "ibm,uic-440grx","ibm,uic"; 58 interrupt-controller; 59 cell-index = <1>; 60 dcr-reg = <0d0 009>; 61 #address-cells = <0>; 62 #size-cells = <0>; 63 #interrupt-cells = <2>; 64 interrupts = <1e 4 1f 4>; /* cascade */ 65 interrupt-parent = <&UIC0>; 66 }; 67 68 UIC2: interrupt-controller2 { 69 compatible = "ibm,uic-440grx","ibm,uic"; 70 interrupt-controller; 71 cell-index = <2>; 72 dcr-reg = <0e0 009>; 73 #address-cells = <0>; 74 #size-cells = <0>; 75 #interrupt-cells = <2>; 76 interrupts = <1c 4 1d 4>; /* cascade */ 77 interrupt-parent = <&UIC0>; 78 }; 79 80 SDR0: sdr { 81 compatible = "ibm,sdr-440grx", "ibm,sdr-440ep"; 82 dcr-reg = <00e 002>; 83 }; 84 85 CPR0: cpr { 86 compatible = "ibm,cpr-440grx", "ibm,cpr-440ep"; 87 dcr-reg = <00c 002>; 88 }; 89 90 plb { 91 compatible = "ibm,plb-440grx", "ibm,plb4"; 92 #address-cells = <2>; 93 #size-cells = <1>; 94 ranges; 95 clock-frequency = <0>; /* Filled in by zImage */ 96 97 SDRAM0: sdram { 98 compatible = "ibm,sdram-440grx", "ibm,sdram-44x-ddr2denali"; 99 dcr-reg = <010 2>; 100 }; 101 102 DMA0: dma { 103 compatible = "ibm,dma-440grx", "ibm,dma-4xx"; 104 dcr-reg = <100 027>; 105 }; 106 107 MAL0: mcmal { 108 compatible = "ibm,mcmal-440grx", "ibm,mcmal2"; 109 dcr-reg = <180 62>; 110 num-tx-chans = <2>; 111 num-rx-chans = <2>; 112 interrupt-parent = <&MAL0>; 113 interrupts = <0 1 2 3 4>; 114 #interrupt-cells = <1>; 115 #address-cells = <0>; 116 #size-cells = <0>; 117 interrupt-map = </*TXEOB*/ 0 &UIC0 a 4 118 /*RXEOB*/ 1 &UIC0 b 4 119 /*SERR*/ 2 &UIC1 0 4 120 /*TXDE*/ 3 &UIC1 1 4 121 /*RXDE*/ 4 &UIC1 2 4>; 122 interrupt-map-mask = <ffffffff>; 123 }; 124 125 POB0: opb { 126 compatible = "ibm,opb-440grx", "ibm,opb"; 127 #address-cells = <1>; 128 #size-cells = <1>; 129 ranges = <00000000 1 00000000 80000000 130 80000000 1 80000000 80000000>; 131 interrupt-parent = <&UIC1>; 132 interrupts = <7 4>; 133 clock-frequency = <0>; /* Filled in by zImage */ 134 135 EBC0: ebc { 136 compatible = "ibm,ebc-440grx", "ibm,ebc"; 137 dcr-reg = <012 2>; 138 #address-cells = <2>; 139 #size-cells = <1>; 140 clock-frequency = <0>; /* Filled in by zImage */ 141 interrupts = <5 1>; 142 interrupt-parent = <&UIC1>; 143 144 nor_flash@0,0 { 145 compatible = "amd,s29gl256n", "cfi-flash"; 146 bank-width = <2>; 147 reg = <0 000000 4000000>; 148 #address-cells = <1>; 149 #size-cells = <1>; 150 partition@0 { 151 label = "Kernel"; 152 reg = <0 180000>; 153 }; 154 partition@180000 { 155 label = "ramdisk"; 156 reg = <180000 200000>; 157 }; 158 partition@380000 { 159 label = "file system"; 160 reg = <380000 3aa0000>; 161 }; 162 partition@3e20000 { 163 label = "kozio"; 164 reg = <3e20000 140000>; 165 }; 166 partition@3f60000 { 167 label = "env"; 168 reg = <3f60000 40000>; 169 }; 170 partition@3fa0000 { 171 label = "u-boot"; 172 reg = <3fa0000 60000>; 173 }; 174 }; 175 176 }; 177 178 UART0: serial@ef600300 { 179 device_type = "serial"; 180 compatible = "ns16550"; 181 reg = <ef600300 8>; 182 virtual-reg = <ef600300>; 183 clock-frequency = <0>; /* Filled in by zImage */ 184 current-speed = <1c200>; 185 interrupt-parent = <&UIC0>; 186 interrupts = <0 4>; 187 }; 188 189 UART1: serial@ef600400 { 190 device_type = "serial"; 191 compatible = "ns16550"; 192 reg = <ef600400 8>; 193 virtual-reg = <ef600400>; 194 clock-frequency = <0>; 195 current-speed = <0>; 196 interrupt-parent = <&UIC0>; 197 interrupts = <1 4>; 198 }; 199 200 UART2: serial@ef600500 { 201 device_type = "serial"; 202 compatible = "ns16550"; 203 reg = <ef600500 8>; 204 virtual-reg = <ef600500>; 205 clock-frequency = <0>; 206 current-speed = <0>; 207 interrupt-parent = <&UIC1>; 208 interrupts = <3 4>; 209 }; 210 211 UART3: serial@ef600600 { 212 device_type = "serial"; 213 compatible = "ns16550"; 214 reg = <ef600600 8>; 215 virtual-reg = <ef600600>; 216 clock-frequency = <0>; 217 current-speed = <0>; 218 interrupt-parent = <&UIC1>; 219 interrupts = <4 4>; 220 }; 221 222 IIC0: i2c@ef600700 { 223 device_type = "i2c"; 224 compatible = "ibm,iic-440grx", "ibm,iic"; 225 reg = <ef600700 14>; 226 interrupt-parent = <&UIC0>; 227 interrupts = <2 4>; 228 }; 229 230 IIC1: i2c@ef600800 { 231 device_type = "i2c"; 232 compatible = "ibm,iic-440grx", "ibm,iic"; 233 reg = <ef600800 14>; 234 interrupt-parent = <&UIC0>; 235 interrupts = <7 4>; 236 }; 237 238 ZMII0: emac-zmii@ef600d00 { 239 device_type = "zmii-interface"; 240 compatible = "ibm,zmii-440grx", "ibm,zmii"; 241 reg = <ef600d00 c>; 242 }; 243 244 RGMII0: emac-rgmii@ef601000 { 245 device_type = "rgmii-interface"; 246 compatible = "ibm,rgmii-440grx", "ibm,rgmii"; 247 reg = <ef601000 8>; 248 has-mdio; 249 }; 250 251 EMAC0: ethernet@ef600e00 { 252 linux,network-index = <0>; 253 device_type = "network"; 254 compatible = "ibm,emac-440grx", "ibm,emac-440epx", "ibm,emac4"; 255 interrupt-parent = <&EMAC0>; 256 interrupts = <0 1>; 257 #interrupt-cells = <1>; 258 #address-cells = <0>; 259 #size-cells = <0>; 260 interrupt-map = </*Status*/ 0 &UIC0 18 4 261 /*Wake*/ 1 &UIC1 1d 4>; 262 reg = <ef600e00 70>; 263 local-mac-address = [000000000000]; 264 mal-device = <&MAL0>; 265 mal-tx-channel = <0>; 266 mal-rx-channel = <0>; 267 cell-index = <0>; 268 max-frame-size = <5dc>; 269 rx-fifo-size = <1000>; 270 tx-fifo-size = <800>; 271 phy-mode = "rgmii"; 272 phy-map = <00000000>; 273 zmii-device = <&ZMII0>; 274 zmii-channel = <0>; 275 rgmii-device = <&RGMII0>; 276 rgmii-channel = <0>; 277 has-inverted-stacr-oc; 278 has-new-stacr-staopc; 279 }; 280 281 EMAC1: ethernet@ef600f00 { 282 linux,network-index = <1>; 283 device_type = "network"; 284 compatible = "ibm,emac-440grx", "ibm,emac-440epx", "ibm,emac4"; 285 interrupt-parent = <&EMAC1>; 286 interrupts = <0 1>; 287 #interrupt-cells = <1>; 288 #address-cells = <0>; 289 #size-cells = <0>; 290 interrupt-map = </*Status*/ 0 &UIC0 19 4 291 /*Wake*/ 1 &UIC1 1f 4>; 292 reg = <ef600f00 70>; 293 local-mac-address = [000000000000]; 294 mal-device = <&MAL0>; 295 mal-tx-channel = <1>; 296 mal-rx-channel = <1>; 297 cell-index = <1>; 298 max-frame-size = <5dc>; 299 rx-fifo-size = <1000>; 300 tx-fifo-size = <800>; 301 phy-mode = "rgmii"; 302 phy-map = <00000000>; 303 zmii-device = <&ZMII0>; 304 zmii-channel = <1>; 305 rgmii-device = <&RGMII0>; 306 rgmii-channel = <1>; 307 has-inverted-stacr-oc; 308 has-new-stacr-staopc; 309 }; 310 }; 311 312 PCI0: pci@1ec000000 { 313 device_type = "pci"; 314 #interrupt-cells = <1>; 315 #size-cells = <2>; 316 #address-cells = <3>; 317 compatible = "ibm,plb440grx-pci", "ibm,plb-pci"; 318 primary; 319 reg = <1 eec00000 8 /* Config space access */ 320 1 eed00000 4 /* IACK */ 321 1 eed00000 4 /* Special cycle */ 322 1 ef400000 40>; /* Internal registers */ 323 324 /* Outbound ranges, one memory and one IO, 325 * later cannot be changed. Chip supports a second 326 * IO range but we don't use it for now 327 */ 328 ranges = <02000000 0 80000000 1 80000000 0 10000000 329 01000000 0 00000000 1 e8000000 0 00100000>; 330 331 /* Inbound 2GB range starting at 0 */ 332 dma-ranges = <42000000 0 0 0 0 0 80000000>; 333 334 /* All PCI interrupts are routed to IRQ 67 */ 335 interrupt-map-mask = <0000 0 0 0>; 336 interrupt-map = < 0000 0 0 0 &UIC2 3 8 >; 337 }; 338 }; 339 340 chosen { 341 linux,stdout-path = "/plb/opb/serial@ef600300"; 342 bootargs = "console=ttyS0,115200"; 343 }; 344}; 345