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