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 153de9c9cdSBenjamin Herrenschmidt/ { 163de9c9cdSBenjamin Herrenschmidt #address-cells = <2>; 173de9c9cdSBenjamin Herrenschmidt #size-cells = <1>; 183de9c9cdSBenjamin Herrenschmidt model = "amcc,katmai"; 193de9c9cdSBenjamin Herrenschmidt compatible = "amcc,katmai"; 203de9c9cdSBenjamin Herrenschmidt dcr-parent = <&/cpus/PowerPC,440SPe@0>; 213de9c9cdSBenjamin Herrenschmidt 223de9c9cdSBenjamin Herrenschmidt cpus { 233de9c9cdSBenjamin Herrenschmidt #address-cells = <1>; 243de9c9cdSBenjamin Herrenschmidt #size-cells = <0>; 253de9c9cdSBenjamin Herrenschmidt 263de9c9cdSBenjamin Herrenschmidt PowerPC,440SPe@0 { 273de9c9cdSBenjamin Herrenschmidt device_type = "cpu"; 283de9c9cdSBenjamin Herrenschmidt reg = <0>; 293de9c9cdSBenjamin Herrenschmidt clock-frequency = <0>; /* Filled in by zImage */ 303de9c9cdSBenjamin Herrenschmidt timebase-frequency = <0>; /* Filled in by zImage */ 313de9c9cdSBenjamin Herrenschmidt i-cache-line-size = <20>; 323de9c9cdSBenjamin Herrenschmidt d-cache-line-size = <20>; 333de9c9cdSBenjamin Herrenschmidt i-cache-size = <20000>; 343de9c9cdSBenjamin Herrenschmidt d-cache-size = <20000>; 353de9c9cdSBenjamin Herrenschmidt dcr-controller; 363de9c9cdSBenjamin Herrenschmidt dcr-access-method = "native"; 373de9c9cdSBenjamin Herrenschmidt }; 383de9c9cdSBenjamin Herrenschmidt }; 393de9c9cdSBenjamin Herrenschmidt 403de9c9cdSBenjamin Herrenschmidt memory { 413de9c9cdSBenjamin Herrenschmidt device_type = "memory"; 423de9c9cdSBenjamin Herrenschmidt reg = <0 0 0>; /* Filled in by zImage */ 433de9c9cdSBenjamin Herrenschmidt }; 443de9c9cdSBenjamin Herrenschmidt 453de9c9cdSBenjamin Herrenschmidt UIC0: interrupt-controller0 { 463de9c9cdSBenjamin Herrenschmidt compatible = "ibm,uic-440spe","ibm,uic"; 473de9c9cdSBenjamin Herrenschmidt interrupt-controller; 483de9c9cdSBenjamin Herrenschmidt cell-index = <0>; 493de9c9cdSBenjamin Herrenschmidt dcr-reg = <0c0 009>; 503de9c9cdSBenjamin Herrenschmidt #address-cells = <0>; 513de9c9cdSBenjamin Herrenschmidt #size-cells = <0>; 523de9c9cdSBenjamin Herrenschmidt #interrupt-cells = <2>; 533de9c9cdSBenjamin Herrenschmidt }; 543de9c9cdSBenjamin Herrenschmidt 553de9c9cdSBenjamin Herrenschmidt UIC1: interrupt-controller1 { 563de9c9cdSBenjamin Herrenschmidt compatible = "ibm,uic-440spe","ibm,uic"; 573de9c9cdSBenjamin Herrenschmidt interrupt-controller; 583de9c9cdSBenjamin Herrenschmidt cell-index = <1>; 593de9c9cdSBenjamin Herrenschmidt dcr-reg = <0d0 009>; 603de9c9cdSBenjamin Herrenschmidt #address-cells = <0>; 613de9c9cdSBenjamin Herrenschmidt #size-cells = <0>; 623de9c9cdSBenjamin Herrenschmidt #interrupt-cells = <2>; 633de9c9cdSBenjamin Herrenschmidt interrupts = <1e 4 1f 4>; /* cascade */ 643de9c9cdSBenjamin Herrenschmidt interrupt-parent = <&UIC0>; 653de9c9cdSBenjamin Herrenschmidt }; 663de9c9cdSBenjamin Herrenschmidt 673de9c9cdSBenjamin Herrenschmidt UIC2: interrupt-controller2 { 683de9c9cdSBenjamin Herrenschmidt compatible = "ibm,uic-440spe","ibm,uic"; 693de9c9cdSBenjamin Herrenschmidt interrupt-controller; 703de9c9cdSBenjamin Herrenschmidt cell-index = <2>; 713de9c9cdSBenjamin Herrenschmidt dcr-reg = <0e0 009>; 723de9c9cdSBenjamin Herrenschmidt #address-cells = <0>; 733de9c9cdSBenjamin Herrenschmidt #size-cells = <0>; 743de9c9cdSBenjamin Herrenschmidt #interrupt-cells = <2>; 753de9c9cdSBenjamin Herrenschmidt interrupts = <a 4 b 4>; /* cascade */ 763de9c9cdSBenjamin Herrenschmidt interrupt-parent = <&UIC0>; 773de9c9cdSBenjamin Herrenschmidt }; 783de9c9cdSBenjamin Herrenschmidt 793de9c9cdSBenjamin Herrenschmidt UIC3: interrupt-controller3 { 803de9c9cdSBenjamin Herrenschmidt compatible = "ibm,uic-440spe","ibm,uic"; 813de9c9cdSBenjamin Herrenschmidt interrupt-controller; 823de9c9cdSBenjamin Herrenschmidt cell-index = <3>; 833de9c9cdSBenjamin Herrenschmidt dcr-reg = <0f0 009>; 843de9c9cdSBenjamin Herrenschmidt #address-cells = <0>; 853de9c9cdSBenjamin Herrenschmidt #size-cells = <0>; 863de9c9cdSBenjamin Herrenschmidt #interrupt-cells = <2>; 873de9c9cdSBenjamin Herrenschmidt interrupts = <10 4 11 4>; /* cascade */ 883de9c9cdSBenjamin Herrenschmidt interrupt-parent = <&UIC0>; 893de9c9cdSBenjamin Herrenschmidt }; 903de9c9cdSBenjamin Herrenschmidt 913de9c9cdSBenjamin Herrenschmidt SDR0: sdr { 923de9c9cdSBenjamin Herrenschmidt compatible = "ibm,sdr-440spe"; 933de9c9cdSBenjamin Herrenschmidt dcr-reg = <00e 002>; 943de9c9cdSBenjamin Herrenschmidt }; 953de9c9cdSBenjamin Herrenschmidt 963de9c9cdSBenjamin Herrenschmidt CPR0: cpr { 973de9c9cdSBenjamin Herrenschmidt compatible = "ibm,cpr-440spe"; 983de9c9cdSBenjamin Herrenschmidt dcr-reg = <00c 002>; 993de9c9cdSBenjamin Herrenschmidt }; 1003de9c9cdSBenjamin Herrenschmidt 1013de9c9cdSBenjamin Herrenschmidt plb { 1023de9c9cdSBenjamin Herrenschmidt compatible = "ibm,plb-440spe", "ibm,plb-440gp", "ibm,plb4"; 1033de9c9cdSBenjamin Herrenschmidt #address-cells = <2>; 1043de9c9cdSBenjamin Herrenschmidt #size-cells = <1>; 1053de9c9cdSBenjamin Herrenschmidt ranges; 1063de9c9cdSBenjamin Herrenschmidt clock-frequency = <0>; /* Filled in by zImage */ 1073de9c9cdSBenjamin Herrenschmidt 1083de9c9cdSBenjamin Herrenschmidt SDRAM0: sdram { 1093de9c9cdSBenjamin Herrenschmidt compatible = "ibm,sdram-440spe", "ibm,sdram-405gp"; 1103de9c9cdSBenjamin Herrenschmidt dcr-reg = <010 2>; 1113de9c9cdSBenjamin Herrenschmidt }; 1123de9c9cdSBenjamin Herrenschmidt 1133de9c9cdSBenjamin Herrenschmidt MAL0: mcmal { 1143de9c9cdSBenjamin Herrenschmidt compatible = "ibm,mcmal-440spe", "ibm,mcmal2"; 1153de9c9cdSBenjamin Herrenschmidt dcr-reg = <180 62>; 1163de9c9cdSBenjamin Herrenschmidt num-tx-chans = <2>; 1173de9c9cdSBenjamin Herrenschmidt num-rx-chans = <1>; 1183de9c9cdSBenjamin Herrenschmidt interrupt-parent = <&MAL0>; 1193de9c9cdSBenjamin Herrenschmidt interrupts = <0 1 2 3 4>; 1203de9c9cdSBenjamin Herrenschmidt #interrupt-cells = <1>; 1213de9c9cdSBenjamin Herrenschmidt #address-cells = <0>; 1223de9c9cdSBenjamin Herrenschmidt #size-cells = <0>; 1233de9c9cdSBenjamin Herrenschmidt interrupt-map = </*TXEOB*/ 0 &UIC1 6 4 1243de9c9cdSBenjamin Herrenschmidt /*RXEOB*/ 1 &UIC1 7 4 1253de9c9cdSBenjamin Herrenschmidt /*SERR*/ 2 &UIC1 1 4 1263de9c9cdSBenjamin Herrenschmidt /*TXDE*/ 3 &UIC1 2 4 1273de9c9cdSBenjamin Herrenschmidt /*RXDE*/ 4 &UIC1 3 4>; 1283de9c9cdSBenjamin Herrenschmidt }; 1293de9c9cdSBenjamin Herrenschmidt 1303de9c9cdSBenjamin Herrenschmidt POB0: opb { 1313de9c9cdSBenjamin Herrenschmidt compatible = "ibm,opb-440spe", "ibm,opb-440gp", "ibm,opb"; 1323de9c9cdSBenjamin Herrenschmidt #address-cells = <1>; 1333de9c9cdSBenjamin Herrenschmidt #size-cells = <1>; 1343de9c9cdSBenjamin Herrenschmidt ranges = <00000000 4 e0000000 20000000>; 1353de9c9cdSBenjamin Herrenschmidt clock-frequency = <0>; /* Filled in by zImage */ 1363de9c9cdSBenjamin Herrenschmidt 1373de9c9cdSBenjamin Herrenschmidt EBC0: ebc { 1383de9c9cdSBenjamin Herrenschmidt compatible = "ibm,ebc-440spe", "ibm,ebc-440gp", "ibm,ebc"; 1393de9c9cdSBenjamin Herrenschmidt dcr-reg = <012 2>; 1403de9c9cdSBenjamin Herrenschmidt #address-cells = <2>; 1413de9c9cdSBenjamin Herrenschmidt #size-cells = <1>; 1423de9c9cdSBenjamin Herrenschmidt clock-frequency = <0>; /* Filled in by zImage */ 1433de9c9cdSBenjamin Herrenschmidt interrupts = <5 1>; 1443de9c9cdSBenjamin Herrenschmidt interrupt-parent = <&UIC1>; 1453de9c9cdSBenjamin Herrenschmidt }; 1463de9c9cdSBenjamin Herrenschmidt 1473de9c9cdSBenjamin Herrenschmidt UART0: serial@10000200 { 1483de9c9cdSBenjamin Herrenschmidt device_type = "serial"; 1493de9c9cdSBenjamin Herrenschmidt compatible = "ns16550"; 1503de9c9cdSBenjamin Herrenschmidt reg = <10000200 8>; 1513de9c9cdSBenjamin Herrenschmidt virtual-reg = <a0000200>; 1523de9c9cdSBenjamin Herrenschmidt clock-frequency = <0>; /* Filled in by zImage */ 1533de9c9cdSBenjamin Herrenschmidt current-speed = <1c200>; 1543de9c9cdSBenjamin Herrenschmidt interrupt-parent = <&UIC0>; 1553de9c9cdSBenjamin Herrenschmidt interrupts = <0 4>; 1563de9c9cdSBenjamin Herrenschmidt }; 1573de9c9cdSBenjamin Herrenschmidt 1583de9c9cdSBenjamin Herrenschmidt UART1: serial@10000300 { 1593de9c9cdSBenjamin Herrenschmidt device_type = "serial"; 1603de9c9cdSBenjamin Herrenschmidt compatible = "ns16550"; 1613de9c9cdSBenjamin Herrenschmidt reg = <10000300 8>; 1623de9c9cdSBenjamin Herrenschmidt virtual-reg = <a0000300>; 1633de9c9cdSBenjamin Herrenschmidt clock-frequency = <0>; 1643de9c9cdSBenjamin Herrenschmidt current-speed = <0>; 1653de9c9cdSBenjamin Herrenschmidt interrupt-parent = <&UIC0>; 1663de9c9cdSBenjamin Herrenschmidt interrupts = <1 4>; 1673de9c9cdSBenjamin Herrenschmidt }; 1683de9c9cdSBenjamin Herrenschmidt 1693de9c9cdSBenjamin Herrenschmidt 1703de9c9cdSBenjamin Herrenschmidt UART2: serial@10000600 { 1713de9c9cdSBenjamin Herrenschmidt device_type = "serial"; 1723de9c9cdSBenjamin Herrenschmidt compatible = "ns16550"; 1733de9c9cdSBenjamin Herrenschmidt reg = <10000600 8>; 1743de9c9cdSBenjamin Herrenschmidt virtual-reg = <a0000600>; 1753de9c9cdSBenjamin Herrenschmidt clock-frequency = <0>; 1763de9c9cdSBenjamin Herrenschmidt current-speed = <0>; 1773de9c9cdSBenjamin Herrenschmidt interrupt-parent = <&UIC1>; 1783de9c9cdSBenjamin Herrenschmidt interrupts = <5 4>; 1793de9c9cdSBenjamin Herrenschmidt }; 1803de9c9cdSBenjamin Herrenschmidt 1813de9c9cdSBenjamin Herrenschmidt IIC0: i2c@10000400 { 1823de9c9cdSBenjamin Herrenschmidt device_type = "i2c"; 1833de9c9cdSBenjamin Herrenschmidt compatible = "ibm,iic-440spe", "ibm,iic-440gp", "ibm,iic"; 1843de9c9cdSBenjamin Herrenschmidt reg = <10000400 14>; 1853de9c9cdSBenjamin Herrenschmidt interrupt-parent = <&UIC0>; 1863de9c9cdSBenjamin Herrenschmidt interrupts = <2 4>; 1873de9c9cdSBenjamin Herrenschmidt }; 1883de9c9cdSBenjamin Herrenschmidt 1893de9c9cdSBenjamin Herrenschmidt IIC1: i2c@10000500 { 1903de9c9cdSBenjamin Herrenschmidt device_type = "i2c"; 1913de9c9cdSBenjamin Herrenschmidt compatible = "ibm,iic-440spe", "ibm,iic-440gp", "ibm,iic"; 1923de9c9cdSBenjamin Herrenschmidt reg = <10000500 14>; 1933de9c9cdSBenjamin Herrenschmidt interrupt-parent = <&UIC0>; 1943de9c9cdSBenjamin Herrenschmidt interrupts = <3 4>; 1953de9c9cdSBenjamin Herrenschmidt }; 1963de9c9cdSBenjamin Herrenschmidt 1973de9c9cdSBenjamin Herrenschmidt EMAC0: ethernet@10000800 { 1983de9c9cdSBenjamin Herrenschmidt linux,network-index = <0>; 1993de9c9cdSBenjamin Herrenschmidt device_type = "network"; 2003de9c9cdSBenjamin Herrenschmidt compatible = "ibm,emac-440spe", "ibm,emac4"; 2013de9c9cdSBenjamin Herrenschmidt interrupt-parent = <&UIC1>; 2023de9c9cdSBenjamin Herrenschmidt interrupts = <1c 4 1d 4>; 2033de9c9cdSBenjamin Herrenschmidt reg = <10000800 70>; 2043de9c9cdSBenjamin Herrenschmidt local-mac-address = [000000000000]; 2053de9c9cdSBenjamin Herrenschmidt mal-device = <&MAL0>; 2063de9c9cdSBenjamin Herrenschmidt mal-tx-channel = <0>; 2073de9c9cdSBenjamin Herrenschmidt mal-rx-channel = <0>; 2083de9c9cdSBenjamin Herrenschmidt cell-index = <0>; 2093de9c9cdSBenjamin Herrenschmidt max-frame-size = <5dc>; 2103de9c9cdSBenjamin Herrenschmidt rx-fifo-size = <1000>; 2113de9c9cdSBenjamin Herrenschmidt tx-fifo-size = <800>; 2123de9c9cdSBenjamin Herrenschmidt phy-mode = "gmii"; 2133de9c9cdSBenjamin Herrenschmidt phy-map = <00000000>; 2143de9c9cdSBenjamin Herrenschmidt has-inverted-stacr-oc; 2153de9c9cdSBenjamin Herrenschmidt has-new-stacr-staopc; 2163de9c9cdSBenjamin Herrenschmidt }; 2173de9c9cdSBenjamin Herrenschmidt }; 2183de9c9cdSBenjamin Herrenschmidt 2193de9c9cdSBenjamin Herrenschmidt PCIX0: pci@c0ec00000 { 2203de9c9cdSBenjamin Herrenschmidt device_type = "pci"; 2213de9c9cdSBenjamin Herrenschmidt #interrupt-cells = <1>; 2223de9c9cdSBenjamin Herrenschmidt #size-cells = <2>; 2233de9c9cdSBenjamin Herrenschmidt #address-cells = <3>; 2243de9c9cdSBenjamin Herrenschmidt compatible = "ibm,plb-pcix-440spe", "ibm,plb-pcix"; 2253de9c9cdSBenjamin Herrenschmidt primary; 2263de9c9cdSBenjamin Herrenschmidt large-inbound-windows; 2273de9c9cdSBenjamin Herrenschmidt enable-msi-hole; 2283de9c9cdSBenjamin Herrenschmidt reg = <c 0ec00000 8 /* Config space access */ 2293de9c9cdSBenjamin Herrenschmidt 0 0 0 /* no IACK cycles */ 2303de9c9cdSBenjamin Herrenschmidt c 0ed00000 4 /* Special cycles */ 2313de9c9cdSBenjamin Herrenschmidt c 0ec80000 100 /* Internal registers */ 2323de9c9cdSBenjamin Herrenschmidt c 0ec80100 fc>; /* Internal messaging registers */ 2333de9c9cdSBenjamin Herrenschmidt 2343de9c9cdSBenjamin Herrenschmidt /* Outbound ranges, one memory and one IO, 2353de9c9cdSBenjamin Herrenschmidt * later cannot be changed 2363de9c9cdSBenjamin Herrenschmidt */ 2373de9c9cdSBenjamin Herrenschmidt ranges = <02000000 0 80000000 0000000d 80000000 0 80000000 2383de9c9cdSBenjamin Herrenschmidt 01000000 0 00000000 0000000c 08000000 0 00010000>; 2393de9c9cdSBenjamin Herrenschmidt 2403de9c9cdSBenjamin Herrenschmidt /* Inbound 2GB range starting at 0 */ 2413de9c9cdSBenjamin Herrenschmidt dma-ranges = <42000000 0 0 0 0 0 80000000>; 2423de9c9cdSBenjamin Herrenschmidt 2433de9c9cdSBenjamin Herrenschmidt /* This drives busses 0 to 0xf */ 2443de9c9cdSBenjamin Herrenschmidt bus-range = <0 f>; 2453de9c9cdSBenjamin Herrenschmidt 2463de9c9cdSBenjamin Herrenschmidt /* 2473de9c9cdSBenjamin Herrenschmidt * On Katmai, the following PCI-X interrupts signals 2483de9c9cdSBenjamin Herrenschmidt * have to be enabled via jumpers (only INTA is 2493de9c9cdSBenjamin Herrenschmidt * enabled per default): 2503de9c9cdSBenjamin Herrenschmidt * 2513de9c9cdSBenjamin Herrenschmidt * INTB: J3: 1-2 2523de9c9cdSBenjamin Herrenschmidt * INTC: J2: 1-2 2533de9c9cdSBenjamin Herrenschmidt * INTD: J1: 1-2 2543de9c9cdSBenjamin Herrenschmidt */ 2553de9c9cdSBenjamin Herrenschmidt interrupt-map-mask = <f800 0 0 7>; 2563de9c9cdSBenjamin Herrenschmidt interrupt-map = < 2573de9c9cdSBenjamin Herrenschmidt /* IDSEL 1 */ 2583de9c9cdSBenjamin Herrenschmidt 0800 0 0 1 &UIC1 14 8 2593de9c9cdSBenjamin Herrenschmidt 0800 0 0 2 &UIC1 13 8 2603de9c9cdSBenjamin Herrenschmidt 0800 0 0 3 &UIC1 12 8 2613de9c9cdSBenjamin Herrenschmidt 0800 0 0 4 &UIC1 11 8 2623de9c9cdSBenjamin Herrenschmidt >; 2633de9c9cdSBenjamin Herrenschmidt }; 2643de9c9cdSBenjamin Herrenschmidt 2653de9c9cdSBenjamin Herrenschmidt PCIE0: pciex@d00000000 { 2663de9c9cdSBenjamin Herrenschmidt device_type = "pci"; 2673de9c9cdSBenjamin Herrenschmidt #interrupt-cells = <1>; 2683de9c9cdSBenjamin Herrenschmidt #size-cells = <2>; 2693de9c9cdSBenjamin Herrenschmidt #address-cells = <3>; 270accf5ef2SStefan Roese compatible = "ibm,plb-pciex-440spe", "ibm,plb-pciex"; 2713de9c9cdSBenjamin Herrenschmidt primary; 2723de9c9cdSBenjamin Herrenschmidt port = <0>; /* port number */ 2733de9c9cdSBenjamin Herrenschmidt reg = <d 00000000 20000000 /* Config space access */ 2743de9c9cdSBenjamin Herrenschmidt c 10000000 00001000>; /* Registers */ 2753de9c9cdSBenjamin Herrenschmidt dcr-reg = <100 020>; 2763de9c9cdSBenjamin Herrenschmidt sdr-base = <300>; 2773de9c9cdSBenjamin Herrenschmidt 2783de9c9cdSBenjamin Herrenschmidt /* Outbound ranges, one memory and one IO, 2793de9c9cdSBenjamin Herrenschmidt * later cannot be changed 2803de9c9cdSBenjamin Herrenschmidt */ 2813de9c9cdSBenjamin Herrenschmidt ranges = <02000000 0 80000000 0000000e 00000000 0 80000000 2823de9c9cdSBenjamin Herrenschmidt 01000000 0 00000000 0000000f 80000000 0 00010000>; 2833de9c9cdSBenjamin Herrenschmidt 2843de9c9cdSBenjamin Herrenschmidt /* Inbound 2GB range starting at 0 */ 2853de9c9cdSBenjamin Herrenschmidt dma-ranges = <42000000 0 0 0 0 0 80000000>; 2863de9c9cdSBenjamin Herrenschmidt 2873de9c9cdSBenjamin Herrenschmidt /* This drives busses 10 to 0x1f */ 2883de9c9cdSBenjamin Herrenschmidt bus-range = <10 1f>; 2893de9c9cdSBenjamin Herrenschmidt 2903de9c9cdSBenjamin Herrenschmidt /* Legacy interrupts (note the weird polarity, the bridge seems 2913de9c9cdSBenjamin Herrenschmidt * to invert PCIe legacy interrupts). 2923de9c9cdSBenjamin Herrenschmidt * We are de-swizzling here because the numbers are actually for 2933de9c9cdSBenjamin Herrenschmidt * port of the root complex virtual P2P bridge. But I want 2943de9c9cdSBenjamin Herrenschmidt * to avoid putting a node for it in the tree, so the numbers 2953de9c9cdSBenjamin Herrenschmidt * below are basically de-swizzled numbers. 2963de9c9cdSBenjamin Herrenschmidt * The real slot is on idsel 0, so the swizzling is 1:1 2973de9c9cdSBenjamin Herrenschmidt */ 2983de9c9cdSBenjamin Herrenschmidt interrupt-map-mask = <0000 0 0 7>; 2993de9c9cdSBenjamin Herrenschmidt interrupt-map = < 3003de9c9cdSBenjamin Herrenschmidt 0000 0 0 1 &UIC3 0 4 /* swizzled int A */ 3013de9c9cdSBenjamin Herrenschmidt 0000 0 0 2 &UIC3 1 4 /* swizzled int B */ 3023de9c9cdSBenjamin Herrenschmidt 0000 0 0 3 &UIC3 2 4 /* swizzled int C */ 3033de9c9cdSBenjamin Herrenschmidt 0000 0 0 4 &UIC3 3 4 /* swizzled int D */>; 3043de9c9cdSBenjamin Herrenschmidt }; 3053de9c9cdSBenjamin Herrenschmidt 3063de9c9cdSBenjamin Herrenschmidt PCIE1: pciex@d20000000 { 3073de9c9cdSBenjamin Herrenschmidt device_type = "pci"; 3083de9c9cdSBenjamin Herrenschmidt #interrupt-cells = <1>; 3093de9c9cdSBenjamin Herrenschmidt #size-cells = <2>; 3103de9c9cdSBenjamin Herrenschmidt #address-cells = <3>; 311accf5ef2SStefan Roese compatible = "ibm,plb-pciex-440spe", "ibm,plb-pciex"; 3123de9c9cdSBenjamin Herrenschmidt primary; 3133de9c9cdSBenjamin Herrenschmidt port = <1>; /* port number */ 3143de9c9cdSBenjamin Herrenschmidt reg = <d 20000000 20000000 /* Config space access */ 3153de9c9cdSBenjamin Herrenschmidt c 10001000 00001000>; /* Registers */ 3163de9c9cdSBenjamin Herrenschmidt dcr-reg = <120 020>; 3173de9c9cdSBenjamin Herrenschmidt sdr-base = <340>; 3183de9c9cdSBenjamin Herrenschmidt 3193de9c9cdSBenjamin Herrenschmidt /* Outbound ranges, one memory and one IO, 3203de9c9cdSBenjamin Herrenschmidt * later cannot be changed 3213de9c9cdSBenjamin Herrenschmidt */ 3223de9c9cdSBenjamin Herrenschmidt ranges = <02000000 0 80000000 0000000e 80000000 0 80000000 3233de9c9cdSBenjamin Herrenschmidt 01000000 0 00000000 0000000f 80010000 0 00010000>; 3243de9c9cdSBenjamin Herrenschmidt 3253de9c9cdSBenjamin Herrenschmidt /* Inbound 2GB range starting at 0 */ 3263de9c9cdSBenjamin Herrenschmidt dma-ranges = <42000000 0 0 0 0 0 80000000>; 3273de9c9cdSBenjamin Herrenschmidt 3283de9c9cdSBenjamin Herrenschmidt /* This drives busses 10 to 0x1f */ 3293de9c9cdSBenjamin Herrenschmidt bus-range = <20 2f>; 3303de9c9cdSBenjamin Herrenschmidt 3313de9c9cdSBenjamin Herrenschmidt /* Legacy interrupts (note the weird polarity, the bridge seems 3323de9c9cdSBenjamin Herrenschmidt * to invert PCIe legacy interrupts). 3333de9c9cdSBenjamin Herrenschmidt * We are de-swizzling here because the numbers are actually for 3343de9c9cdSBenjamin Herrenschmidt * port of the root complex virtual P2P bridge. But I want 3353de9c9cdSBenjamin Herrenschmidt * to avoid putting a node for it in the tree, so the numbers 3363de9c9cdSBenjamin Herrenschmidt * below are basically de-swizzled numbers. 3373de9c9cdSBenjamin Herrenschmidt * The real slot is on idsel 0, so the swizzling is 1:1 3383de9c9cdSBenjamin Herrenschmidt */ 3393de9c9cdSBenjamin Herrenschmidt interrupt-map-mask = <0000 0 0 7>; 3403de9c9cdSBenjamin Herrenschmidt interrupt-map = < 3413de9c9cdSBenjamin Herrenschmidt 0000 0 0 1 &UIC3 4 4 /* swizzled int A */ 3423de9c9cdSBenjamin Herrenschmidt 0000 0 0 2 &UIC3 5 4 /* swizzled int B */ 3433de9c9cdSBenjamin Herrenschmidt 0000 0 0 3 &UIC3 6 4 /* swizzled int C */ 3443de9c9cdSBenjamin Herrenschmidt 0000 0 0 4 &UIC3 7 4 /* swizzled int D */>; 3453de9c9cdSBenjamin Herrenschmidt }; 3463de9c9cdSBenjamin Herrenschmidt 3473de9c9cdSBenjamin Herrenschmidt PCIE2: pciex@d40000000 { 3483de9c9cdSBenjamin Herrenschmidt device_type = "pci"; 3493de9c9cdSBenjamin Herrenschmidt #interrupt-cells = <1>; 3503de9c9cdSBenjamin Herrenschmidt #size-cells = <2>; 3513de9c9cdSBenjamin Herrenschmidt #address-cells = <3>; 352accf5ef2SStefan Roese compatible = "ibm,plb-pciex-440spe", "ibm,plb-pciex"; 3533de9c9cdSBenjamin Herrenschmidt primary; 3543de9c9cdSBenjamin Herrenschmidt port = <2>; /* port number */ 3553de9c9cdSBenjamin Herrenschmidt reg = <d 40000000 20000000 /* Config space access */ 3563de9c9cdSBenjamin Herrenschmidt c 10002000 00001000>; /* Registers */ 3573de9c9cdSBenjamin Herrenschmidt dcr-reg = <140 020>; 3583de9c9cdSBenjamin Herrenschmidt sdr-base = <370>; 3593de9c9cdSBenjamin Herrenschmidt 3603de9c9cdSBenjamin Herrenschmidt /* Outbound ranges, one memory and one IO, 3613de9c9cdSBenjamin Herrenschmidt * later cannot be changed 3623de9c9cdSBenjamin Herrenschmidt */ 3633de9c9cdSBenjamin Herrenschmidt ranges = <02000000 0 80000000 0000000f 00000000 0 80000000 3643de9c9cdSBenjamin Herrenschmidt 01000000 0 00000000 0000000f 80020000 0 00010000>; 3653de9c9cdSBenjamin Herrenschmidt 3663de9c9cdSBenjamin Herrenschmidt /* Inbound 2GB range starting at 0 */ 3673de9c9cdSBenjamin Herrenschmidt dma-ranges = <42000000 0 0 0 0 0 80000000>; 3683de9c9cdSBenjamin Herrenschmidt 3693de9c9cdSBenjamin Herrenschmidt /* This drives busses 10 to 0x1f */ 3703de9c9cdSBenjamin Herrenschmidt bus-range = <30 3f>; 3713de9c9cdSBenjamin Herrenschmidt 3723de9c9cdSBenjamin Herrenschmidt /* Legacy interrupts (note the weird polarity, the bridge seems 3733de9c9cdSBenjamin Herrenschmidt * to invert PCIe legacy interrupts). 3743de9c9cdSBenjamin Herrenschmidt * We are de-swizzling here because the numbers are actually for 3753de9c9cdSBenjamin Herrenschmidt * port of the root complex virtual P2P bridge. But I want 3763de9c9cdSBenjamin Herrenschmidt * to avoid putting a node for it in the tree, so the numbers 3773de9c9cdSBenjamin Herrenschmidt * below are basically de-swizzled numbers. 3783de9c9cdSBenjamin Herrenschmidt * The real slot is on idsel 0, so the swizzling is 1:1 3793de9c9cdSBenjamin Herrenschmidt */ 3803de9c9cdSBenjamin Herrenschmidt interrupt-map-mask = <0000 0 0 7>; 3813de9c9cdSBenjamin Herrenschmidt interrupt-map = < 3823de9c9cdSBenjamin Herrenschmidt 0000 0 0 1 &UIC3 8 4 /* swizzled int A */ 3833de9c9cdSBenjamin Herrenschmidt 0000 0 0 2 &UIC3 9 4 /* swizzled int B */ 3843de9c9cdSBenjamin Herrenschmidt 0000 0 0 3 &UIC3 a 4 /* swizzled int C */ 3853de9c9cdSBenjamin Herrenschmidt 0000 0 0 4 &UIC3 b 4 /* swizzled int D */>; 3863de9c9cdSBenjamin Herrenschmidt }; 3873de9c9cdSBenjamin Herrenschmidt }; 3883de9c9cdSBenjamin Herrenschmidt 3893de9c9cdSBenjamin Herrenschmidt chosen { 3903de9c9cdSBenjamin Herrenschmidt linux,stdout-path = "/plb/opb/serial@10000200"; 3913de9c9cdSBenjamin Herrenschmidt }; 3923de9c9cdSBenjamin Herrenschmidt}; 393