12a2c74b2SAlistair Popple/* 22a2c74b2SAlistair Popple * Device Tree Source for IBM Embedded PPC 476 Platform 32a2c74b2SAlistair Popple * 42a2c74b2SAlistair Popple * Copyright © 2013 Tony Breeds IBM Corporation 52a2c74b2SAlistair Popple * Copyright © 2013 Alistair Popple IBM Corporation 62a2c74b2SAlistair Popple * 72a2c74b2SAlistair Popple * This file is licensed under the terms of the GNU General Public 82a2c74b2SAlistair Popple * License version 2. This program is licensed "as is" without 92a2c74b2SAlistair Popple * any warranty of any kind, whether express or implied. 102a2c74b2SAlistair Popple */ 112a2c74b2SAlistair Popple 122a2c74b2SAlistair Popple/dts-v1/; 132a2c74b2SAlistair Popple 142a2c74b2SAlistair Popple/memreserve/ 0x01f00000 0x00100000; // spin table 152a2c74b2SAlistair Popple 162a2c74b2SAlistair Popple/ { 172a2c74b2SAlistair Popple #address-cells = <2>; 182a2c74b2SAlistair Popple #size-cells = <2>; 192a2c74b2SAlistair Popple model = "ibm,akebono"; 202a2c74b2SAlistair Popple compatible = "ibm,akebono", "ibm,476gtr"; 212a2c74b2SAlistair Popple dcr-parent = <&{/cpus/cpu@0}>; 222a2c74b2SAlistair Popple 232a2c74b2SAlistair Popple aliases { 242a2c74b2SAlistair Popple serial0 = &UART0; 252a2c74b2SAlistair Popple }; 262a2c74b2SAlistair Popple 272a2c74b2SAlistair Popple cpus { 282a2c74b2SAlistair Popple #address-cells = <1>; 292a2c74b2SAlistair Popple #size-cells = <0>; 302a2c74b2SAlistair Popple 312a2c74b2SAlistair Popple cpu@0 { 322a2c74b2SAlistair Popple device_type = "cpu"; 332a2c74b2SAlistair Popple model = "PowerPC,476"; 342a2c74b2SAlistair Popple reg = <0>; 352a2c74b2SAlistair Popple clock-frequency = <1600000000>; // 1.6 GHz 362a2c74b2SAlistair Popple timebase-frequency = <100000000>; // 100Mhz 372a2c74b2SAlistair Popple i-cache-line-size = <32>; 382a2c74b2SAlistair Popple d-cache-line-size = <32>; 392a2c74b2SAlistair Popple i-cache-size = <32768>; 402a2c74b2SAlistair Popple d-cache-size = <32768>; 412a2c74b2SAlistair Popple dcr-controller; 422a2c74b2SAlistair Popple dcr-access-method = "native"; 432a2c74b2SAlistair Popple status = "ok"; 442a2c74b2SAlistair Popple }; 452a2c74b2SAlistair Popple cpu@1 { 462a2c74b2SAlistair Popple device_type = "cpu"; 472a2c74b2SAlistair Popple model = "PowerPC,476"; 482a2c74b2SAlistair Popple reg = <1>; 492a2c74b2SAlistair Popple clock-frequency = <1600000000>; // 1.6 GHz 502a2c74b2SAlistair Popple timebase-frequency = <100000000>; // 100Mhz 512a2c74b2SAlistair Popple i-cache-line-size = <32>; 522a2c74b2SAlistair Popple d-cache-line-size = <32>; 532a2c74b2SAlistair Popple i-cache-size = <32768>; 542a2c74b2SAlistair Popple d-cache-size = <32768>; 552a2c74b2SAlistair Popple dcr-controller; 562a2c74b2SAlistair Popple dcr-access-method = "native"; 572a2c74b2SAlistair Popple status = "disabled"; 582a2c74b2SAlistair Popple enable-method = "spin-table"; 592a2c74b2SAlistair Popple cpu-release-addr = <0x0 0x01f00000>; 602a2c74b2SAlistair Popple }; 612a2c74b2SAlistair Popple }; 622a2c74b2SAlistair Popple 632a2c74b2SAlistair Popple memory { 642a2c74b2SAlistair Popple device_type = "memory"; 652a2c74b2SAlistair Popple reg = <0x0 0x0 0x0 0x0>; // filled in by zImage 662a2c74b2SAlistair Popple }; 672a2c74b2SAlistair Popple 682a2c74b2SAlistair Popple MPIC: interrupt-controller { 692a2c74b2SAlistair Popple compatible = "chrp,open-pic"; 702a2c74b2SAlistair Popple interrupt-controller; 712a2c74b2SAlistair Popple dcr-reg = <0xffc00000 0x00040000>; 722a2c74b2SAlistair Popple #address-cells = <0>; 732a2c74b2SAlistair Popple #size-cells = <0>; 742a2c74b2SAlistair Popple #interrupt-cells = <2>; 752a2c74b2SAlistair Popple single-cpu-affinity; 762a2c74b2SAlistair Popple }; 772a2c74b2SAlistair Popple 782a2c74b2SAlistair Popple plb { 792a2c74b2SAlistair Popple compatible = "ibm,plb6"; 802a2c74b2SAlistair Popple #address-cells = <2>; 812a2c74b2SAlistair Popple #size-cells = <2>; 822a2c74b2SAlistair Popple ranges; 832a2c74b2SAlistair Popple clock-frequency = <200000000>; // 200Mhz 842a2c74b2SAlistair Popple 852a2c74b2SAlistair Popple MAL0: mcmal { 862a2c74b2SAlistair Popple compatible = "ibm,mcmal-476gtr", "ibm,mcmal2"; 872a2c74b2SAlistair Popple dcr-reg = <0xc0000000 0x062>; 882a2c74b2SAlistair Popple num-tx-chans = <1>; 892a2c74b2SAlistair Popple num-rx-chans = <1>; 902a2c74b2SAlistair Popple #address-cells = <0>; 912a2c74b2SAlistair Popple #size-cells = <0>; 922a2c74b2SAlistair Popple interrupt-parent = <&MPIC>; 932a2c74b2SAlistair Popple interrupts = < /*TXEOB*/ 77 0x4 942a2c74b2SAlistair Popple /*RXEOB*/ 78 0x4 952a2c74b2SAlistair Popple /*SERR*/ 76 0x4 962a2c74b2SAlistair Popple /*TXDE*/ 79 0x4 972a2c74b2SAlistair Popple /*RXDE*/ 80 0x4>; 982a2c74b2SAlistair Popple }; 992a2c74b2SAlistair Popple 1002a2c74b2SAlistair Popple SATA0: sata@30000010000 { 1012a2c74b2SAlistair Popple compatible = "ibm,476gtr-ahci"; 1022a2c74b2SAlistair Popple reg = <0x300 0x00010000 0x0 0x10000>; 1032a2c74b2SAlistair Popple interrupt-parent = <&MPIC>; 1042a2c74b2SAlistair Popple interrupts = <93 2>; 1052a2c74b2SAlistair Popple }; 1062a2c74b2SAlistair Popple 1072a2c74b2SAlistair Popple EHCI0: ehci@30010000000 { 1082a2c74b2SAlistair Popple compatible = "ibm,476gtr-ehci", "generic-ehci"; 1092a2c74b2SAlistair Popple reg = <0x300 0x10000000 0x0 0x10000>; 1102a2c74b2SAlistair Popple interrupt-parent = <&MPIC>; 1112a2c74b2SAlistair Popple interrupts = <85 2>; 1122a2c74b2SAlistair Popple }; 1132a2c74b2SAlistair Popple 1142a2c74b2SAlistair Popple SD0: sd@30000000000 { 1152a2c74b2SAlistair Popple compatible = "ibm,476gtr-sdhci", "generic-sdhci"; 1162a2c74b2SAlistair Popple reg = <0x300 0x00000000 0x0 0x10000>; 1172a2c74b2SAlistair Popple interrupts = <91 2>; 1182a2c74b2SAlistair Popple interrupt-parent = <&MPIC>; 1192a2c74b2SAlistair Popple }; 1202a2c74b2SAlistair Popple 1212a2c74b2SAlistair Popple OHCI0: ohci@30010010000 { 1222a2c74b2SAlistair Popple compatible = "ibm,476gtr-ohci", "generic-ohci"; 1232a2c74b2SAlistair Popple reg = <0x300 0x10010000 0x0 0x10000>; 1242a2c74b2SAlistair Popple interrupt-parent = <&MPIC>; 1252a2c74b2SAlistair Popple interrupts = <89 1>; 1262a2c74b2SAlistair Popple }; 1272a2c74b2SAlistair Popple 1282a2c74b2SAlistair Popple OHCI1: ohci@30010020000 { 1292a2c74b2SAlistair Popple compatible = "ibm,476gtr-ohci", "generic-ohci"; 1302a2c74b2SAlistair Popple reg = <0x300 0x10020000 0x0 0x10000>; 1312a2c74b2SAlistair Popple interrupt-parent = <&MPIC>; 1322a2c74b2SAlistair Popple interrupts = <88 1>; 1332a2c74b2SAlistair Popple }; 1342a2c74b2SAlistair Popple 1352a2c74b2SAlistair Popple POB0: opb { 1362a2c74b2SAlistair Popple compatible = "ibm,opb-4xx", "ibm,opb"; 1372a2c74b2SAlistair Popple #address-cells = <1>; 1382a2c74b2SAlistair Popple #size-cells = <1>; 1392a2c74b2SAlistair Popple /* Wish there was a nicer way of specifying a full 1402a2c74b2SAlistair Popple * 32-bit range 1412a2c74b2SAlistair Popple */ 1422a2c74b2SAlistair Popple ranges = <0x00000000 0x0000033f 0x00000000 0x80000000 1432a2c74b2SAlistair Popple 0x80000000 0x0000033f 0x80000000 0x80000000>; 1442a2c74b2SAlistair Popple clock-frequency = <100000000>; 1452a2c74b2SAlistair Popple 1462a2c74b2SAlistair Popple RGMII0: emac-rgmii-wol@50004 { 1472a2c74b2SAlistair Popple compatible = "ibm,rgmii-wol-476gtr", "ibm,rgmii-wol"; 1482a2c74b2SAlistair Popple reg = <0x50004 0x00000008>; 1492a2c74b2SAlistair Popple has-mdio; 1502a2c74b2SAlistair Popple }; 1512a2c74b2SAlistair Popple 1522a2c74b2SAlistair Popple EMAC0: ethernet@30000 { 1532a2c74b2SAlistair Popple device_type = "network"; 1542a2c74b2SAlistair Popple compatible = "ibm,emac-476gtr", "ibm,emac4sync"; 1552a2c74b2SAlistair Popple interrupt-parent = <&EMAC0>; 1562a2c74b2SAlistair Popple interrupts = <0x0 0x1>; 1572a2c74b2SAlistair Popple #interrupt-cells = <1>; 1582a2c74b2SAlistair Popple #address-cells = <0>; 1592a2c74b2SAlistair Popple #size-cells = <0>; 1602a2c74b2SAlistair Popple interrupt-map = </*Status*/ 0x0 &MPIC 81 0x4 1612a2c74b2SAlistair Popple /*Wake*/ 0x1 &MPIC 82 0x4>; 1622a2c74b2SAlistair Popple reg = <0x30000 0x78>; 1632a2c74b2SAlistair Popple 1642a2c74b2SAlistair Popple /* local-mac-address will normally be added by 1652a2c74b2SAlistair Popple * the wrapper. If your device doesn't support 1662a2c74b2SAlistair Popple * passing data to the wrapper (in the form 1672a2c74b2SAlistair Popple * local-mac-addr=<hwaddr>) then you will need 1682a2c74b2SAlistair Popple * to set it manually here. */ 1692a2c74b2SAlistair Popple //local-mac-address = [000000000000]; 1702a2c74b2SAlistair Popple 1712a2c74b2SAlistair Popple mal-device = <&MAL0>; 1722a2c74b2SAlistair Popple mal-tx-channel = <0>; 1732a2c74b2SAlistair Popple mal-rx-channel = <0>; 1742a2c74b2SAlistair Popple cell-index = <0>; 1752a2c74b2SAlistair Popple max-frame-size = <9000>; 1762a2c74b2SAlistair Popple rx-fifo-size = <4096>; 1772a2c74b2SAlistair Popple tx-fifo-size = <2048>; 1782a2c74b2SAlistair Popple rx-fifo-size-gige = <16384>; 1792a2c74b2SAlistair Popple phy-mode = "rgmii"; 1802a2c74b2SAlistair Popple phy-map = <0x00000000>; 1812a2c74b2SAlistair Popple rgmii-wol-device = <&RGMII0>; 1822a2c74b2SAlistair Popple has-inverted-stacr-oc; 1832a2c74b2SAlistair Popple has-new-stacr-staopc; 1842a2c74b2SAlistair Popple }; 1852a2c74b2SAlistair Popple 1862a2c74b2SAlistair Popple UART0: serial@10000 { 1872a2c74b2SAlistair Popple device_type = "serial"; 1882a2c74b2SAlistair Popple compatible = "ns16750", "ns16550"; 1892a2c74b2SAlistair Popple reg = <0x10000 0x00000008>; 1902a2c74b2SAlistair Popple virtual-reg = <0xe8010000>; 1912a2c74b2SAlistair Popple clock-frequency = <1851851>; 1922a2c74b2SAlistair Popple current-speed = <38400>; 1932a2c74b2SAlistair Popple interrupt-parent = <&MPIC>; 1942a2c74b2SAlistair Popple interrupts = <39 2>; 1952a2c74b2SAlistair Popple }; 1962a2c74b2SAlistair Popple 1972a2c74b2SAlistair Popple IIC0: i2c@00000000 { 1982a2c74b2SAlistair Popple compatible = "ibm,iic-476gtr", "ibm,iic"; 1992a2c74b2SAlistair Popple reg = <0x0 0x00000020>; 2002a2c74b2SAlistair Popple interrupt-parent = <&MPIC>; 2012a2c74b2SAlistair Popple interrupts = <37 2>; 2022a2c74b2SAlistair Popple #address-cells = <1>; 2032a2c74b2SAlistair Popple #size-cells = <0>; 2042a2c74b2SAlistair Popple rtc@68 { 2052a2c74b2SAlistair Popple compatible = "stm,m41t80", "m41st85"; 2062a2c74b2SAlistair Popple reg = <0x68>; 2072a2c74b2SAlistair Popple }; 2082a2c74b2SAlistair Popple }; 2092a2c74b2SAlistair Popple 2102a2c74b2SAlistair Popple IIC1: i2c@00000100 { 2112a2c74b2SAlistair Popple compatible = "ibm,iic-476gtr", "ibm,iic"; 2122a2c74b2SAlistair Popple reg = <0x100 0x00000020>; 2132a2c74b2SAlistair Popple interrupt-parent = <&MPIC>; 2142a2c74b2SAlistair Popple interrupts = <38 2>; 2152a2c74b2SAlistair Popple #address-cells = <1>; 2162a2c74b2SAlistair Popple #size-cells = <0>; 2172a2c74b2SAlistair Popple avr@58 { 2182a2c74b2SAlistair Popple compatible = "ibm,akebono-avr"; 2192a2c74b2SAlistair Popple reg = <0x58>; 2202a2c74b2SAlistair Popple }; 2212a2c74b2SAlistair Popple }; 2222a2c74b2SAlistair Popple 2232a2c74b2SAlistair Popple FPGA0: fpga@ebc00000 { 2242a2c74b2SAlistair Popple compatible = "ibm,akebono-fpga"; 2252a2c74b2SAlistair Popple reg = <0xebc00000 0x8>; 2262a2c74b2SAlistair Popple }; 2272a2c74b2SAlistair Popple }; 2282a2c74b2SAlistair Popple 2292a2c74b2SAlistair Popple PCIE0: pciex@10100000000 { 2302a2c74b2SAlistair Popple device_type = "pci"; 2312a2c74b2SAlistair Popple #interrupt-cells = <1>; 2322a2c74b2SAlistair Popple #size-cells = <2>; 2332a2c74b2SAlistair Popple #address-cells = <3>; 2342a2c74b2SAlistair Popple compatible = "ibm,plb-pciex-476fpe", "ibm,plb-pciex"; 2352a2c74b2SAlistair Popple primary; 2362a2c74b2SAlistair Popple port = <0x0>; /* port number */ 2372a2c74b2SAlistair Popple reg = <0x00000101 0x00000000 0x0 0x10000000 /* Config space access */ 2382a2c74b2SAlistair Popple 0x00000100 0x00000000 0x0 0x00001000>; /* UTL Registers space access */ 2392a2c74b2SAlistair Popple dcr-reg = <0xc0 0x20>; 2402a2c74b2SAlistair Popple 2412a2c74b2SAlistair Popple// pci_space < pci_addr > < cpu_addr > < size > 2422a2c74b2SAlistair Popple ranges = <0x02000000 0x00000000 0x80000000 0x00000110 0x80000000 0x0 0x80000000 2432a2c74b2SAlistair Popple 0x01000000 0x0 0x0 0x00000140 0x0 0x0 0x00010000>; 2442a2c74b2SAlistair Popple 2452a2c74b2SAlistair Popple /* Inbound starting at 0 to memsize filled in by zImage */ 2462a2c74b2SAlistair Popple dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x0 0x0>; 2472a2c74b2SAlistair Popple 2482a2c74b2SAlistair Popple /* This drives busses 0 to 0xf */ 2492a2c74b2SAlistair Popple bus-range = <0x0 0xf>; 2502a2c74b2SAlistair Popple 2512a2c74b2SAlistair Popple /* Legacy interrupts (note the weird polarity, the bridge seems 2522a2c74b2SAlistair Popple * to invert PCIe legacy interrupts). 2532a2c74b2SAlistair Popple * We are de-swizzling here because the numbers are actually for 2542a2c74b2SAlistair Popple * port of the root complex virtual P2P bridge. But I want 2552a2c74b2SAlistair Popple * to avoid putting a node for it in the tree, so the numbers 2562a2c74b2SAlistair Popple * below are basically de-swizzled numbers. 2572a2c74b2SAlistair Popple * The real slot is on idsel 0, so the swizzling is 1:1 2582a2c74b2SAlistair Popple */ 2592a2c74b2SAlistair Popple interrupt-map-mask = <0x0 0x0 0x0 0x7>; 2602a2c74b2SAlistair Popple interrupt-map = < 2612a2c74b2SAlistair Popple 0x0 0x0 0x0 0x1 &MPIC 45 0x2 /* int A */ 2622a2c74b2SAlistair Popple 0x0 0x0 0x0 0x2 &MPIC 46 0x2 /* int B */ 2632a2c74b2SAlistair Popple 0x0 0x0 0x0 0x3 &MPIC 47 0x2 /* int C */ 2642a2c74b2SAlistair Popple 0x0 0x0 0x0 0x4 &MPIC 48 0x2 /* int D */>; 2652a2c74b2SAlistair Popple }; 2662a2c74b2SAlistair Popple 2672a2c74b2SAlistair Popple PCIE1: pciex@20100000000 { 2682a2c74b2SAlistair Popple device_type = "pci"; 2692a2c74b2SAlistair Popple #interrupt-cells = <1>; 2702a2c74b2SAlistair Popple #size-cells = <2>; 2712a2c74b2SAlistair Popple #address-cells = <3>; 2722a2c74b2SAlistair Popple compatible = "ibm,plb-pciex-476fpe", "ibm,plb-pciex"; 2732a2c74b2SAlistair Popple primary; 2742a2c74b2SAlistair Popple port = <0x1>; /* port number */ 2752a2c74b2SAlistair Popple reg = <0x00000201 0x00000000 0x0 0x10000000 /* Config space access */ 2762a2c74b2SAlistair Popple 0x00000200 0x00000000 0x0 0x00001000>; /* UTL Registers space access */ 2772a2c74b2SAlistair Popple dcr-reg = <0x100 0x20>; 2782a2c74b2SAlistair Popple 2792a2c74b2SAlistair Popple// pci_space < pci_addr > < cpu_addr > < size > 2802a2c74b2SAlistair Popple ranges = <0x02000000 0x00000000 0x80000000 0x00000210 0x80000000 0x0 0x80000000 2812a2c74b2SAlistair Popple 0x01000000 0x0 0x0 0x00000240 0x0 0x0 0x00010000>; 2822a2c74b2SAlistair Popple 2832a2c74b2SAlistair Popple /* Inbound starting at 0 to memsize filled in by zImage */ 2842a2c74b2SAlistair Popple dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x0 0x0>; 2852a2c74b2SAlistair Popple 2862a2c74b2SAlistair Popple /* This drives busses 0 to 0xf */ 2872a2c74b2SAlistair Popple bus-range = <0x0 0xf>; 2882a2c74b2SAlistair Popple 2892a2c74b2SAlistair Popple /* Legacy interrupts (note the weird polarity, the bridge seems 2902a2c74b2SAlistair Popple * to invert PCIe legacy interrupts). 2912a2c74b2SAlistair Popple * We are de-swizzling here because the numbers are actually for 2922a2c74b2SAlistair Popple * port of the root complex virtual P2P bridge. But I want 2932a2c74b2SAlistair Popple * to avoid putting a node for it in the tree, so the numbers 2942a2c74b2SAlistair Popple * below are basically de-swizzled numbers. 2952a2c74b2SAlistair Popple * The real slot is on idsel 0, so the swizzling is 1:1 2962a2c74b2SAlistair Popple */ 2972a2c74b2SAlistair Popple interrupt-map-mask = <0x0 0x0 0x0 0x7>; 2982a2c74b2SAlistair Popple interrupt-map = < 2992a2c74b2SAlistair Popple 0x0 0x0 0x0 0x1 &MPIC 53 0x2 /* int A */ 3002a2c74b2SAlistair Popple 0x0 0x0 0x0 0x2 &MPIC 54 0x2 /* int B */ 3012a2c74b2SAlistair Popple 0x0 0x0 0x0 0x3 &MPIC 55 0x2 /* int C */ 3022a2c74b2SAlistair Popple 0x0 0x0 0x0 0x4 &MPIC 56 0x2 /* int D */>; 3032a2c74b2SAlistair Popple }; 3042a2c74b2SAlistair Popple 3052a2c74b2SAlistair Popple PCIE2: pciex@18100000000 { 3062a2c74b2SAlistair Popple device_type = "pci"; 3072a2c74b2SAlistair Popple #interrupt-cells = <1>; 3082a2c74b2SAlistair Popple #size-cells = <2>; 3092a2c74b2SAlistair Popple #address-cells = <3>; 3102a2c74b2SAlistair Popple compatible = "ibm,plb-pciex-476fpe", "ibm,plb-pciex"; 3112a2c74b2SAlistair Popple primary; 3122a2c74b2SAlistair Popple port = <0x2>; /* port number */ 3132a2c74b2SAlistair Popple reg = <0x00000181 0x00000000 0x0 0x10000000 /* Config space access */ 3142a2c74b2SAlistair Popple 0x00000180 0x00000000 0x0 0x00001000>; /* UTL Registers space access */ 3152a2c74b2SAlistair Popple dcr-reg = <0xe0 0x20>; 3162a2c74b2SAlistair Popple 3172a2c74b2SAlistair Popple// pci_space < pci_addr > < cpu_addr > < size > 3182a2c74b2SAlistair Popple ranges = <0x02000000 0x00000000 0x80000000 0x00000190 0x80000000 0x0 0x80000000 3192a2c74b2SAlistair Popple 0x01000000 0x0 0x0 0x000001c0 0x0 0x0 0x00010000>; 3202a2c74b2SAlistair Popple 3212a2c74b2SAlistair Popple /* Inbound starting at 0 to memsize filled in by zImage */ 3222a2c74b2SAlistair Popple dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x0 0x0>; 3232a2c74b2SAlistair Popple 3242a2c74b2SAlistair Popple /* This drives busses 0 to 0xf */ 3252a2c74b2SAlistair Popple bus-range = <0x0 0xf>; 3262a2c74b2SAlistair Popple 3272a2c74b2SAlistair Popple /* Legacy interrupts (note the weird polarity, the bridge seems 3282a2c74b2SAlistair Popple * to invert PCIe legacy interrupts). 3292a2c74b2SAlistair Popple * We are de-swizzling here because the numbers are actually for 3302a2c74b2SAlistair Popple * port of the root complex virtual P2P bridge. But I want 3312a2c74b2SAlistair Popple * to avoid putting a node for it in the tree, so the numbers 3322a2c74b2SAlistair Popple * below are basically de-swizzled numbers. 3332a2c74b2SAlistair Popple * The real slot is on idsel 0, so the swizzling is 1:1 3342a2c74b2SAlistair Popple */ 3352a2c74b2SAlistair Popple interrupt-map-mask = <0x0 0x0 0x0 0x7>; 3362a2c74b2SAlistair Popple interrupt-map = < 3372a2c74b2SAlistair Popple 0x0 0x0 0x0 0x1 &MPIC 61 0x2 /* int A */ 3382a2c74b2SAlistair Popple 0x0 0x0 0x0 0x2 &MPIC 62 0x2 /* int B */ 3392a2c74b2SAlistair Popple 0x0 0x0 0x0 0x3 &MPIC 63 0x2 /* int C */ 3402a2c74b2SAlistair Popple 0x0 0x0 0x0 0x4 &MPIC 64 0x2 /* int D */>; 3412a2c74b2SAlistair Popple }; 3422a2c74b2SAlistair Popple 3432a2c74b2SAlistair Popple PCIE3: pciex@28100000000 { 3442a2c74b2SAlistair Popple device_type = "pci"; 3452a2c74b2SAlistair Popple #interrupt-cells = <1>; 3462a2c74b2SAlistair Popple #size-cells = <2>; 3472a2c74b2SAlistair Popple #address-cells = <3>; 3482a2c74b2SAlistair Popple compatible = "ibm,plb-pciex-476fpe", "ibm,plb-pciex"; 3492a2c74b2SAlistair Popple primary; 3502a2c74b2SAlistair Popple port = <0x3>; /* port number */ 3512a2c74b2SAlistair Popple reg = <0x00000281 0x00000000 0x0 0x10000000 /* Config space access */ 3522a2c74b2SAlistair Popple 0x00000280 0x00000000 0x0 0x00001000>; /* UTL Registers space access */ 3532a2c74b2SAlistair Popple dcr-reg = <0x120 0x20>; 3542a2c74b2SAlistair Popple 3552a2c74b2SAlistair Popple// pci_space < pci_addr > < cpu_addr > < size > 3562a2c74b2SAlistair Popple ranges = <0x02000000 0x00000000 0x80000000 0x00000290 0x80000000 0x0 0x80000000 3572a2c74b2SAlistair Popple 0x01000000 0x0 0x0 0x000002c0 0x0 0x0 0x00010000>; 3582a2c74b2SAlistair Popple 3592a2c74b2SAlistair Popple /* Inbound starting at 0 to memsize filled in by zImage */ 3602a2c74b2SAlistair Popple dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x0 0x0>; 3612a2c74b2SAlistair Popple 3622a2c74b2SAlistair Popple /* This drives busses 0 to 0xf */ 3632a2c74b2SAlistair Popple bus-range = <0x0 0xf>; 3642a2c74b2SAlistair Popple 3652a2c74b2SAlistair Popple /* Legacy interrupts (note the weird polarity, the bridge seems 3662a2c74b2SAlistair Popple * to invert PCIe legacy interrupts). 3672a2c74b2SAlistair Popple * We are de-swizzling here because the numbers are actually for 3682a2c74b2SAlistair Popple * port of the root complex virtual P2P bridge. But I want 3692a2c74b2SAlistair Popple * to avoid putting a node for it in the tree, so the numbers 3702a2c74b2SAlistair Popple * below are basically de-swizzled numbers. 3712a2c74b2SAlistair Popple * The real slot is on idsel 0, so the swizzling is 1:1 3722a2c74b2SAlistair Popple */ 3732a2c74b2SAlistair Popple interrupt-map-mask = <0x0 0x0 0x0 0x7>; 3742a2c74b2SAlistair Popple interrupt-map = < 3752a2c74b2SAlistair Popple 0x0 0x0 0x0 0x1 &MPIC 69 0x2 /* int A */ 3762a2c74b2SAlistair Popple 0x0 0x0 0x0 0x2 &MPIC 70 0x2 /* int B */ 3772a2c74b2SAlistair Popple 0x0 0x0 0x0 0x3 &MPIC 71 0x2 /* int C */ 3782a2c74b2SAlistair Popple 0x0 0x0 0x0 0x4 &MPIC 72 0x2 /* int D */>; 3792a2c74b2SAlistair Popple }; 3802a2c74b2SAlistair Popple }; 3812a2c74b2SAlistair Popple 3822a2c74b2SAlistair Popple chosen { 3832a2c74b2SAlistair Popple linux,stdout-path = &UART0; 3842a2c74b2SAlistair Popple }; 3852a2c74b2SAlistair Popple}; 386