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