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 device_type = "memory-controller"; 98 compatible = "ibm,sdram-440epx", "ibm,sdram-44x-ddr2denali"; 99 dcr-reg = <010 2>; 100 }; 101 102 DMA0: dma { 103 compatible = "ibm,dma-440epx", "ibm,dma-4xx"; 104 dcr-reg = <100 027>; 105 }; 106 107 MAL0: mcmal { 108 compatible = "ibm,mcmal-440epx", "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 USB1: usb@e0000400 { 126 compatible = "ohci-be"; 127 reg = <0 e0000400 60>; 128 interrupt-parent = <&UIC0>; 129 interrupts = <15 8>; 130 }; 131 132 POB0: opb { 133 compatible = "ibm,opb-440epx", "ibm,opb"; 134 #address-cells = <1>; 135 #size-cells = <1>; 136 ranges = <00000000 1 00000000 80000000 137 80000000 1 80000000 80000000>; 138 interrupt-parent = <&UIC1>; 139 interrupts = <7 4>; 140 clock-frequency = <0>; /* Filled in by zImage */ 141 142 EBC0: ebc { 143 compatible = "ibm,ebc-440epx", "ibm,ebc"; 144 dcr-reg = <012 2>; 145 #address-cells = <2>; 146 #size-cells = <1>; 147 clock-frequency = <0>; /* Filled in by zImage */ 148 interrupts = <5 1>; 149 interrupt-parent = <&UIC1>; 150 151 nor_flash@0,0 { 152 compatible = "amd,s29gl256n", "cfi-flash"; 153 bank-width = <2>; 154 reg = <0 000000 4000000>; 155 #address-cells = <1>; 156 #size-cells = <1>; 157 partition@0 { 158 label = "Kernel"; 159 reg = <0 180000>; 160 }; 161 partition@180000 { 162 label = "ramdisk"; 163 reg = <180000 200000>; 164 }; 165 partition@380000 { 166 label = "file system"; 167 reg = <380000 3aa0000>; 168 }; 169 partition@3e20000 { 170 label = "kozio"; 171 reg = <3e20000 140000>; 172 }; 173 partition@3f60000 { 174 label = "env"; 175 reg = <3f60000 40000>; 176 }; 177 partition@3fa0000 { 178 label = "u-boot"; 179 reg = <3fa0000 60000>; 180 }; 181 }; 182 183 }; 184 185 UART0: serial@ef600300 { 186 device_type = "serial"; 187 compatible = "ns16550"; 188 reg = <ef600300 8>; 189 virtual-reg = <ef600300>; 190 clock-frequency = <0>; /* Filled in by zImage */ 191 current-speed = <1c200>; 192 interrupt-parent = <&UIC0>; 193 interrupts = <0 4>; 194 }; 195 196 UART1: serial@ef600400 { 197 device_type = "serial"; 198 compatible = "ns16550"; 199 reg = <ef600400 8>; 200 virtual-reg = <ef600400>; 201 clock-frequency = <0>; 202 current-speed = <0>; 203 interrupt-parent = <&UIC0>; 204 interrupts = <1 4>; 205 }; 206 207 UART2: serial@ef600500 { 208 device_type = "serial"; 209 compatible = "ns16550"; 210 reg = <ef600500 8>; 211 virtual-reg = <ef600500>; 212 clock-frequency = <0>; 213 current-speed = <0>; 214 interrupt-parent = <&UIC1>; 215 interrupts = <3 4>; 216 }; 217 218 UART3: serial@ef600600 { 219 device_type = "serial"; 220 compatible = "ns16550"; 221 reg = <ef600600 8>; 222 virtual-reg = <ef600600>; 223 clock-frequency = <0>; 224 current-speed = <0>; 225 interrupt-parent = <&UIC1>; 226 interrupts = <4 4>; 227 }; 228 229 IIC0: i2c@ef600700 { 230 device_type = "i2c"; 231 compatible = "ibm,iic-440epx", "ibm,iic"; 232 reg = <ef600700 14>; 233 interrupt-parent = <&UIC0>; 234 interrupts = <2 4>; 235 }; 236 237 IIC1: i2c@ef600800 { 238 device_type = "i2c"; 239 compatible = "ibm,iic-440epx", "ibm,iic"; 240 reg = <ef600800 14>; 241 interrupt-parent = <&UIC0>; 242 interrupts = <7 4>; 243 }; 244 245 ZMII0: emac-zmii@ef600d00 { 246 device_type = "zmii-interface"; 247 compatible = "ibm,zmii-440epx", "ibm,zmii"; 248 reg = <ef600d00 c>; 249 }; 250 251 RGMII0: emac-rgmii@ef601000 { 252 device_type = "rgmii-interface"; 253 compatible = "ibm,rgmii-440epx", "ibm,rgmii"; 254 reg = <ef601000 8>; 255 has-mdio; 256 }; 257 258 EMAC0: ethernet@ef600e00 { 259 linux,network-index = <0>; 260 device_type = "network"; 261 compatible = "ibm,emac-440epx", "ibm,emac4"; 262 interrupt-parent = <&EMAC0>; 263 interrupts = <0 1>; 264 #interrupt-cells = <1>; 265 #address-cells = <0>; 266 #size-cells = <0>; 267 interrupt-map = </*Status*/ 0 &UIC0 18 4 268 /*Wake*/ 1 &UIC1 1d 4>; 269 reg = <ef600e00 70>; 270 local-mac-address = [000000000000]; 271 mal-device = <&MAL0>; 272 mal-tx-channel = <0>; 273 mal-rx-channel = <0>; 274 cell-index = <0>; 275 max-frame-size = <5dc>; 276 rx-fifo-size = <1000>; 277 tx-fifo-size = <800>; 278 phy-mode = "rgmii"; 279 phy-map = <00000000>; 280 zmii-device = <&ZMII0>; 281 zmii-channel = <0>; 282 rgmii-device = <&RGMII0>; 283 rgmii-channel = <0>; 284 has-inverted-stacr-oc; 285 has-new-stacr-staopc; 286 }; 287 288 EMAC1: ethernet@ef600f00 { 289 linux,network-index = <1>; 290 device_type = "network"; 291 compatible = "ibm,emac-440epx", "ibm,emac4"; 292 interrupt-parent = <&EMAC1>; 293 interrupts = <0 1>; 294 #interrupt-cells = <1>; 295 #address-cells = <0>; 296 #size-cells = <0>; 297 interrupt-map = </*Status*/ 0 &UIC0 19 4 298 /*Wake*/ 1 &UIC1 1f 4>; 299 reg = <ef600f00 70>; 300 local-mac-address = [000000000000]; 301 mal-device = <&MAL0>; 302 mal-tx-channel = <1>; 303 mal-rx-channel = <1>; 304 cell-index = <1>; 305 max-frame-size = <5dc>; 306 rx-fifo-size = <1000>; 307 tx-fifo-size = <800>; 308 phy-mode = "rgmii"; 309 phy-map = <00000000>; 310 zmii-device = <&ZMII0>; 311 zmii-channel = <1>; 312 rgmii-device = <&RGMII0>; 313 rgmii-channel = <1>; 314 has-inverted-stacr-oc; 315 has-new-stacr-staopc; 316 }; 317 }; 318 319 PCI0: pci@1ec000000 { 320 device_type = "pci"; 321 #interrupt-cells = <1>; 322 #size-cells = <2>; 323 #address-cells = <3>; 324 compatible = "ibm,plb440epx-pci", "ibm,plb-pci"; 325 primary; 326 reg = <1 eec00000 8 /* Config space access */ 327 1 eed00000 4 /* IACK */ 328 1 eed00000 4 /* Special cycle */ 329 1 ef400000 40>; /* Internal registers */ 330 331 /* Outbound ranges, one memory and one IO, 332 * later cannot be changed. Chip supports a second 333 * IO range but we don't use it for now 334 */ 335 ranges = <02000000 0 80000000 1 80000000 0 10000000 336 01000000 0 00000000 1 e8000000 0 00100000>; 337 338 /* Inbound 2GB range starting at 0 */ 339 dma-ranges = <42000000 0 0 0 0 0 80000000>; 340 341 /* All PCI interrupts are routed to IRQ 67 */ 342 interrupt-map-mask = <0000 0 0 0>; 343 interrupt-map = < 0000 0 0 0 &UIC2 3 8 >; 344 }; 345 }; 346 347 chosen { 348 linux,stdout-path = "/plb/opb/serial@ef600300"; 349 bootargs = "console=ttyS0,115200"; 350 }; 351}; 352