13de9c9cdSBenjamin Herrenschmidt/* 23de9c9cdSBenjamin Herrenschmidt * Device Tree Source for AMCC Katmai eval board 33de9c9cdSBenjamin Herrenschmidt * 43de9c9cdSBenjamin Herrenschmidt * Copyright (c) 2006, 2007 IBM Corp. 53de9c9cdSBenjamin Herrenschmidt * Benjamin Herrenschmidt <benh@kernel.crashing.org> 63de9c9cdSBenjamin Herrenschmidt * 73de9c9cdSBenjamin Herrenschmidt * Copyright (c) 2006, 2007 IBM Corp. 83de9c9cdSBenjamin Herrenschmidt * Josh Boyer <jwboyer@linux.vnet.ibm.com> 93de9c9cdSBenjamin Herrenschmidt * 103de9c9cdSBenjamin Herrenschmidt * This file is licensed under the terms of the GNU General Public 113de9c9cdSBenjamin Herrenschmidt * License version 2. This program is licensed "as is" without 123de9c9cdSBenjamin Herrenschmidt * any warranty of any kind, whether express or implied. 133de9c9cdSBenjamin Herrenschmidt */ 143de9c9cdSBenjamin Herrenschmidt 1571f34979SDavid Gibson/dts-v1/; 1671f34979SDavid Gibson 173de9c9cdSBenjamin Herrenschmidt/ { 183de9c9cdSBenjamin Herrenschmidt #address-cells = <2>; 1959e1d495SStefan Roese #size-cells = <2>; 203de9c9cdSBenjamin Herrenschmidt model = "amcc,katmai"; 213de9c9cdSBenjamin Herrenschmidt compatible = "amcc,katmai"; 2271f34979SDavid Gibson dcr-parent = <&{/cpus/cpu@0}>; 233de9c9cdSBenjamin Herrenschmidt 248aaed98cSStefan Roese aliases { 258aaed98cSStefan Roese ethernet0 = &EMAC0; 268aaed98cSStefan Roese serial0 = &UART0; 278aaed98cSStefan Roese serial1 = &UART1; 288aaed98cSStefan Roese serial2 = &UART2; 298aaed98cSStefan Roese }; 308aaed98cSStefan Roese 313de9c9cdSBenjamin Herrenschmidt cpus { 323de9c9cdSBenjamin Herrenschmidt #address-cells = <1>; 333de9c9cdSBenjamin Herrenschmidt #size-cells = <0>; 343de9c9cdSBenjamin Herrenschmidt 3572fda114SJosh Boyer cpu@0 { 363de9c9cdSBenjamin Herrenschmidt device_type = "cpu"; 3772fda114SJosh Boyer model = "PowerPC,440SPe"; 3871f34979SDavid Gibson reg = <0x00000000>; 393de9c9cdSBenjamin Herrenschmidt clock-frequency = <0>; /* Filled in by zImage */ 403de9c9cdSBenjamin Herrenschmidt timebase-frequency = <0>; /* Filled in by zImage */ 4171f34979SDavid Gibson i-cache-line-size = <32>; 4271f34979SDavid Gibson d-cache-line-size = <32>; 4371f34979SDavid Gibson i-cache-size = <32768>; 4471f34979SDavid Gibson d-cache-size = <32768>; 453de9c9cdSBenjamin Herrenschmidt dcr-controller; 463de9c9cdSBenjamin Herrenschmidt dcr-access-method = "native"; 473de9c9cdSBenjamin Herrenschmidt }; 483de9c9cdSBenjamin Herrenschmidt }; 493de9c9cdSBenjamin Herrenschmidt 503de9c9cdSBenjamin Herrenschmidt memory { 513de9c9cdSBenjamin Herrenschmidt device_type = "memory"; 5259e1d495SStefan Roese reg = <0x0 0x00000000 0x0 0x00000000>; /* Filled in by U-Boot */ 533de9c9cdSBenjamin Herrenschmidt }; 543de9c9cdSBenjamin Herrenschmidt 553de9c9cdSBenjamin Herrenschmidt UIC0: interrupt-controller0 { 563de9c9cdSBenjamin Herrenschmidt compatible = "ibm,uic-440spe","ibm,uic"; 573de9c9cdSBenjamin Herrenschmidt interrupt-controller; 583de9c9cdSBenjamin Herrenschmidt cell-index = <0>; 5971f34979SDavid Gibson dcr-reg = <0x0c0 0x009>; 603de9c9cdSBenjamin Herrenschmidt #address-cells = <0>; 613de9c9cdSBenjamin Herrenschmidt #size-cells = <0>; 623de9c9cdSBenjamin Herrenschmidt #interrupt-cells = <2>; 633de9c9cdSBenjamin Herrenschmidt }; 643de9c9cdSBenjamin Herrenschmidt 653de9c9cdSBenjamin Herrenschmidt UIC1: interrupt-controller1 { 663de9c9cdSBenjamin Herrenschmidt compatible = "ibm,uic-440spe","ibm,uic"; 673de9c9cdSBenjamin Herrenschmidt interrupt-controller; 683de9c9cdSBenjamin Herrenschmidt cell-index = <1>; 6971f34979SDavid Gibson dcr-reg = <0x0d0 0x009>; 703de9c9cdSBenjamin Herrenschmidt #address-cells = <0>; 713de9c9cdSBenjamin Herrenschmidt #size-cells = <0>; 723de9c9cdSBenjamin Herrenschmidt #interrupt-cells = <2>; 7371f34979SDavid Gibson interrupts = <0x1e 0x4 0x1f 0x4>; /* cascade */ 743de9c9cdSBenjamin Herrenschmidt interrupt-parent = <&UIC0>; 753de9c9cdSBenjamin Herrenschmidt }; 763de9c9cdSBenjamin Herrenschmidt 773de9c9cdSBenjamin Herrenschmidt UIC2: interrupt-controller2 { 783de9c9cdSBenjamin Herrenschmidt compatible = "ibm,uic-440spe","ibm,uic"; 793de9c9cdSBenjamin Herrenschmidt interrupt-controller; 803de9c9cdSBenjamin Herrenschmidt cell-index = <2>; 8171f34979SDavid Gibson dcr-reg = <0x0e0 0x009>; 823de9c9cdSBenjamin Herrenschmidt #address-cells = <0>; 833de9c9cdSBenjamin Herrenschmidt #size-cells = <0>; 843de9c9cdSBenjamin Herrenschmidt #interrupt-cells = <2>; 8571f34979SDavid Gibson interrupts = <0xa 0x4 0xb 0x4>; /* cascade */ 863de9c9cdSBenjamin Herrenschmidt interrupt-parent = <&UIC0>; 873de9c9cdSBenjamin Herrenschmidt }; 883de9c9cdSBenjamin Herrenschmidt 893de9c9cdSBenjamin Herrenschmidt UIC3: interrupt-controller3 { 903de9c9cdSBenjamin Herrenschmidt compatible = "ibm,uic-440spe","ibm,uic"; 913de9c9cdSBenjamin Herrenschmidt interrupt-controller; 923de9c9cdSBenjamin Herrenschmidt cell-index = <3>; 9371f34979SDavid Gibson dcr-reg = <0x0f0 0x009>; 943de9c9cdSBenjamin Herrenschmidt #address-cells = <0>; 953de9c9cdSBenjamin Herrenschmidt #size-cells = <0>; 963de9c9cdSBenjamin Herrenschmidt #interrupt-cells = <2>; 9771f34979SDavid Gibson interrupts = <0x10 0x4 0x11 0x4>; /* cascade */ 983de9c9cdSBenjamin Herrenschmidt interrupt-parent = <&UIC0>; 993de9c9cdSBenjamin Herrenschmidt }; 1003de9c9cdSBenjamin Herrenschmidt 1013de9c9cdSBenjamin Herrenschmidt SDR0: sdr { 1023de9c9cdSBenjamin Herrenschmidt compatible = "ibm,sdr-440spe"; 10371f34979SDavid Gibson dcr-reg = <0x00e 0x002>; 1043de9c9cdSBenjamin Herrenschmidt }; 1053de9c9cdSBenjamin Herrenschmidt 1063de9c9cdSBenjamin Herrenschmidt CPR0: cpr { 1073de9c9cdSBenjamin Herrenschmidt compatible = "ibm,cpr-440spe"; 10871f34979SDavid Gibson dcr-reg = <0x00c 0x002>; 1093de9c9cdSBenjamin Herrenschmidt }; 1103de9c9cdSBenjamin Herrenschmidt 1113de9c9cdSBenjamin Herrenschmidt plb { 1123de9c9cdSBenjamin Herrenschmidt compatible = "ibm,plb-440spe", "ibm,plb-440gp", "ibm,plb4"; 1133de9c9cdSBenjamin Herrenschmidt #address-cells = <2>; 1143de9c9cdSBenjamin Herrenschmidt #size-cells = <1>; 11559e1d495SStefan Roese /* addr-child addr-parent size */ 11659e1d495SStefan Roese ranges = <0x4 0xe0000000 0x4 0xe0000000 0x20000000 11759e1d495SStefan Roese 0xc 0x00000000 0xc 0x00000000 0x20000000 11859e1d495SStefan Roese 0xd 0x00000000 0xd 0x00000000 0x80000000 11959e1d495SStefan Roese 0xd 0x80000000 0xd 0x80000000 0x80000000 12059e1d495SStefan Roese 0xe 0x00000000 0xe 0x00000000 0x80000000 12159e1d495SStefan Roese 0xe 0x80000000 0xe 0x80000000 0x80000000 12259e1d495SStefan Roese 0xf 0x00000000 0xf 0x00000000 0x80000000 12359e1d495SStefan Roese 0xf 0x80000000 0xf 0x80000000 0x80000000>; 1243de9c9cdSBenjamin Herrenschmidt clock-frequency = <0>; /* Filled in by zImage */ 1253de9c9cdSBenjamin Herrenschmidt 1263de9c9cdSBenjamin Herrenschmidt SDRAM0: sdram { 1273de9c9cdSBenjamin Herrenschmidt compatible = "ibm,sdram-440spe", "ibm,sdram-405gp"; 12871f34979SDavid Gibson dcr-reg = <0x010 0x002>; 1293de9c9cdSBenjamin Herrenschmidt }; 1303de9c9cdSBenjamin Herrenschmidt 1313de9c9cdSBenjamin Herrenschmidt MAL0: mcmal { 1323de9c9cdSBenjamin Herrenschmidt compatible = "ibm,mcmal-440spe", "ibm,mcmal2"; 13371f34979SDavid Gibson dcr-reg = <0x180 0x062>; 1343de9c9cdSBenjamin Herrenschmidt num-tx-chans = <2>; 1353de9c9cdSBenjamin Herrenschmidt num-rx-chans = <1>; 1363de9c9cdSBenjamin Herrenschmidt interrupt-parent = <&MAL0>; 13771f34979SDavid Gibson interrupts = <0x0 0x1 0x2 0x3 0x4>; 1383de9c9cdSBenjamin Herrenschmidt #interrupt-cells = <1>; 1393de9c9cdSBenjamin Herrenschmidt #address-cells = <0>; 1403de9c9cdSBenjamin Herrenschmidt #size-cells = <0>; 14171f34979SDavid Gibson interrupt-map = </*TXEOB*/ 0x0 &UIC1 0x6 0x4 14271f34979SDavid Gibson /*RXEOB*/ 0x1 &UIC1 0x7 0x4 14371f34979SDavid Gibson /*SERR*/ 0x2 &UIC1 0x1 0x4 14471f34979SDavid Gibson /*TXDE*/ 0x3 &UIC1 0x2 0x4 14571f34979SDavid Gibson /*RXDE*/ 0x4 &UIC1 0x3 0x4>; 1463de9c9cdSBenjamin Herrenschmidt }; 1473de9c9cdSBenjamin Herrenschmidt 1483de9c9cdSBenjamin Herrenschmidt POB0: opb { 1493de9c9cdSBenjamin Herrenschmidt compatible = "ibm,opb-440spe", "ibm,opb-440gp", "ibm,opb"; 1503de9c9cdSBenjamin Herrenschmidt #address-cells = <1>; 1513de9c9cdSBenjamin Herrenschmidt #size-cells = <1>; 15271f34979SDavid Gibson ranges = <0x00000000 0x00000004 0xe0000000 0x20000000>; 1533de9c9cdSBenjamin Herrenschmidt clock-frequency = <0>; /* Filled in by zImage */ 1543de9c9cdSBenjamin Herrenschmidt 1553de9c9cdSBenjamin Herrenschmidt EBC0: ebc { 1563de9c9cdSBenjamin Herrenschmidt compatible = "ibm,ebc-440spe", "ibm,ebc-440gp", "ibm,ebc"; 15771f34979SDavid Gibson dcr-reg = <0x012 0x002>; 1583de9c9cdSBenjamin Herrenschmidt #address-cells = <2>; 1593de9c9cdSBenjamin Herrenschmidt #size-cells = <1>; 1603de9c9cdSBenjamin Herrenschmidt clock-frequency = <0>; /* Filled in by zImage */ 16171f34979SDavid Gibson interrupts = <0x5 0x1>; 1623de9c9cdSBenjamin Herrenschmidt interrupt-parent = <&UIC1>; 1633de9c9cdSBenjamin Herrenschmidt }; 1643de9c9cdSBenjamin Herrenschmidt 1653de9c9cdSBenjamin Herrenschmidt UART0: serial@10000200 { 1663de9c9cdSBenjamin Herrenschmidt device_type = "serial"; 1673de9c9cdSBenjamin Herrenschmidt compatible = "ns16550"; 16871f34979SDavid Gibson reg = <0x10000200 0x00000008>; 16971f34979SDavid Gibson virtual-reg = <0xa0000200>; 1703de9c9cdSBenjamin Herrenschmidt clock-frequency = <0>; /* Filled in by zImage */ 17171f34979SDavid Gibson current-speed = <115200>; 1723de9c9cdSBenjamin Herrenschmidt interrupt-parent = <&UIC0>; 17371f34979SDavid Gibson interrupts = <0x0 0x4>; 1743de9c9cdSBenjamin Herrenschmidt }; 1753de9c9cdSBenjamin Herrenschmidt 1763de9c9cdSBenjamin Herrenschmidt UART1: serial@10000300 { 1773de9c9cdSBenjamin Herrenschmidt device_type = "serial"; 1783de9c9cdSBenjamin Herrenschmidt compatible = "ns16550"; 17971f34979SDavid Gibson reg = <0x10000300 0x00000008>; 18071f34979SDavid Gibson virtual-reg = <0xa0000300>; 1813de9c9cdSBenjamin Herrenschmidt clock-frequency = <0>; 1823de9c9cdSBenjamin Herrenschmidt current-speed = <0>; 1833de9c9cdSBenjamin Herrenschmidt interrupt-parent = <&UIC0>; 18471f34979SDavid Gibson interrupts = <0x1 0x4>; 1853de9c9cdSBenjamin Herrenschmidt }; 1863de9c9cdSBenjamin Herrenschmidt 1873de9c9cdSBenjamin Herrenschmidt 1883de9c9cdSBenjamin Herrenschmidt UART2: serial@10000600 { 1893de9c9cdSBenjamin Herrenschmidt device_type = "serial"; 1903de9c9cdSBenjamin Herrenschmidt compatible = "ns16550"; 19171f34979SDavid Gibson reg = <0x10000600 0x00000008>; 19271f34979SDavid Gibson virtual-reg = <0xa0000600>; 1933de9c9cdSBenjamin Herrenschmidt clock-frequency = <0>; 1943de9c9cdSBenjamin Herrenschmidt current-speed = <0>; 1953de9c9cdSBenjamin Herrenschmidt interrupt-parent = <&UIC1>; 19671f34979SDavid Gibson interrupts = <0x5 0x4>; 1973de9c9cdSBenjamin Herrenschmidt }; 1983de9c9cdSBenjamin Herrenschmidt 1993de9c9cdSBenjamin Herrenschmidt IIC0: i2c@10000400 { 2003de9c9cdSBenjamin Herrenschmidt compatible = "ibm,iic-440spe", "ibm,iic-440gp", "ibm,iic"; 20171f34979SDavid Gibson reg = <0x10000400 0x00000014>; 2023de9c9cdSBenjamin Herrenschmidt interrupt-parent = <&UIC0>; 20371f34979SDavid Gibson interrupts = <0x2 0x4>; 2043de9c9cdSBenjamin Herrenschmidt }; 2053de9c9cdSBenjamin Herrenschmidt 2063de9c9cdSBenjamin Herrenschmidt IIC1: i2c@10000500 { 2073de9c9cdSBenjamin Herrenschmidt compatible = "ibm,iic-440spe", "ibm,iic-440gp", "ibm,iic"; 20871f34979SDavid Gibson reg = <0x10000500 0x00000014>; 2093de9c9cdSBenjamin Herrenschmidt interrupt-parent = <&UIC0>; 21071f34979SDavid Gibson interrupts = <0x3 0x4>; 2113de9c9cdSBenjamin Herrenschmidt }; 2123de9c9cdSBenjamin Herrenschmidt 2133de9c9cdSBenjamin Herrenschmidt EMAC0: ethernet@10000800 { 21471f34979SDavid Gibson linux,network-index = <0x0>; 2153de9c9cdSBenjamin Herrenschmidt device_type = "network"; 2163de9c9cdSBenjamin Herrenschmidt compatible = "ibm,emac-440spe", "ibm,emac4"; 2173de9c9cdSBenjamin Herrenschmidt interrupt-parent = <&UIC1>; 21871f34979SDavid Gibson interrupts = <0x1c 0x4 0x1d 0x4>; 21905781ccdSGrant Erickson reg = <0x10000800 0x00000074>; 2203de9c9cdSBenjamin Herrenschmidt local-mac-address = [000000000000]; 2213de9c9cdSBenjamin Herrenschmidt mal-device = <&MAL0>; 2223de9c9cdSBenjamin Herrenschmidt mal-tx-channel = <0>; 2233de9c9cdSBenjamin Herrenschmidt mal-rx-channel = <0>; 2243de9c9cdSBenjamin Herrenschmidt cell-index = <0>; 22571f34979SDavid Gibson max-frame-size = <9000>; 22671f34979SDavid Gibson rx-fifo-size = <4096>; 22771f34979SDavid Gibson tx-fifo-size = <2048>; 2283de9c9cdSBenjamin Herrenschmidt phy-mode = "gmii"; 22971f34979SDavid Gibson phy-map = <0x00000000>; 2303de9c9cdSBenjamin Herrenschmidt has-inverted-stacr-oc; 2313de9c9cdSBenjamin Herrenschmidt has-new-stacr-staopc; 2323de9c9cdSBenjamin Herrenschmidt }; 2333de9c9cdSBenjamin Herrenschmidt }; 2343de9c9cdSBenjamin Herrenschmidt 2353de9c9cdSBenjamin Herrenschmidt PCIX0: pci@c0ec00000 { 2363de9c9cdSBenjamin Herrenschmidt device_type = "pci"; 2373de9c9cdSBenjamin Herrenschmidt #interrupt-cells = <1>; 2383de9c9cdSBenjamin Herrenschmidt #size-cells = <2>; 2393de9c9cdSBenjamin Herrenschmidt #address-cells = <3>; 2403de9c9cdSBenjamin Herrenschmidt compatible = "ibm,plb-pcix-440spe", "ibm,plb-pcix"; 2413de9c9cdSBenjamin Herrenschmidt primary; 2423de9c9cdSBenjamin Herrenschmidt large-inbound-windows; 2433de9c9cdSBenjamin Herrenschmidt enable-msi-hole; 24471f34979SDavid Gibson reg = <0x0000000c 0x0ec00000 0x00000008 /* Config space access */ 24571f34979SDavid Gibson 0x00000000 0x00000000 0x00000000 /* no IACK cycles */ 24671f34979SDavid Gibson 0x0000000c 0x0ed00000 0x00000004 /* Special cycles */ 24771f34979SDavid Gibson 0x0000000c 0x0ec80000 0x00000100 /* Internal registers */ 24871f34979SDavid Gibson 0x0000000c 0x0ec80100 0x000000fc>; /* Internal messaging registers */ 2493de9c9cdSBenjamin Herrenschmidt 2503de9c9cdSBenjamin Herrenschmidt /* Outbound ranges, one memory and one IO, 2513de9c9cdSBenjamin Herrenschmidt * later cannot be changed 2523de9c9cdSBenjamin Herrenschmidt */ 25371f34979SDavid Gibson ranges = <0x02000000 0x00000000 0x80000000 0x0000000d 0x80000000 0x00000000 0x80000000 25471f34979SDavid Gibson 0x01000000 0x00000000 0x00000000 0x0000000c 0x08000000 0x00000000 0x00010000>; 2553de9c9cdSBenjamin Herrenschmidt 2563de9c9cdSBenjamin Herrenschmidt /* Inbound 2GB range starting at 0 */ 25771f34979SDavid Gibson dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x0 0x80000000>; 2583de9c9cdSBenjamin Herrenschmidt 2593de9c9cdSBenjamin Herrenschmidt /* This drives busses 0 to 0xf */ 26071f34979SDavid Gibson bus-range = <0x0 0xf>; 2613de9c9cdSBenjamin Herrenschmidt 2623de9c9cdSBenjamin Herrenschmidt /* 2633de9c9cdSBenjamin Herrenschmidt * On Katmai, the following PCI-X interrupts signals 2643de9c9cdSBenjamin Herrenschmidt * have to be enabled via jumpers (only INTA is 2653de9c9cdSBenjamin Herrenschmidt * enabled per default): 2663de9c9cdSBenjamin Herrenschmidt * 2673de9c9cdSBenjamin Herrenschmidt * INTB: J3: 1-2 2683de9c9cdSBenjamin Herrenschmidt * INTC: J2: 1-2 2693de9c9cdSBenjamin Herrenschmidt * INTD: J1: 1-2 2703de9c9cdSBenjamin Herrenschmidt */ 27171f34979SDavid Gibson interrupt-map-mask = <0xf800 0x0 0x0 0x7>; 2723de9c9cdSBenjamin Herrenschmidt interrupt-map = < 2733de9c9cdSBenjamin Herrenschmidt /* IDSEL 1 */ 27471f34979SDavid Gibson 0x800 0x0 0x0 0x1 &UIC1 0x14 0x8 27571f34979SDavid Gibson 0x800 0x0 0x0 0x2 &UIC1 0x13 0x8 27671f34979SDavid Gibson 0x800 0x0 0x0 0x3 &UIC1 0x12 0x8 27771f34979SDavid Gibson 0x800 0x0 0x0 0x4 &UIC1 0x11 0x8 2783de9c9cdSBenjamin Herrenschmidt >; 2793de9c9cdSBenjamin Herrenschmidt }; 2803de9c9cdSBenjamin Herrenschmidt 2813de9c9cdSBenjamin Herrenschmidt PCIE0: pciex@d00000000 { 2823de9c9cdSBenjamin Herrenschmidt device_type = "pci"; 2833de9c9cdSBenjamin Herrenschmidt #interrupt-cells = <1>; 2843de9c9cdSBenjamin Herrenschmidt #size-cells = <2>; 2853de9c9cdSBenjamin Herrenschmidt #address-cells = <3>; 286accf5ef2SStefan Roese compatible = "ibm,plb-pciex-440spe", "ibm,plb-pciex"; 2873de9c9cdSBenjamin Herrenschmidt primary; 28871f34979SDavid Gibson port = <0x0>; /* port number */ 28971f34979SDavid Gibson reg = <0x0000000d 0x00000000 0x20000000 /* Config space access */ 29071f34979SDavid Gibson 0x0000000c 0x10000000 0x00001000>; /* Registers */ 29171f34979SDavid Gibson dcr-reg = <0x100 0x020>; 29271f34979SDavid Gibson sdr-base = <0x300>; 2933de9c9cdSBenjamin Herrenschmidt 2943de9c9cdSBenjamin Herrenschmidt /* Outbound ranges, one memory and one IO, 2953de9c9cdSBenjamin Herrenschmidt * later cannot be changed 2963de9c9cdSBenjamin Herrenschmidt */ 29771f34979SDavid Gibson ranges = <0x02000000 0x00000000 0x80000000 0x0000000e 0x00000000 0x00000000 0x80000000 29871f34979SDavid Gibson 0x01000000 0x00000000 0x00000000 0x0000000f 0x80000000 0x00000000 0x00010000>; 2993de9c9cdSBenjamin Herrenschmidt 3003de9c9cdSBenjamin Herrenschmidt /* Inbound 2GB range starting at 0 */ 30171f34979SDavid Gibson dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x0 0x80000000>; 3023de9c9cdSBenjamin Herrenschmidt 3033de9c9cdSBenjamin Herrenschmidt /* This drives busses 10 to 0x1f */ 30471f34979SDavid Gibson bus-range = <0x10 0x1f>; 3053de9c9cdSBenjamin Herrenschmidt 3063de9c9cdSBenjamin Herrenschmidt /* Legacy interrupts (note the weird polarity, the bridge seems 3073de9c9cdSBenjamin Herrenschmidt * to invert PCIe legacy interrupts). 3083de9c9cdSBenjamin Herrenschmidt * We are de-swizzling here because the numbers are actually for 3093de9c9cdSBenjamin Herrenschmidt * port of the root complex virtual P2P bridge. But I want 3103de9c9cdSBenjamin Herrenschmidt * to avoid putting a node for it in the tree, so the numbers 3113de9c9cdSBenjamin Herrenschmidt * below are basically de-swizzled numbers. 3123de9c9cdSBenjamin Herrenschmidt * The real slot is on idsel 0, so the swizzling is 1:1 3133de9c9cdSBenjamin Herrenschmidt */ 31471f34979SDavid Gibson interrupt-map-mask = <0x0 0x0 0x0 0x7>; 3153de9c9cdSBenjamin Herrenschmidt interrupt-map = < 31671f34979SDavid Gibson 0x0 0x0 0x0 0x1 &UIC3 0x0 0x4 /* swizzled int A */ 31771f34979SDavid Gibson 0x0 0x0 0x0 0x2 &UIC3 0x1 0x4 /* swizzled int B */ 31871f34979SDavid Gibson 0x0 0x0 0x0 0x3 &UIC3 0x2 0x4 /* swizzled int C */ 31971f34979SDavid Gibson 0x0 0x0 0x0 0x4 &UIC3 0x3 0x4 /* swizzled int D */>; 3203de9c9cdSBenjamin Herrenschmidt }; 3213de9c9cdSBenjamin Herrenschmidt 3223de9c9cdSBenjamin Herrenschmidt PCIE1: pciex@d20000000 { 3233de9c9cdSBenjamin Herrenschmidt device_type = "pci"; 3243de9c9cdSBenjamin Herrenschmidt #interrupt-cells = <1>; 3253de9c9cdSBenjamin Herrenschmidt #size-cells = <2>; 3263de9c9cdSBenjamin Herrenschmidt #address-cells = <3>; 327accf5ef2SStefan Roese compatible = "ibm,plb-pciex-440spe", "ibm,plb-pciex"; 3283de9c9cdSBenjamin Herrenschmidt primary; 32971f34979SDavid Gibson port = <0x1>; /* port number */ 33071f34979SDavid Gibson reg = <0x0000000d 0x20000000 0x20000000 /* Config space access */ 33171f34979SDavid Gibson 0x0000000c 0x10001000 0x00001000>; /* Registers */ 33271f34979SDavid Gibson dcr-reg = <0x120 0x020>; 33371f34979SDavid Gibson sdr-base = <0x340>; 3343de9c9cdSBenjamin Herrenschmidt 3353de9c9cdSBenjamin Herrenschmidt /* Outbound ranges, one memory and one IO, 3363de9c9cdSBenjamin Herrenschmidt * later cannot be changed 3373de9c9cdSBenjamin Herrenschmidt */ 33871f34979SDavid Gibson ranges = <0x02000000 0x00000000 0x80000000 0x0000000e 0x80000000 0x00000000 0x80000000 33971f34979SDavid Gibson 0x01000000 0x00000000 0x00000000 0x0000000f 0x80010000 0x00000000 0x00010000>; 3403de9c9cdSBenjamin Herrenschmidt 3413de9c9cdSBenjamin Herrenschmidt /* Inbound 2GB range starting at 0 */ 34271f34979SDavid Gibson dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x0 0x80000000>; 3433de9c9cdSBenjamin Herrenschmidt 3443de9c9cdSBenjamin Herrenschmidt /* This drives busses 10 to 0x1f */ 34571f34979SDavid Gibson bus-range = <0x20 0x2f>; 3463de9c9cdSBenjamin Herrenschmidt 3473de9c9cdSBenjamin Herrenschmidt /* Legacy interrupts (note the weird polarity, the bridge seems 3483de9c9cdSBenjamin Herrenschmidt * to invert PCIe legacy interrupts). 3493de9c9cdSBenjamin Herrenschmidt * We are de-swizzling here because the numbers are actually for 3503de9c9cdSBenjamin Herrenschmidt * port of the root complex virtual P2P bridge. But I want 3513de9c9cdSBenjamin Herrenschmidt * to avoid putting a node for it in the tree, so the numbers 3523de9c9cdSBenjamin Herrenschmidt * below are basically de-swizzled numbers. 3533de9c9cdSBenjamin Herrenschmidt * The real slot is on idsel 0, so the swizzling is 1:1 3543de9c9cdSBenjamin Herrenschmidt */ 35571f34979SDavid Gibson interrupt-map-mask = <0x0 0x0 0x0 0x7>; 3563de9c9cdSBenjamin Herrenschmidt interrupt-map = < 35771f34979SDavid Gibson 0x0 0x0 0x0 0x1 &UIC3 0x4 0x4 /* swizzled int A */ 35871f34979SDavid Gibson 0x0 0x0 0x0 0x2 &UIC3 0x5 0x4 /* swizzled int B */ 35971f34979SDavid Gibson 0x0 0x0 0x0 0x3 &UIC3 0x6 0x4 /* swizzled int C */ 36071f34979SDavid Gibson 0x0 0x0 0x0 0x4 &UIC3 0x7 0x4 /* swizzled int D */>; 3613de9c9cdSBenjamin Herrenschmidt }; 3623de9c9cdSBenjamin Herrenschmidt 3633de9c9cdSBenjamin Herrenschmidt PCIE2: pciex@d40000000 { 3643de9c9cdSBenjamin Herrenschmidt device_type = "pci"; 3653de9c9cdSBenjamin Herrenschmidt #interrupt-cells = <1>; 3663de9c9cdSBenjamin Herrenschmidt #size-cells = <2>; 3673de9c9cdSBenjamin Herrenschmidt #address-cells = <3>; 368accf5ef2SStefan Roese compatible = "ibm,plb-pciex-440spe", "ibm,plb-pciex"; 3693de9c9cdSBenjamin Herrenschmidt primary; 37071f34979SDavid Gibson port = <0x2>; /* port number */ 37171f34979SDavid Gibson reg = <0x0000000d 0x40000000 0x20000000 /* Config space access */ 37271f34979SDavid Gibson 0x0000000c 0x10002000 0x00001000>; /* Registers */ 37371f34979SDavid Gibson dcr-reg = <0x140 0x020>; 37471f34979SDavid Gibson sdr-base = <0x370>; 3753de9c9cdSBenjamin Herrenschmidt 3763de9c9cdSBenjamin Herrenschmidt /* Outbound ranges, one memory and one IO, 3773de9c9cdSBenjamin Herrenschmidt * later cannot be changed 3783de9c9cdSBenjamin Herrenschmidt */ 37971f34979SDavid Gibson ranges = <0x02000000 0x00000000 0x80000000 0x0000000f 0x00000000 0x00000000 0x80000000 38071f34979SDavid Gibson 0x01000000 0x00000000 0x00000000 0x0000000f 0x80020000 0x00000000 0x00010000>; 3813de9c9cdSBenjamin Herrenschmidt 3823de9c9cdSBenjamin Herrenschmidt /* Inbound 2GB range starting at 0 */ 38371f34979SDavid Gibson dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x0 0x80000000>; 3843de9c9cdSBenjamin Herrenschmidt 3853de9c9cdSBenjamin Herrenschmidt /* This drives busses 10 to 0x1f */ 38671f34979SDavid Gibson bus-range = <0x30 0x3f>; 3873de9c9cdSBenjamin Herrenschmidt 3883de9c9cdSBenjamin Herrenschmidt /* Legacy interrupts (note the weird polarity, the bridge seems 3893de9c9cdSBenjamin Herrenschmidt * to invert PCIe legacy interrupts). 3903de9c9cdSBenjamin Herrenschmidt * We are de-swizzling here because the numbers are actually for 3913de9c9cdSBenjamin Herrenschmidt * port of the root complex virtual P2P bridge. But I want 3923de9c9cdSBenjamin Herrenschmidt * to avoid putting a node for it in the tree, so the numbers 3933de9c9cdSBenjamin Herrenschmidt * below are basically de-swizzled numbers. 3943de9c9cdSBenjamin Herrenschmidt * The real slot is on idsel 0, so the swizzling is 1:1 3953de9c9cdSBenjamin Herrenschmidt */ 39671f34979SDavid Gibson interrupt-map-mask = <0x0 0x0 0x0 0x7>; 3973de9c9cdSBenjamin Herrenschmidt interrupt-map = < 39871f34979SDavid Gibson 0x0 0x0 0x0 0x1 &UIC3 0x8 0x4 /* swizzled int A */ 39971f34979SDavid Gibson 0x0 0x0 0x0 0x2 &UIC3 0x9 0x4 /* swizzled int B */ 40071f34979SDavid Gibson 0x0 0x0 0x0 0x3 &UIC3 0xa 0x4 /* swizzled int C */ 40171f34979SDavid Gibson 0x0 0x0 0x0 0x4 &UIC3 0xb 0x4 /* swizzled int D */>; 4023de9c9cdSBenjamin Herrenschmidt }; 4033de9c9cdSBenjamin Herrenschmidt }; 4043de9c9cdSBenjamin Herrenschmidt 4053de9c9cdSBenjamin Herrenschmidt chosen { 4063de9c9cdSBenjamin Herrenschmidt linux,stdout-path = "/plb/opb/serial@10000200"; 4073de9c9cdSBenjamin Herrenschmidt }; 4083de9c9cdSBenjamin Herrenschmidt}; 409