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