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
1571f34979SDavid Gibson/dts-v1/;
1671f34979SDavid Gibson
173de9c9cdSBenjamin Herrenschmidt/ {
183de9c9cdSBenjamin Herrenschmidt	#address-cells = <2>;
1959e1d495SStefan Roese	#size-cells = <2>;
203de9c9cdSBenjamin Herrenschmidt	model = "amcc,katmai";
213de9c9cdSBenjamin Herrenschmidt	compatible = "amcc,katmai";
2271f34979SDavid 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";
3871f34979SDavid Gibson			reg = <0x00000000>;
393de9c9cdSBenjamin Herrenschmidt			clock-frequency = <0>; /* Filled in by zImage */
403de9c9cdSBenjamin Herrenschmidt			timebase-frequency = <0>; /* Filled in by zImage */
4171f34979SDavid Gibson			i-cache-line-size = <32>;
4271f34979SDavid Gibson			d-cache-line-size = <32>;
4371f34979SDavid Gibson			i-cache-size = <32768>;
4471f34979SDavid 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";
5259e1d495SStefan Roese		reg = <0x0 0x00000000 0x0 0x00000000>; /* Filled in by U-Boot */
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>;
5971f34979SDavid 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>;
6971f34979SDavid Gibson		dcr-reg = <0x0d0 0x009>;
703de9c9cdSBenjamin Herrenschmidt		#address-cells = <0>;
713de9c9cdSBenjamin Herrenschmidt		#size-cells = <0>;
723de9c9cdSBenjamin Herrenschmidt		#interrupt-cells = <2>;
7371f34979SDavid 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>;
8171f34979SDavid Gibson		dcr-reg = <0x0e0 0x009>;
823de9c9cdSBenjamin Herrenschmidt		#address-cells = <0>;
833de9c9cdSBenjamin Herrenschmidt		#size-cells = <0>;
843de9c9cdSBenjamin Herrenschmidt		#interrupt-cells = <2>;
8571f34979SDavid 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>;
9371f34979SDavid Gibson		dcr-reg = <0x0f0 0x009>;
943de9c9cdSBenjamin Herrenschmidt		#address-cells = <0>;
953de9c9cdSBenjamin Herrenschmidt		#size-cells = <0>;
963de9c9cdSBenjamin Herrenschmidt		#interrupt-cells = <2>;
9771f34979SDavid 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";
10371f34979SDavid Gibson		dcr-reg = <0x00e 0x002>;
1043de9c9cdSBenjamin Herrenschmidt	};
1053de9c9cdSBenjamin Herrenschmidt
1063de9c9cdSBenjamin Herrenschmidt	CPR0: cpr {
1073de9c9cdSBenjamin Herrenschmidt		compatible = "ibm,cpr-440spe";
10871f34979SDavid Gibson		dcr-reg = <0x00c 0x002>;
1093de9c9cdSBenjamin Herrenschmidt	};
1103de9c9cdSBenjamin Herrenschmidt
111070bae1fSAnatolij Gustschin	MQ0: mq {
112070bae1fSAnatolij Gustschin		compatible = "ibm,mq-440spe";
113070bae1fSAnatolij Gustschin		dcr-reg = <0x040 0x020>;
114070bae1fSAnatolij Gustschin	};
115070bae1fSAnatolij Gustschin
1163de9c9cdSBenjamin Herrenschmidt	plb {
1173de9c9cdSBenjamin Herrenschmidt		compatible = "ibm,plb-440spe", "ibm,plb-440gp", "ibm,plb4";
1183de9c9cdSBenjamin Herrenschmidt		#address-cells = <2>;
1193de9c9cdSBenjamin Herrenschmidt		#size-cells = <1>;
12059e1d495SStefan Roese		/*        addr-child     addr-parent    size */
121070bae1fSAnatolij Gustschin		ranges = <0x4 0x00100000 0x4 0x00100000 0x00001000
122070bae1fSAnatolij Gustschin			  0x4 0x00200000 0x4 0x00200000 0x00000400
123070bae1fSAnatolij Gustschin			  0x4 0xe0000000 0x4 0xe0000000 0x20000000
12459e1d495SStefan Roese			  0xc 0x00000000 0xc 0x00000000 0x20000000
12559e1d495SStefan Roese			  0xd 0x00000000 0xd 0x00000000 0x80000000
12659e1d495SStefan Roese			  0xd 0x80000000 0xd 0x80000000 0x80000000
12759e1d495SStefan Roese			  0xe 0x00000000 0xe 0x00000000 0x80000000
12859e1d495SStefan Roese			  0xe 0x80000000 0xe 0x80000000 0x80000000
12959e1d495SStefan Roese			  0xf 0x00000000 0xf 0x00000000 0x80000000
13059e1d495SStefan Roese			  0xf 0x80000000 0xf 0x80000000 0x80000000>;
1313de9c9cdSBenjamin Herrenschmidt		clock-frequency = <0>; /* Filled in by zImage */
1323de9c9cdSBenjamin Herrenschmidt
1333de9c9cdSBenjamin Herrenschmidt		SDRAM0: sdram {
1343de9c9cdSBenjamin Herrenschmidt			compatible = "ibm,sdram-440spe", "ibm,sdram-405gp";
13571f34979SDavid Gibson			dcr-reg = <0x010 0x002>;
1363de9c9cdSBenjamin Herrenschmidt		};
1373de9c9cdSBenjamin Herrenschmidt
1383de9c9cdSBenjamin Herrenschmidt		MAL0: mcmal {
1393de9c9cdSBenjamin Herrenschmidt			compatible = "ibm,mcmal-440spe", "ibm,mcmal2";
14071f34979SDavid Gibson			dcr-reg = <0x180 0x062>;
1413de9c9cdSBenjamin Herrenschmidt			num-tx-chans = <2>;
1423de9c9cdSBenjamin Herrenschmidt			num-rx-chans = <1>;
1433de9c9cdSBenjamin Herrenschmidt			interrupt-parent = <&MAL0>;
14471f34979SDavid Gibson			interrupts = <0x0 0x1 0x2 0x3 0x4>;
1453de9c9cdSBenjamin Herrenschmidt			#interrupt-cells = <1>;
1463de9c9cdSBenjamin Herrenschmidt			#address-cells = <0>;
1473de9c9cdSBenjamin Herrenschmidt			#size-cells = <0>;
14871f34979SDavid Gibson			interrupt-map = </*TXEOB*/ 0x0 &UIC1 0x6 0x4
14971f34979SDavid Gibson					 /*RXEOB*/ 0x1 &UIC1 0x7 0x4
15071f34979SDavid Gibson					 /*SERR*/  0x2 &UIC1 0x1 0x4
15171f34979SDavid Gibson					 /*TXDE*/  0x3 &UIC1 0x2 0x4
15271f34979SDavid Gibson					 /*RXDE*/  0x4 &UIC1 0x3 0x4>;
1533de9c9cdSBenjamin Herrenschmidt		};
1543de9c9cdSBenjamin Herrenschmidt
1553de9c9cdSBenjamin Herrenschmidt		POB0: opb {
1563de9c9cdSBenjamin Herrenschmidt			compatible = "ibm,opb-440spe", "ibm,opb-440gp", "ibm,opb";
1573de9c9cdSBenjamin Herrenschmidt			#address-cells = <1>;
1583de9c9cdSBenjamin Herrenschmidt			#size-cells = <1>;
15971f34979SDavid Gibson			ranges = <0x00000000 0x00000004 0xe0000000 0x20000000>;
1603de9c9cdSBenjamin Herrenschmidt			clock-frequency = <0>; /* Filled in by zImage */
1613de9c9cdSBenjamin Herrenschmidt
1623de9c9cdSBenjamin Herrenschmidt			EBC0: ebc {
1633de9c9cdSBenjamin Herrenschmidt				compatible = "ibm,ebc-440spe", "ibm,ebc-440gp", "ibm,ebc";
16471f34979SDavid Gibson				dcr-reg = <0x012 0x002>;
1653de9c9cdSBenjamin Herrenschmidt				#address-cells = <2>;
1663de9c9cdSBenjamin Herrenschmidt				#size-cells = <1>;
1673de9c9cdSBenjamin Herrenschmidt				clock-frequency = <0>; /* Filled in by zImage */
16871f34979SDavid Gibson				interrupts = <0x5 0x1>;
1693de9c9cdSBenjamin Herrenschmidt				interrupt-parent = <&UIC1>;
1703de9c9cdSBenjamin Herrenschmidt			};
1713de9c9cdSBenjamin Herrenschmidt
1723de9c9cdSBenjamin Herrenschmidt			UART0: serial@10000200 {
1733de9c9cdSBenjamin Herrenschmidt				device_type = "serial";
1743de9c9cdSBenjamin Herrenschmidt				compatible = "ns16550";
17571f34979SDavid Gibson				reg = <0x10000200 0x00000008>;
17671f34979SDavid Gibson				virtual-reg = <0xa0000200>;
1773de9c9cdSBenjamin Herrenschmidt				clock-frequency = <0>; /* Filled in by zImage */
17871f34979SDavid Gibson				current-speed = <115200>;
1793de9c9cdSBenjamin Herrenschmidt				interrupt-parent = <&UIC0>;
18071f34979SDavid Gibson				interrupts = <0x0 0x4>;
1813de9c9cdSBenjamin Herrenschmidt			};
1823de9c9cdSBenjamin Herrenschmidt
1833de9c9cdSBenjamin Herrenschmidt			UART1: serial@10000300 {
1843de9c9cdSBenjamin Herrenschmidt				device_type = "serial";
1853de9c9cdSBenjamin Herrenschmidt				compatible = "ns16550";
18671f34979SDavid Gibson				reg = <0x10000300 0x00000008>;
18771f34979SDavid Gibson				virtual-reg = <0xa0000300>;
1883de9c9cdSBenjamin Herrenschmidt				clock-frequency = <0>;
1893de9c9cdSBenjamin Herrenschmidt				current-speed = <0>;
1903de9c9cdSBenjamin Herrenschmidt				interrupt-parent = <&UIC0>;
19171f34979SDavid Gibson				interrupts = <0x1 0x4>;
1923de9c9cdSBenjamin Herrenschmidt			};
1933de9c9cdSBenjamin Herrenschmidt
1943de9c9cdSBenjamin Herrenschmidt
1953de9c9cdSBenjamin Herrenschmidt			UART2: serial@10000600 {
1963de9c9cdSBenjamin Herrenschmidt				device_type = "serial";
1973de9c9cdSBenjamin Herrenschmidt				compatible = "ns16550";
19871f34979SDavid Gibson				reg = <0x10000600 0x00000008>;
19971f34979SDavid Gibson				virtual-reg = <0xa0000600>;
2003de9c9cdSBenjamin Herrenschmidt				clock-frequency = <0>;
2013de9c9cdSBenjamin Herrenschmidt				current-speed = <0>;
2023de9c9cdSBenjamin Herrenschmidt				interrupt-parent = <&UIC1>;
20371f34979SDavid Gibson				interrupts = <0x5 0x4>;
2043de9c9cdSBenjamin Herrenschmidt			};
2053de9c9cdSBenjamin Herrenschmidt
2063de9c9cdSBenjamin Herrenschmidt			IIC0: i2c@10000400 {
2073de9c9cdSBenjamin Herrenschmidt				compatible = "ibm,iic-440spe", "ibm,iic-440gp", "ibm,iic";
20871f34979SDavid Gibson				reg = <0x10000400 0x00000014>;
2093de9c9cdSBenjamin Herrenschmidt				interrupt-parent = <&UIC0>;
21071f34979SDavid Gibson				interrupts = <0x2 0x4>;
2113de9c9cdSBenjamin Herrenschmidt			};
2123de9c9cdSBenjamin Herrenschmidt
2133de9c9cdSBenjamin Herrenschmidt			IIC1: i2c@10000500 {
2143de9c9cdSBenjamin Herrenschmidt				compatible = "ibm,iic-440spe", "ibm,iic-440gp", "ibm,iic";
21571f34979SDavid Gibson				reg = <0x10000500 0x00000014>;
2163de9c9cdSBenjamin Herrenschmidt				interrupt-parent = <&UIC0>;
21771f34979SDavid Gibson				interrupts = <0x3 0x4>;
2183de9c9cdSBenjamin Herrenschmidt			};
2193de9c9cdSBenjamin Herrenschmidt
2203de9c9cdSBenjamin Herrenschmidt			EMAC0: ethernet@10000800 {
22171f34979SDavid Gibson				linux,network-index = <0x0>;
2223de9c9cdSBenjamin Herrenschmidt				device_type = "network";
2233de9c9cdSBenjamin Herrenschmidt				compatible = "ibm,emac-440spe", "ibm,emac4";
2243de9c9cdSBenjamin Herrenschmidt				interrupt-parent = <&UIC1>;
22571f34979SDavid Gibson				interrupts = <0x1c 0x4 0x1d 0x4>;
22605781ccdSGrant Erickson				reg = <0x10000800 0x00000074>;
2273de9c9cdSBenjamin Herrenschmidt				local-mac-address = [000000000000];
2283de9c9cdSBenjamin Herrenschmidt				mal-device = <&MAL0>;
2293de9c9cdSBenjamin Herrenschmidt				mal-tx-channel = <0>;
2303de9c9cdSBenjamin Herrenschmidt				mal-rx-channel = <0>;
2313de9c9cdSBenjamin Herrenschmidt				cell-index = <0>;
23271f34979SDavid Gibson				max-frame-size = <9000>;
23371f34979SDavid Gibson				rx-fifo-size = <4096>;
23471f34979SDavid Gibson				tx-fifo-size = <2048>;
2353de9c9cdSBenjamin Herrenschmidt				phy-mode = "gmii";
23671f34979SDavid Gibson				phy-map = <0x00000000>;
2373de9c9cdSBenjamin Herrenschmidt				has-inverted-stacr-oc;
2383de9c9cdSBenjamin Herrenschmidt				has-new-stacr-staopc;
2393de9c9cdSBenjamin Herrenschmidt			};
2403de9c9cdSBenjamin Herrenschmidt		};
2413de9c9cdSBenjamin Herrenschmidt
2423de9c9cdSBenjamin Herrenschmidt		PCIX0: pci@c0ec00000 {
2433de9c9cdSBenjamin Herrenschmidt			device_type = "pci";
2443de9c9cdSBenjamin Herrenschmidt			#interrupt-cells = <1>;
2453de9c9cdSBenjamin Herrenschmidt			#size-cells = <2>;
2463de9c9cdSBenjamin Herrenschmidt			#address-cells = <3>;
2473de9c9cdSBenjamin Herrenschmidt			compatible = "ibm,plb-pcix-440spe", "ibm,plb-pcix";
2483de9c9cdSBenjamin Herrenschmidt			primary;
2493de9c9cdSBenjamin Herrenschmidt			large-inbound-windows;
2503de9c9cdSBenjamin Herrenschmidt			enable-msi-hole;
25171f34979SDavid Gibson			reg = <0x0000000c 0x0ec00000   0x00000008	/* Config space access */
25271f34979SDavid Gibson			       0x00000000 0x00000000 0x00000000		/* no IACK cycles */
25371f34979SDavid Gibson			       0x0000000c 0x0ed00000   0x00000004   /* Special cycles */
25471f34979SDavid Gibson			       0x0000000c 0x0ec80000 0x00000100	/* Internal registers */
25571f34979SDavid Gibson			       0x0000000c 0x0ec80100  0x000000fc>;	/* Internal messaging registers */
2563de9c9cdSBenjamin Herrenschmidt
2573de9c9cdSBenjamin Herrenschmidt			/* Outbound ranges, one memory and one IO,
2583de9c9cdSBenjamin Herrenschmidt			 * later cannot be changed
2593de9c9cdSBenjamin Herrenschmidt			 */
26071f34979SDavid Gibson			ranges = <0x02000000 0x00000000 0x80000000 0x0000000d 0x80000000 0x00000000 0x80000000
26171f34979SDavid Gibson				  0x01000000 0x00000000 0x00000000 0x0000000c 0x08000000 0x00000000 0x00010000>;
2623de9c9cdSBenjamin Herrenschmidt
2632e991cfaSpbathija@amcc.com			/* Inbound 4GB range starting at 0 */
2642e991cfaSpbathija@amcc.com			dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x1 0x00000000>;
2653de9c9cdSBenjamin Herrenschmidt
2663de9c9cdSBenjamin Herrenschmidt			/* This drives busses 0 to 0xf */
26771f34979SDavid Gibson			bus-range = <0x0 0xf>;
2683de9c9cdSBenjamin Herrenschmidt
2693de9c9cdSBenjamin Herrenschmidt			/*
2703de9c9cdSBenjamin Herrenschmidt			 * On Katmai, the following PCI-X interrupts signals
2713de9c9cdSBenjamin Herrenschmidt			 * have to be enabled via jumpers (only INTA is
2723de9c9cdSBenjamin Herrenschmidt			 * enabled per default):
2733de9c9cdSBenjamin Herrenschmidt			 *
2743de9c9cdSBenjamin Herrenschmidt			 * INTB: J3: 1-2
2753de9c9cdSBenjamin Herrenschmidt			 * INTC: J2: 1-2
2763de9c9cdSBenjamin Herrenschmidt			 * INTD: J1: 1-2
2773de9c9cdSBenjamin Herrenschmidt			 */
27871f34979SDavid Gibson			interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
2793de9c9cdSBenjamin Herrenschmidt			interrupt-map = <
2803de9c9cdSBenjamin Herrenschmidt				/* IDSEL 1 */
28171f34979SDavid Gibson				0x800 0x0 0x0 0x1 &UIC1 0x14 0x8
28271f34979SDavid Gibson				0x800 0x0 0x0 0x2 &UIC1 0x13 0x8
28371f34979SDavid Gibson				0x800 0x0 0x0 0x3 &UIC1 0x12 0x8
28471f34979SDavid Gibson				0x800 0x0 0x0 0x4 &UIC1 0x11 0x8
2853de9c9cdSBenjamin Herrenschmidt			>;
2863de9c9cdSBenjamin Herrenschmidt		};
2873de9c9cdSBenjamin Herrenschmidt
2883de9c9cdSBenjamin Herrenschmidt		PCIE0: pciex@d00000000 {
2893de9c9cdSBenjamin Herrenschmidt			device_type = "pci";
2903de9c9cdSBenjamin Herrenschmidt			#interrupt-cells = <1>;
2913de9c9cdSBenjamin Herrenschmidt			#size-cells = <2>;
2923de9c9cdSBenjamin Herrenschmidt			#address-cells = <3>;
293accf5ef2SStefan Roese			compatible = "ibm,plb-pciex-440spe", "ibm,plb-pciex";
2943de9c9cdSBenjamin Herrenschmidt			primary;
29571f34979SDavid Gibson			port = <0x0>; /* port number */
29671f34979SDavid Gibson			reg = <0x0000000d 0x00000000 0x20000000	/* Config space access */
29771f34979SDavid Gibson			       0x0000000c 0x10000000 0x00001000>;	/* Registers */
29871f34979SDavid Gibson			dcr-reg = <0x100 0x020>;
29971f34979SDavid Gibson			sdr-base = <0x300>;
3003de9c9cdSBenjamin Herrenschmidt
3013de9c9cdSBenjamin Herrenschmidt			/* Outbound ranges, one memory and one IO,
3023de9c9cdSBenjamin Herrenschmidt			 * later cannot be changed
3033de9c9cdSBenjamin Herrenschmidt			 */
30471f34979SDavid Gibson			ranges = <0x02000000 0x00000000 0x80000000 0x0000000e 0x00000000 0x00000000 0x80000000
30571f34979SDavid Gibson				  0x01000000 0x00000000 0x00000000 0x0000000f 0x80000000 0x00000000 0x00010000>;
3063de9c9cdSBenjamin Herrenschmidt
3072e991cfaSpbathija@amcc.com			/* Inbound 4GB range starting at 0 */
3082e991cfaSpbathija@amcc.com			dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x1 0x00000000>;
3093de9c9cdSBenjamin Herrenschmidt
3102e991cfaSpbathija@amcc.com			/* This drives busses 0x10 to 0x1f */
31171f34979SDavid Gibson			bus-range = <0x10 0x1f>;
3123de9c9cdSBenjamin Herrenschmidt
3133de9c9cdSBenjamin Herrenschmidt			/* Legacy interrupts (note the weird polarity, the bridge seems
3143de9c9cdSBenjamin Herrenschmidt			 * to invert PCIe legacy interrupts).
3153de9c9cdSBenjamin Herrenschmidt			 * We are de-swizzling here because the numbers are actually for
3163de9c9cdSBenjamin Herrenschmidt			 * port of the root complex virtual P2P bridge. But I want
3173de9c9cdSBenjamin Herrenschmidt			 * to avoid putting a node for it in the tree, so the numbers
3183de9c9cdSBenjamin Herrenschmidt			 * below are basically de-swizzled numbers.
3193de9c9cdSBenjamin Herrenschmidt			 * The real slot is on idsel 0, so the swizzling is 1:1
3203de9c9cdSBenjamin Herrenschmidt			 */
32171f34979SDavid Gibson			interrupt-map-mask = <0x0 0x0 0x0 0x7>;
3223de9c9cdSBenjamin Herrenschmidt			interrupt-map = <
32371f34979SDavid Gibson				0x0 0x0 0x0 0x1 &UIC3 0x0 0x4 /* swizzled int A */
32471f34979SDavid Gibson				0x0 0x0 0x0 0x2 &UIC3 0x1 0x4 /* swizzled int B */
32571f34979SDavid Gibson				0x0 0x0 0x0 0x3 &UIC3 0x2 0x4 /* swizzled int C */
32671f34979SDavid Gibson				0x0 0x0 0x0 0x4 &UIC3 0x3 0x4 /* swizzled int D */>;
3273de9c9cdSBenjamin Herrenschmidt		};
3283de9c9cdSBenjamin Herrenschmidt
3293de9c9cdSBenjamin Herrenschmidt		PCIE1: pciex@d20000000 {
3303de9c9cdSBenjamin Herrenschmidt			device_type = "pci";
3313de9c9cdSBenjamin Herrenschmidt			#interrupt-cells = <1>;
3323de9c9cdSBenjamin Herrenschmidt			#size-cells = <2>;
3333de9c9cdSBenjamin Herrenschmidt			#address-cells = <3>;
334accf5ef2SStefan Roese			compatible = "ibm,plb-pciex-440spe", "ibm,plb-pciex";
3353de9c9cdSBenjamin Herrenschmidt			primary;
33671f34979SDavid Gibson			port = <0x1>; /* port number */
33771f34979SDavid Gibson			reg = <0x0000000d 0x20000000 0x20000000	/* Config space access */
33871f34979SDavid Gibson			       0x0000000c 0x10001000 0x00001000>;	/* Registers */
33971f34979SDavid Gibson			dcr-reg = <0x120 0x020>;
34071f34979SDavid Gibson			sdr-base = <0x340>;
3413de9c9cdSBenjamin Herrenschmidt
3423de9c9cdSBenjamin Herrenschmidt			/* Outbound ranges, one memory and one IO,
3433de9c9cdSBenjamin Herrenschmidt			 * later cannot be changed
3443de9c9cdSBenjamin Herrenschmidt			 */
34571f34979SDavid Gibson			ranges = <0x02000000 0x00000000 0x80000000 0x0000000e 0x80000000 0x00000000 0x80000000
34671f34979SDavid Gibson				  0x01000000 0x00000000 0x00000000 0x0000000f 0x80010000 0x00000000 0x00010000>;
3473de9c9cdSBenjamin Herrenschmidt
3482e991cfaSpbathija@amcc.com			/* Inbound 4GB range starting at 0 */
3492e991cfaSpbathija@amcc.com			dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x1 0x00000000>;
3503de9c9cdSBenjamin Herrenschmidt
3512e991cfaSpbathija@amcc.com			/* This drives busses 0x20 to 0x2f */
35271f34979SDavid Gibson			bus-range = <0x20 0x2f>;
3533de9c9cdSBenjamin Herrenschmidt
3543de9c9cdSBenjamin Herrenschmidt			/* Legacy interrupts (note the weird polarity, the bridge seems
3553de9c9cdSBenjamin Herrenschmidt			 * to invert PCIe legacy interrupts).
3563de9c9cdSBenjamin Herrenschmidt			 * We are de-swizzling here because the numbers are actually for
3573de9c9cdSBenjamin Herrenschmidt			 * port of the root complex virtual P2P bridge. But I want
3583de9c9cdSBenjamin Herrenschmidt			 * to avoid putting a node for it in the tree, so the numbers
3593de9c9cdSBenjamin Herrenschmidt			 * below are basically de-swizzled numbers.
3603de9c9cdSBenjamin Herrenschmidt			 * The real slot is on idsel 0, so the swizzling is 1:1
3613de9c9cdSBenjamin Herrenschmidt			 */
36271f34979SDavid Gibson			interrupt-map-mask = <0x0 0x0 0x0 0x7>;
3633de9c9cdSBenjamin Herrenschmidt			interrupt-map = <
36471f34979SDavid Gibson				0x0 0x0 0x0 0x1 &UIC3 0x4 0x4 /* swizzled int A */
36571f34979SDavid Gibson				0x0 0x0 0x0 0x2 &UIC3 0x5 0x4 /* swizzled int B */
36671f34979SDavid Gibson				0x0 0x0 0x0 0x3 &UIC3 0x6 0x4 /* swizzled int C */
36771f34979SDavid Gibson				0x0 0x0 0x0 0x4 &UIC3 0x7 0x4 /* swizzled int D */>;
3683de9c9cdSBenjamin Herrenschmidt		};
3693de9c9cdSBenjamin Herrenschmidt
3703de9c9cdSBenjamin Herrenschmidt		PCIE2: pciex@d40000000 {
3713de9c9cdSBenjamin Herrenschmidt			device_type = "pci";
3723de9c9cdSBenjamin Herrenschmidt			#interrupt-cells = <1>;
3733de9c9cdSBenjamin Herrenschmidt			#size-cells = <2>;
3743de9c9cdSBenjamin Herrenschmidt			#address-cells = <3>;
375accf5ef2SStefan Roese			compatible = "ibm,plb-pciex-440spe", "ibm,plb-pciex";
3763de9c9cdSBenjamin Herrenschmidt			primary;
37771f34979SDavid Gibson			port = <0x2>; /* port number */
37871f34979SDavid Gibson			reg = <0x0000000d 0x40000000 0x20000000	/* Config space access */
37971f34979SDavid Gibson			       0x0000000c 0x10002000 0x00001000>;	/* Registers */
38071f34979SDavid Gibson			dcr-reg = <0x140 0x020>;
38171f34979SDavid Gibson			sdr-base = <0x370>;
3823de9c9cdSBenjamin Herrenschmidt
3833de9c9cdSBenjamin Herrenschmidt			/* Outbound ranges, one memory and one IO,
3843de9c9cdSBenjamin Herrenschmidt			 * later cannot be changed
3853de9c9cdSBenjamin Herrenschmidt			 */
38671f34979SDavid Gibson			ranges = <0x02000000 0x00000000 0x80000000 0x0000000f 0x00000000 0x00000000 0x80000000
38771f34979SDavid Gibson				  0x01000000 0x00000000 0x00000000 0x0000000f 0x80020000 0x00000000 0x00010000>;
3883de9c9cdSBenjamin Herrenschmidt
3892e991cfaSpbathija@amcc.com			/* Inbound 4GB range starting at 0 */
3902e991cfaSpbathija@amcc.com			dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x1 0x00000000>;
3913de9c9cdSBenjamin Herrenschmidt
3922e991cfaSpbathija@amcc.com			/* This drives busses 0x30 to 0x3f */
39371f34979SDavid Gibson			bus-range = <0x30 0x3f>;
3943de9c9cdSBenjamin Herrenschmidt
3953de9c9cdSBenjamin Herrenschmidt			/* Legacy interrupts (note the weird polarity, the bridge seems
3963de9c9cdSBenjamin Herrenschmidt			 * to invert PCIe legacy interrupts).
3973de9c9cdSBenjamin Herrenschmidt			 * We are de-swizzling here because the numbers are actually for
3983de9c9cdSBenjamin Herrenschmidt			 * port of the root complex virtual P2P bridge. But I want
3993de9c9cdSBenjamin Herrenschmidt			 * to avoid putting a node for it in the tree, so the numbers
4003de9c9cdSBenjamin Herrenschmidt			 * below are basically de-swizzled numbers.
4013de9c9cdSBenjamin Herrenschmidt			 * The real slot is on idsel 0, so the swizzling is 1:1
4023de9c9cdSBenjamin Herrenschmidt			 */
40371f34979SDavid Gibson			interrupt-map-mask = <0x0 0x0 0x0 0x7>;
4043de9c9cdSBenjamin Herrenschmidt			interrupt-map = <
40571f34979SDavid Gibson				0x0 0x0 0x0 0x1 &UIC3 0x8 0x4 /* swizzled int A */
40671f34979SDavid Gibson				0x0 0x0 0x0 0x2 &UIC3 0x9 0x4 /* swizzled int B */
40771f34979SDavid Gibson				0x0 0x0 0x0 0x3 &UIC3 0xa 0x4 /* swizzled int C */
40871f34979SDavid Gibson				0x0 0x0 0x0 0x4 &UIC3 0xb 0x4 /* swizzled int D */>;
4093de9c9cdSBenjamin Herrenschmidt		};
410070bae1fSAnatolij Gustschin
411070bae1fSAnatolij Gustschin		I2O: i2o@400100000 {
412070bae1fSAnatolij Gustschin			compatible = "ibm,i2o-440spe";
413070bae1fSAnatolij Gustschin			reg = <0x00000004 0x00100000 0x100>;
414070bae1fSAnatolij Gustschin			dcr-reg = <0x060 0x020>;
415070bae1fSAnatolij Gustschin		};
416070bae1fSAnatolij Gustschin
417070bae1fSAnatolij Gustschin		DMA0: dma0@400100100 {
418070bae1fSAnatolij Gustschin			compatible = "ibm,dma-440spe";
419070bae1fSAnatolij Gustschin			cell-index = <0>;
420070bae1fSAnatolij Gustschin			reg = <0x00000004 0x00100100 0x100>;
421070bae1fSAnatolij Gustschin			dcr-reg = <0x060 0x020>;
422070bae1fSAnatolij Gustschin			interrupt-parent = <&DMA0>;
423070bae1fSAnatolij Gustschin			interrupts = <0 1>;
424070bae1fSAnatolij Gustschin			#interrupt-cells = <1>;
425070bae1fSAnatolij Gustschin			#address-cells = <0>;
426070bae1fSAnatolij Gustschin			#size-cells = <0>;
427070bae1fSAnatolij Gustschin			interrupt-map = <
428070bae1fSAnatolij Gustschin				0 &UIC0 0x14 4
429070bae1fSAnatolij Gustschin				1 &UIC1 0x16 4>;
430070bae1fSAnatolij Gustschin		};
431070bae1fSAnatolij Gustschin
432070bae1fSAnatolij Gustschin		DMA1: dma1@400100200 {
433070bae1fSAnatolij Gustschin			compatible = "ibm,dma-440spe";
434070bae1fSAnatolij Gustschin			cell-index = <1>;
435070bae1fSAnatolij Gustschin			reg = <0x00000004 0x00100200 0x100>;
436070bae1fSAnatolij Gustschin			dcr-reg = <0x060 0x020>;
437070bae1fSAnatolij Gustschin			interrupt-parent = <&DMA1>;
438070bae1fSAnatolij Gustschin			interrupts = <0 1>;
439070bae1fSAnatolij Gustschin			#interrupt-cells = <1>;
440070bae1fSAnatolij Gustschin			#address-cells = <0>;
441070bae1fSAnatolij Gustschin			#size-cells = <0>;
442070bae1fSAnatolij Gustschin			interrupt-map = <
443070bae1fSAnatolij Gustschin				0 &UIC0 0x16 4
444070bae1fSAnatolij Gustschin				1 &UIC1 0x16 4>;
445070bae1fSAnatolij Gustschin		};
446070bae1fSAnatolij Gustschin
447070bae1fSAnatolij Gustschin		xor-accel@400200000 {
448070bae1fSAnatolij Gustschin			compatible = "amcc,xor-accelerator";
449070bae1fSAnatolij Gustschin			reg = <0x00000004 0x00200000 0x400>;
450070bae1fSAnatolij Gustschin			interrupt-parent = <&UIC1>;
451070bae1fSAnatolij Gustschin			interrupts = <0x1f 4>;
452070bae1fSAnatolij Gustschin		};
4533de9c9cdSBenjamin Herrenschmidt	};
4543de9c9cdSBenjamin Herrenschmidt
4553de9c9cdSBenjamin Herrenschmidt	chosen {
4563de9c9cdSBenjamin Herrenschmidt		linux,stdout-path = "/plb/opb/serial@10000200";
4573de9c9cdSBenjamin Herrenschmidt	};
4583de9c9cdSBenjamin Herrenschmidt};
459