xref: /openbmc/linux/scripts/dtc/include-prefixes/powerpc/katmai.dts (revision 71f349799b34c8b6ce3df42126b4de6cfa16456d)
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
15*71f34979SDavid Gibson/dts-v1/;
16*71f34979SDavid Gibson
173de9c9cdSBenjamin Herrenschmidt/ {
183de9c9cdSBenjamin Herrenschmidt	#address-cells = <2>;
193de9c9cdSBenjamin Herrenschmidt	#size-cells = <1>;
203de9c9cdSBenjamin Herrenschmidt	model = "amcc,katmai";
213de9c9cdSBenjamin Herrenschmidt	compatible = "amcc,katmai";
22*71f34979SDavid Gibson	dcr-parent = <&{/cpus/cpu@0}>;
233de9c9cdSBenjamin Herrenschmidt
248aaed98cSStefan Roese	aliases {
258aaed98cSStefan Roese		ethernet0 = &EMAC0;
268aaed98cSStefan Roese		serial0 = &UART0;
278aaed98cSStefan Roese		serial1 = &UART1;
288aaed98cSStefan Roese		serial2 = &UART2;
298aaed98cSStefan Roese	};
308aaed98cSStefan Roese
313de9c9cdSBenjamin Herrenschmidt	cpus {
323de9c9cdSBenjamin Herrenschmidt		#address-cells = <1>;
333de9c9cdSBenjamin Herrenschmidt		#size-cells = <0>;
343de9c9cdSBenjamin Herrenschmidt
3572fda114SJosh Boyer		cpu@0 {
363de9c9cdSBenjamin Herrenschmidt			device_type = "cpu";
3772fda114SJosh Boyer			model = "PowerPC,440SPe";
38*71f34979SDavid Gibson			reg = <0x00000000>;
393de9c9cdSBenjamin Herrenschmidt			clock-frequency = <0>; /* Filled in by zImage */
403de9c9cdSBenjamin Herrenschmidt			timebase-frequency = <0>; /* Filled in by zImage */
41*71f34979SDavid Gibson			i-cache-line-size = <32>;
42*71f34979SDavid Gibson			d-cache-line-size = <32>;
43*71f34979SDavid Gibson			i-cache-size = <32768>;
44*71f34979SDavid Gibson			d-cache-size = <32768>;
453de9c9cdSBenjamin Herrenschmidt			dcr-controller;
463de9c9cdSBenjamin Herrenschmidt			dcr-access-method = "native";
473de9c9cdSBenjamin Herrenschmidt		};
483de9c9cdSBenjamin Herrenschmidt	};
493de9c9cdSBenjamin Herrenschmidt
503de9c9cdSBenjamin Herrenschmidt	memory {
513de9c9cdSBenjamin Herrenschmidt		device_type = "memory";
52*71f34979SDavid Gibson		reg = <0x00000000 0x00000000 0x00000000>; /* Filled in by zImage */
533de9c9cdSBenjamin Herrenschmidt	};
543de9c9cdSBenjamin Herrenschmidt
553de9c9cdSBenjamin Herrenschmidt	UIC0: interrupt-controller0 {
563de9c9cdSBenjamin Herrenschmidt		compatible = "ibm,uic-440spe","ibm,uic";
573de9c9cdSBenjamin Herrenschmidt		interrupt-controller;
583de9c9cdSBenjamin Herrenschmidt		cell-index = <0>;
59*71f34979SDavid Gibson		dcr-reg = <0x0c0 0x009>;
603de9c9cdSBenjamin Herrenschmidt		#address-cells = <0>;
613de9c9cdSBenjamin Herrenschmidt		#size-cells = <0>;
623de9c9cdSBenjamin Herrenschmidt		#interrupt-cells = <2>;
633de9c9cdSBenjamin Herrenschmidt	};
643de9c9cdSBenjamin Herrenschmidt
653de9c9cdSBenjamin Herrenschmidt	UIC1: interrupt-controller1 {
663de9c9cdSBenjamin Herrenschmidt		compatible = "ibm,uic-440spe","ibm,uic";
673de9c9cdSBenjamin Herrenschmidt		interrupt-controller;
683de9c9cdSBenjamin Herrenschmidt		cell-index = <1>;
69*71f34979SDavid Gibson		dcr-reg = <0x0d0 0x009>;
703de9c9cdSBenjamin Herrenschmidt		#address-cells = <0>;
713de9c9cdSBenjamin Herrenschmidt		#size-cells = <0>;
723de9c9cdSBenjamin Herrenschmidt		#interrupt-cells = <2>;
73*71f34979SDavid Gibson		interrupts = <0x1e 0x4 0x1f 0x4>; /* cascade */
743de9c9cdSBenjamin Herrenschmidt		interrupt-parent = <&UIC0>;
753de9c9cdSBenjamin Herrenschmidt	};
763de9c9cdSBenjamin Herrenschmidt
773de9c9cdSBenjamin Herrenschmidt	UIC2: interrupt-controller2 {
783de9c9cdSBenjamin Herrenschmidt		compatible = "ibm,uic-440spe","ibm,uic";
793de9c9cdSBenjamin Herrenschmidt		interrupt-controller;
803de9c9cdSBenjamin Herrenschmidt		cell-index = <2>;
81*71f34979SDavid Gibson		dcr-reg = <0x0e0 0x009>;
823de9c9cdSBenjamin Herrenschmidt		#address-cells = <0>;
833de9c9cdSBenjamin Herrenschmidt		#size-cells = <0>;
843de9c9cdSBenjamin Herrenschmidt		#interrupt-cells = <2>;
85*71f34979SDavid Gibson		interrupts = <0xa 0x4 0xb 0x4>; /* cascade */
863de9c9cdSBenjamin Herrenschmidt		interrupt-parent = <&UIC0>;
873de9c9cdSBenjamin Herrenschmidt	};
883de9c9cdSBenjamin Herrenschmidt
893de9c9cdSBenjamin Herrenschmidt	UIC3: interrupt-controller3 {
903de9c9cdSBenjamin Herrenschmidt		compatible = "ibm,uic-440spe","ibm,uic";
913de9c9cdSBenjamin Herrenschmidt		interrupt-controller;
923de9c9cdSBenjamin Herrenschmidt		cell-index = <3>;
93*71f34979SDavid Gibson		dcr-reg = <0x0f0 0x009>;
943de9c9cdSBenjamin Herrenschmidt		#address-cells = <0>;
953de9c9cdSBenjamin Herrenschmidt		#size-cells = <0>;
963de9c9cdSBenjamin Herrenschmidt		#interrupt-cells = <2>;
97*71f34979SDavid Gibson		interrupts = <0x10 0x4 0x11 0x4>; /* cascade */
983de9c9cdSBenjamin Herrenschmidt		interrupt-parent = <&UIC0>;
993de9c9cdSBenjamin Herrenschmidt	};
1003de9c9cdSBenjamin Herrenschmidt
1013de9c9cdSBenjamin Herrenschmidt	SDR0: sdr {
1023de9c9cdSBenjamin Herrenschmidt		compatible = "ibm,sdr-440spe";
103*71f34979SDavid Gibson		dcr-reg = <0x00e 0x002>;
1043de9c9cdSBenjamin Herrenschmidt	};
1053de9c9cdSBenjamin Herrenschmidt
1063de9c9cdSBenjamin Herrenschmidt	CPR0: cpr {
1073de9c9cdSBenjamin Herrenschmidt		compatible = "ibm,cpr-440spe";
108*71f34979SDavid Gibson		dcr-reg = <0x00c 0x002>;
1093de9c9cdSBenjamin Herrenschmidt	};
1103de9c9cdSBenjamin Herrenschmidt
1113de9c9cdSBenjamin Herrenschmidt	plb {
1123de9c9cdSBenjamin Herrenschmidt		compatible = "ibm,plb-440spe", "ibm,plb-440gp", "ibm,plb4";
1133de9c9cdSBenjamin Herrenschmidt		#address-cells = <2>;
1143de9c9cdSBenjamin Herrenschmidt		#size-cells = <1>;
1153de9c9cdSBenjamin Herrenschmidt		ranges;
1163de9c9cdSBenjamin Herrenschmidt		clock-frequency = <0>; /* Filled in by zImage */
1173de9c9cdSBenjamin Herrenschmidt
1183de9c9cdSBenjamin Herrenschmidt		SDRAM0: sdram {
1193de9c9cdSBenjamin Herrenschmidt			compatible = "ibm,sdram-440spe", "ibm,sdram-405gp";
120*71f34979SDavid Gibson			dcr-reg = <0x010 0x002>;
1213de9c9cdSBenjamin Herrenschmidt		};
1223de9c9cdSBenjamin Herrenschmidt
1233de9c9cdSBenjamin Herrenschmidt		MAL0: mcmal {
1243de9c9cdSBenjamin Herrenschmidt			compatible = "ibm,mcmal-440spe", "ibm,mcmal2";
125*71f34979SDavid Gibson			dcr-reg = <0x180 0x062>;
1263de9c9cdSBenjamin Herrenschmidt			num-tx-chans = <2>;
1273de9c9cdSBenjamin Herrenschmidt			num-rx-chans = <1>;
1283de9c9cdSBenjamin Herrenschmidt			interrupt-parent = <&MAL0>;
129*71f34979SDavid Gibson			interrupts = <0x0 0x1 0x2 0x3 0x4>;
1303de9c9cdSBenjamin Herrenschmidt			#interrupt-cells = <1>;
1313de9c9cdSBenjamin Herrenschmidt			#address-cells = <0>;
1323de9c9cdSBenjamin Herrenschmidt			#size-cells = <0>;
133*71f34979SDavid Gibson			interrupt-map = </*TXEOB*/ 0x0 &UIC1 0x6 0x4
134*71f34979SDavid Gibson					 /*RXEOB*/ 0x1 &UIC1 0x7 0x4
135*71f34979SDavid Gibson					 /*SERR*/  0x2 &UIC1 0x1 0x4
136*71f34979SDavid Gibson					 /*TXDE*/  0x3 &UIC1 0x2 0x4
137*71f34979SDavid Gibson					 /*RXDE*/  0x4 &UIC1 0x3 0x4>;
1383de9c9cdSBenjamin Herrenschmidt		};
1393de9c9cdSBenjamin Herrenschmidt
1403de9c9cdSBenjamin Herrenschmidt		POB0: opb {
1413de9c9cdSBenjamin Herrenschmidt			compatible = "ibm,opb-440spe", "ibm,opb-440gp", "ibm,opb";
1423de9c9cdSBenjamin Herrenschmidt			#address-cells = <1>;
1433de9c9cdSBenjamin Herrenschmidt			#size-cells = <1>;
144*71f34979SDavid Gibson			ranges = <0x00000000 0x00000004 0xe0000000 0x20000000>;
1453de9c9cdSBenjamin Herrenschmidt			clock-frequency = <0>; /* Filled in by zImage */
1463de9c9cdSBenjamin Herrenschmidt
1473de9c9cdSBenjamin Herrenschmidt			EBC0: ebc {
1483de9c9cdSBenjamin Herrenschmidt				compatible = "ibm,ebc-440spe", "ibm,ebc-440gp", "ibm,ebc";
149*71f34979SDavid Gibson				dcr-reg = <0x012 0x002>;
1503de9c9cdSBenjamin Herrenschmidt				#address-cells = <2>;
1513de9c9cdSBenjamin Herrenschmidt				#size-cells = <1>;
1523de9c9cdSBenjamin Herrenschmidt				clock-frequency = <0>; /* Filled in by zImage */
153*71f34979SDavid Gibson				interrupts = <0x5 0x1>;
1543de9c9cdSBenjamin Herrenschmidt				interrupt-parent = <&UIC1>;
1553de9c9cdSBenjamin Herrenschmidt			};
1563de9c9cdSBenjamin Herrenschmidt
1573de9c9cdSBenjamin Herrenschmidt			UART0: serial@10000200 {
1583de9c9cdSBenjamin Herrenschmidt				device_type = "serial";
1593de9c9cdSBenjamin Herrenschmidt				compatible = "ns16550";
160*71f34979SDavid Gibson				reg = <0x10000200 0x00000008>;
161*71f34979SDavid Gibson				virtual-reg = <0xa0000200>;
1623de9c9cdSBenjamin Herrenschmidt				clock-frequency = <0>; /* Filled in by zImage */
163*71f34979SDavid Gibson				current-speed = <115200>;
1643de9c9cdSBenjamin Herrenschmidt				interrupt-parent = <&UIC0>;
165*71f34979SDavid Gibson				interrupts = <0x0 0x4>;
1663de9c9cdSBenjamin Herrenschmidt			};
1673de9c9cdSBenjamin Herrenschmidt
1683de9c9cdSBenjamin Herrenschmidt			UART1: serial@10000300 {
1693de9c9cdSBenjamin Herrenschmidt				device_type = "serial";
1703de9c9cdSBenjamin Herrenschmidt				compatible = "ns16550";
171*71f34979SDavid Gibson				reg = <0x10000300 0x00000008>;
172*71f34979SDavid Gibson				virtual-reg = <0xa0000300>;
1733de9c9cdSBenjamin Herrenschmidt				clock-frequency = <0>;
1743de9c9cdSBenjamin Herrenschmidt				current-speed = <0>;
1753de9c9cdSBenjamin Herrenschmidt				interrupt-parent = <&UIC0>;
176*71f34979SDavid Gibson				interrupts = <0x1 0x4>;
1773de9c9cdSBenjamin Herrenschmidt			};
1783de9c9cdSBenjamin Herrenschmidt
1793de9c9cdSBenjamin Herrenschmidt
1803de9c9cdSBenjamin Herrenschmidt			UART2: serial@10000600 {
1813de9c9cdSBenjamin Herrenschmidt				device_type = "serial";
1823de9c9cdSBenjamin Herrenschmidt				compatible = "ns16550";
183*71f34979SDavid Gibson				reg = <0x10000600 0x00000008>;
184*71f34979SDavid Gibson				virtual-reg = <0xa0000600>;
1853de9c9cdSBenjamin Herrenschmidt				clock-frequency = <0>;
1863de9c9cdSBenjamin Herrenschmidt				current-speed = <0>;
1873de9c9cdSBenjamin Herrenschmidt				interrupt-parent = <&UIC1>;
188*71f34979SDavid Gibson				interrupts = <0x5 0x4>;
1893de9c9cdSBenjamin Herrenschmidt			};
1903de9c9cdSBenjamin Herrenschmidt
1913de9c9cdSBenjamin Herrenschmidt			IIC0: i2c@10000400 {
1923de9c9cdSBenjamin Herrenschmidt				compatible = "ibm,iic-440spe", "ibm,iic-440gp", "ibm,iic";
193*71f34979SDavid Gibson				reg = <0x10000400 0x00000014>;
1943de9c9cdSBenjamin Herrenschmidt				interrupt-parent = <&UIC0>;
195*71f34979SDavid Gibson				interrupts = <0x2 0x4>;
1963de9c9cdSBenjamin Herrenschmidt			};
1973de9c9cdSBenjamin Herrenschmidt
1983de9c9cdSBenjamin Herrenschmidt			IIC1: i2c@10000500 {
1993de9c9cdSBenjamin Herrenschmidt				compatible = "ibm,iic-440spe", "ibm,iic-440gp", "ibm,iic";
200*71f34979SDavid Gibson				reg = <0x10000500 0x00000014>;
2013de9c9cdSBenjamin Herrenschmidt				interrupt-parent = <&UIC0>;
202*71f34979SDavid Gibson				interrupts = <0x3 0x4>;
2033de9c9cdSBenjamin Herrenschmidt			};
2043de9c9cdSBenjamin Herrenschmidt
2053de9c9cdSBenjamin Herrenschmidt			EMAC0: ethernet@10000800 {
206*71f34979SDavid Gibson				linux,network-index = <0x0>;
2073de9c9cdSBenjamin Herrenschmidt				device_type = "network";
2083de9c9cdSBenjamin Herrenschmidt				compatible = "ibm,emac-440spe", "ibm,emac4";
2093de9c9cdSBenjamin Herrenschmidt				interrupt-parent = <&UIC1>;
210*71f34979SDavid Gibson				interrupts = <0x1c 0x4 0x1d 0x4>;
211*71f34979SDavid Gibson				reg = <0x10000800 0x00000070>;
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>;
217*71f34979SDavid Gibson				max-frame-size = <9000>;
218*71f34979SDavid Gibson				rx-fifo-size = <4096>;
219*71f34979SDavid Gibson				tx-fifo-size = <2048>;
2203de9c9cdSBenjamin Herrenschmidt				phy-mode = "gmii";
221*71f34979SDavid Gibson				phy-map = <0x00000000>;
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;
236*71f34979SDavid Gibson			reg = <0x0000000c 0x0ec00000   0x00000008	/* Config space access */
237*71f34979SDavid Gibson			       0x00000000 0x00000000 0x00000000		/* no IACK cycles */
238*71f34979SDavid Gibson			       0x0000000c 0x0ed00000   0x00000004   /* Special cycles */
239*71f34979SDavid Gibson			       0x0000000c 0x0ec80000 0x00000100	/* Internal registers */
240*71f34979SDavid Gibson			       0x0000000c 0x0ec80100  0x000000fc>;	/* Internal messaging registers */
2413de9c9cdSBenjamin Herrenschmidt
2423de9c9cdSBenjamin Herrenschmidt			/* Outbound ranges, one memory and one IO,
2433de9c9cdSBenjamin Herrenschmidt			 * later cannot be changed
2443de9c9cdSBenjamin Herrenschmidt			 */
245*71f34979SDavid Gibson			ranges = <0x02000000 0x00000000 0x80000000 0x0000000d 0x80000000 0x00000000 0x80000000
246*71f34979SDavid Gibson				  0x01000000 0x00000000 0x00000000 0x0000000c 0x08000000 0x00000000 0x00010000>;
2473de9c9cdSBenjamin Herrenschmidt
2483de9c9cdSBenjamin Herrenschmidt			/* Inbound 2GB range starting at 0 */
249*71f34979SDavid Gibson			dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x0 0x80000000>;
2503de9c9cdSBenjamin Herrenschmidt
2513de9c9cdSBenjamin Herrenschmidt			/* This drives busses 0 to 0xf */
252*71f34979SDavid Gibson			bus-range = <0x0 0xf>;
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			 */
263*71f34979SDavid Gibson			interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
2643de9c9cdSBenjamin Herrenschmidt			interrupt-map = <
2653de9c9cdSBenjamin Herrenschmidt				/* IDSEL 1 */
266*71f34979SDavid Gibson				0x800 0x0 0x0 0x1 &UIC1 0x14 0x8
267*71f34979SDavid Gibson				0x800 0x0 0x0 0x2 &UIC1 0x13 0x8
268*71f34979SDavid Gibson				0x800 0x0 0x0 0x3 &UIC1 0x12 0x8
269*71f34979SDavid Gibson				0x800 0x0 0x0 0x4 &UIC1 0x11 0x8
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;
280*71f34979SDavid Gibson			port = <0x0>; /* port number */
281*71f34979SDavid Gibson			reg = <0x0000000d 0x00000000 0x20000000	/* Config space access */
282*71f34979SDavid Gibson			       0x0000000c 0x10000000 0x00001000>;	/* Registers */
283*71f34979SDavid Gibson			dcr-reg = <0x100 0x020>;
284*71f34979SDavid Gibson			sdr-base = <0x300>;
2853de9c9cdSBenjamin Herrenschmidt
2863de9c9cdSBenjamin Herrenschmidt			/* Outbound ranges, one memory and one IO,
2873de9c9cdSBenjamin Herrenschmidt			 * later cannot be changed
2883de9c9cdSBenjamin Herrenschmidt			 */
289*71f34979SDavid Gibson			ranges = <0x02000000 0x00000000 0x80000000 0x0000000e 0x00000000 0x00000000 0x80000000
290*71f34979SDavid Gibson				  0x01000000 0x00000000 0x00000000 0x0000000f 0x80000000 0x00000000 0x00010000>;
2913de9c9cdSBenjamin Herrenschmidt
2923de9c9cdSBenjamin Herrenschmidt			/* Inbound 2GB range starting at 0 */
293*71f34979SDavid Gibson			dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x0 0x80000000>;
2943de9c9cdSBenjamin Herrenschmidt
2953de9c9cdSBenjamin Herrenschmidt			/* This drives busses 10 to 0x1f */
296*71f34979SDavid Gibson			bus-range = <0x10 0x1f>;
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			 */
306*71f34979SDavid Gibson			interrupt-map-mask = <0x0 0x0 0x0 0x7>;
3073de9c9cdSBenjamin Herrenschmidt			interrupt-map = <
308*71f34979SDavid Gibson				0x0 0x0 0x0 0x1 &UIC3 0x0 0x4 /* swizzled int A */
309*71f34979SDavid Gibson				0x0 0x0 0x0 0x2 &UIC3 0x1 0x4 /* swizzled int B */
310*71f34979SDavid Gibson				0x0 0x0 0x0 0x3 &UIC3 0x2 0x4 /* swizzled int C */
311*71f34979SDavid Gibson				0x0 0x0 0x0 0x4 &UIC3 0x3 0x4 /* 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;
321*71f34979SDavid Gibson			port = <0x1>; /* port number */
322*71f34979SDavid Gibson			reg = <0x0000000d 0x20000000 0x20000000	/* Config space access */
323*71f34979SDavid Gibson			       0x0000000c 0x10001000 0x00001000>;	/* Registers */
324*71f34979SDavid Gibson			dcr-reg = <0x120 0x020>;
325*71f34979SDavid Gibson			sdr-base = <0x340>;
3263de9c9cdSBenjamin Herrenschmidt
3273de9c9cdSBenjamin Herrenschmidt			/* Outbound ranges, one memory and one IO,
3283de9c9cdSBenjamin Herrenschmidt			 * later cannot be changed
3293de9c9cdSBenjamin Herrenschmidt			 */
330*71f34979SDavid Gibson			ranges = <0x02000000 0x00000000 0x80000000 0x0000000e 0x80000000 0x00000000 0x80000000
331*71f34979SDavid Gibson				  0x01000000 0x00000000 0x00000000 0x0000000f 0x80010000 0x00000000 0x00010000>;
3323de9c9cdSBenjamin Herrenschmidt
3333de9c9cdSBenjamin Herrenschmidt			/* Inbound 2GB range starting at 0 */
334*71f34979SDavid Gibson			dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x0 0x80000000>;
3353de9c9cdSBenjamin Herrenschmidt
3363de9c9cdSBenjamin Herrenschmidt			/* This drives busses 10 to 0x1f */
337*71f34979SDavid Gibson			bus-range = <0x20 0x2f>;
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			 */
347*71f34979SDavid Gibson			interrupt-map-mask = <0x0 0x0 0x0 0x7>;
3483de9c9cdSBenjamin Herrenschmidt			interrupt-map = <
349*71f34979SDavid Gibson				0x0 0x0 0x0 0x1 &UIC3 0x4 0x4 /* swizzled int A */
350*71f34979SDavid Gibson				0x0 0x0 0x0 0x2 &UIC3 0x5 0x4 /* swizzled int B */
351*71f34979SDavid Gibson				0x0 0x0 0x0 0x3 &UIC3 0x6 0x4 /* swizzled int C */
352*71f34979SDavid Gibson				0x0 0x0 0x0 0x4 &UIC3 0x7 0x4 /* 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;
362*71f34979SDavid Gibson			port = <0x2>; /* port number */
363*71f34979SDavid Gibson			reg = <0x0000000d 0x40000000 0x20000000	/* Config space access */
364*71f34979SDavid Gibson			       0x0000000c 0x10002000 0x00001000>;	/* Registers */
365*71f34979SDavid Gibson			dcr-reg = <0x140 0x020>;
366*71f34979SDavid Gibson			sdr-base = <0x370>;
3673de9c9cdSBenjamin Herrenschmidt
3683de9c9cdSBenjamin Herrenschmidt			/* Outbound ranges, one memory and one IO,
3693de9c9cdSBenjamin Herrenschmidt			 * later cannot be changed
3703de9c9cdSBenjamin Herrenschmidt			 */
371*71f34979SDavid Gibson			ranges = <0x02000000 0x00000000 0x80000000 0x0000000f 0x00000000 0x00000000 0x80000000
372*71f34979SDavid Gibson				  0x01000000 0x00000000 0x00000000 0x0000000f 0x80020000 0x00000000 0x00010000>;
3733de9c9cdSBenjamin Herrenschmidt
3743de9c9cdSBenjamin Herrenschmidt			/* Inbound 2GB range starting at 0 */
375*71f34979SDavid Gibson			dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x0 0x80000000>;
3763de9c9cdSBenjamin Herrenschmidt
3773de9c9cdSBenjamin Herrenschmidt			/* This drives busses 10 to 0x1f */
378*71f34979SDavid Gibson			bus-range = <0x30 0x3f>;
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			 */
388*71f34979SDavid Gibson			interrupt-map-mask = <0x0 0x0 0x0 0x7>;
3893de9c9cdSBenjamin Herrenschmidt			interrupt-map = <
390*71f34979SDavid Gibson				0x0 0x0 0x0 0x1 &UIC3 0x8 0x4 /* swizzled int A */
391*71f34979SDavid Gibson				0x0 0x0 0x0 0x2 &UIC3 0x9 0x4 /* swizzled int B */
392*71f34979SDavid Gibson				0x0 0x0 0x0 0x3 &UIC3 0xa 0x4 /* swizzled int C */
393*71f34979SDavid Gibson				0x0 0x0 0x0 0x4 &UIC3 0xb 0x4 /* 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