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