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";
47499f4902SStefan Roese			reset-type = <2>;	/* Use chip-reset */
483de9c9cdSBenjamin Herrenschmidt		};
493de9c9cdSBenjamin Herrenschmidt	};
503de9c9cdSBenjamin Herrenschmidt
513de9c9cdSBenjamin Herrenschmidt	memory {
523de9c9cdSBenjamin Herrenschmidt		device_type = "memory";
5359e1d495SStefan Roese		reg = <0x0 0x00000000 0x0 0x00000000>; /* Filled in by U-Boot */
543de9c9cdSBenjamin Herrenschmidt	};
553de9c9cdSBenjamin Herrenschmidt
563de9c9cdSBenjamin Herrenschmidt	UIC0: interrupt-controller0 {
573de9c9cdSBenjamin Herrenschmidt		compatible = "ibm,uic-440spe","ibm,uic";
583de9c9cdSBenjamin Herrenschmidt		interrupt-controller;
593de9c9cdSBenjamin Herrenschmidt		cell-index = <0>;
6071f34979SDavid Gibson		dcr-reg = <0x0c0 0x009>;
613de9c9cdSBenjamin Herrenschmidt		#address-cells = <0>;
623de9c9cdSBenjamin Herrenschmidt		#size-cells = <0>;
633de9c9cdSBenjamin Herrenschmidt		#interrupt-cells = <2>;
643de9c9cdSBenjamin Herrenschmidt	};
653de9c9cdSBenjamin Herrenschmidt
663de9c9cdSBenjamin Herrenschmidt	UIC1: interrupt-controller1 {
673de9c9cdSBenjamin Herrenschmidt		compatible = "ibm,uic-440spe","ibm,uic";
683de9c9cdSBenjamin Herrenschmidt		interrupt-controller;
693de9c9cdSBenjamin Herrenschmidt		cell-index = <1>;
7071f34979SDavid Gibson		dcr-reg = <0x0d0 0x009>;
713de9c9cdSBenjamin Herrenschmidt		#address-cells = <0>;
723de9c9cdSBenjamin Herrenschmidt		#size-cells = <0>;
733de9c9cdSBenjamin Herrenschmidt		#interrupt-cells = <2>;
7471f34979SDavid Gibson		interrupts = <0x1e 0x4 0x1f 0x4>; /* cascade */
753de9c9cdSBenjamin Herrenschmidt		interrupt-parent = <&UIC0>;
763de9c9cdSBenjamin Herrenschmidt	};
773de9c9cdSBenjamin Herrenschmidt
783de9c9cdSBenjamin Herrenschmidt	UIC2: interrupt-controller2 {
793de9c9cdSBenjamin Herrenschmidt		compatible = "ibm,uic-440spe","ibm,uic";
803de9c9cdSBenjamin Herrenschmidt		interrupt-controller;
813de9c9cdSBenjamin Herrenschmidt		cell-index = <2>;
8271f34979SDavid Gibson		dcr-reg = <0x0e0 0x009>;
833de9c9cdSBenjamin Herrenschmidt		#address-cells = <0>;
843de9c9cdSBenjamin Herrenschmidt		#size-cells = <0>;
853de9c9cdSBenjamin Herrenschmidt		#interrupt-cells = <2>;
8671f34979SDavid Gibson		interrupts = <0xa 0x4 0xb 0x4>; /* cascade */
873de9c9cdSBenjamin Herrenschmidt		interrupt-parent = <&UIC0>;
883de9c9cdSBenjamin Herrenschmidt	};
893de9c9cdSBenjamin Herrenschmidt
903de9c9cdSBenjamin Herrenschmidt	UIC3: interrupt-controller3 {
913de9c9cdSBenjamin Herrenschmidt		compatible = "ibm,uic-440spe","ibm,uic";
923de9c9cdSBenjamin Herrenschmidt		interrupt-controller;
933de9c9cdSBenjamin Herrenschmidt		cell-index = <3>;
9471f34979SDavid Gibson		dcr-reg = <0x0f0 0x009>;
953de9c9cdSBenjamin Herrenschmidt		#address-cells = <0>;
963de9c9cdSBenjamin Herrenschmidt		#size-cells = <0>;
973de9c9cdSBenjamin Herrenschmidt		#interrupt-cells = <2>;
9871f34979SDavid Gibson		interrupts = <0x10 0x4 0x11 0x4>; /* cascade */
993de9c9cdSBenjamin Herrenschmidt		interrupt-parent = <&UIC0>;
1003de9c9cdSBenjamin Herrenschmidt	};
1013de9c9cdSBenjamin Herrenschmidt
1023de9c9cdSBenjamin Herrenschmidt	SDR0: sdr {
1033de9c9cdSBenjamin Herrenschmidt		compatible = "ibm,sdr-440spe";
10471f34979SDavid Gibson		dcr-reg = <0x00e 0x002>;
1053de9c9cdSBenjamin Herrenschmidt	};
1063de9c9cdSBenjamin Herrenschmidt
1073de9c9cdSBenjamin Herrenschmidt	CPR0: cpr {
1083de9c9cdSBenjamin Herrenschmidt		compatible = "ibm,cpr-440spe";
10971f34979SDavid Gibson		dcr-reg = <0x00c 0x002>;
1103de9c9cdSBenjamin Herrenschmidt	};
1113de9c9cdSBenjamin Herrenschmidt
112070bae1fSAnatolij Gustschin	MQ0: mq {
113070bae1fSAnatolij Gustschin		compatible = "ibm,mq-440spe";
114070bae1fSAnatolij Gustschin		dcr-reg = <0x040 0x020>;
115070bae1fSAnatolij Gustschin	};
116070bae1fSAnatolij Gustschin
1173de9c9cdSBenjamin Herrenschmidt	plb {
1183de9c9cdSBenjamin Herrenschmidt		compatible = "ibm,plb-440spe", "ibm,plb-440gp", "ibm,plb4";
1193de9c9cdSBenjamin Herrenschmidt		#address-cells = <2>;
1203de9c9cdSBenjamin Herrenschmidt		#size-cells = <1>;
12159e1d495SStefan Roese		/*        addr-child     addr-parent    size */
122070bae1fSAnatolij Gustschin		ranges = <0x4 0x00100000 0x4 0x00100000 0x00001000
123070bae1fSAnatolij Gustschin			  0x4 0x00200000 0x4 0x00200000 0x00000400
124070bae1fSAnatolij Gustschin			  0x4 0xe0000000 0x4 0xe0000000 0x20000000
12559e1d495SStefan Roese			  0xc 0x00000000 0xc 0x00000000 0x20000000
12659e1d495SStefan Roese			  0xd 0x00000000 0xd 0x00000000 0x80000000
12759e1d495SStefan Roese			  0xd 0x80000000 0xd 0x80000000 0x80000000
12859e1d495SStefan Roese			  0xe 0x00000000 0xe 0x00000000 0x80000000
12959e1d495SStefan Roese			  0xe 0x80000000 0xe 0x80000000 0x80000000
13059e1d495SStefan Roese			  0xf 0x00000000 0xf 0x00000000 0x80000000
13159e1d495SStefan Roese			  0xf 0x80000000 0xf 0x80000000 0x80000000>;
1323de9c9cdSBenjamin Herrenschmidt		clock-frequency = <0>; /* Filled in by zImage */
1333de9c9cdSBenjamin Herrenschmidt
1343de9c9cdSBenjamin Herrenschmidt		SDRAM0: sdram {
1353de9c9cdSBenjamin Herrenschmidt			compatible = "ibm,sdram-440spe", "ibm,sdram-405gp";
13671f34979SDavid Gibson			dcr-reg = <0x010 0x002>;
1373de9c9cdSBenjamin Herrenschmidt		};
1383de9c9cdSBenjamin Herrenschmidt
1393de9c9cdSBenjamin Herrenschmidt		MAL0: mcmal {
1403de9c9cdSBenjamin Herrenschmidt			compatible = "ibm,mcmal-440spe", "ibm,mcmal2";
14171f34979SDavid Gibson			dcr-reg = <0x180 0x062>;
1423de9c9cdSBenjamin Herrenschmidt			num-tx-chans = <2>;
1433de9c9cdSBenjamin Herrenschmidt			num-rx-chans = <1>;
1443de9c9cdSBenjamin Herrenschmidt			interrupt-parent = <&MAL0>;
14571f34979SDavid Gibson			interrupts = <0x0 0x1 0x2 0x3 0x4>;
1463de9c9cdSBenjamin Herrenschmidt			#interrupt-cells = <1>;
1473de9c9cdSBenjamin Herrenschmidt			#address-cells = <0>;
1483de9c9cdSBenjamin Herrenschmidt			#size-cells = <0>;
14971f34979SDavid Gibson			interrupt-map = </*TXEOB*/ 0x0 &UIC1 0x6 0x4
15071f34979SDavid Gibson					 /*RXEOB*/ 0x1 &UIC1 0x7 0x4
15171f34979SDavid Gibson					 /*SERR*/  0x2 &UIC1 0x1 0x4
15271f34979SDavid Gibson					 /*TXDE*/  0x3 &UIC1 0x2 0x4
15371f34979SDavid Gibson					 /*RXDE*/  0x4 &UIC1 0x3 0x4>;
1543de9c9cdSBenjamin Herrenschmidt		};
1553de9c9cdSBenjamin Herrenschmidt
1563de9c9cdSBenjamin Herrenschmidt		POB0: opb {
1573de9c9cdSBenjamin Herrenschmidt			compatible = "ibm,opb-440spe", "ibm,opb-440gp", "ibm,opb";
1583de9c9cdSBenjamin Herrenschmidt			#address-cells = <1>;
1593de9c9cdSBenjamin Herrenschmidt			#size-cells = <1>;
160036f290dSStefan Roese			ranges = <0xe0000000 0x00000004 0xe0000000 0x20000000>;
1613de9c9cdSBenjamin Herrenschmidt			clock-frequency = <0>; /* Filled in by zImage */
1623de9c9cdSBenjamin Herrenschmidt
1633de9c9cdSBenjamin Herrenschmidt			EBC0: ebc {
1643de9c9cdSBenjamin Herrenschmidt				compatible = "ibm,ebc-440spe", "ibm,ebc-440gp", "ibm,ebc";
16571f34979SDavid Gibson				dcr-reg = <0x012 0x002>;
1663de9c9cdSBenjamin Herrenschmidt				#address-cells = <2>;
1673de9c9cdSBenjamin Herrenschmidt				#size-cells = <1>;
1683de9c9cdSBenjamin Herrenschmidt				clock-frequency = <0>; /* Filled in by zImage */
169036f290dSStefan Roese				/* ranges property is supplied by U-Boot */
17071f34979SDavid Gibson				interrupts = <0x5 0x1>;
1713de9c9cdSBenjamin Herrenschmidt				interrupt-parent = <&UIC1>;
172036f290dSStefan Roese
173036f290dSStefan Roese				nor_flash@0,0 {
174036f290dSStefan Roese					compatible = "cfi-flash";
175036f290dSStefan Roese					bank-width = <2>;
176036f290dSStefan Roese					reg = <0x00000000 0x00000000 0x01000000>;
177036f290dSStefan Roese					#address-cells = <1>;
178036f290dSStefan Roese					#size-cells = <1>;
179036f290dSStefan Roese					partition@0 {
180036f290dSStefan Roese						label = "kernel";
181036f290dSStefan Roese						reg = <0x00000000 0x001e0000>;
182036f290dSStefan Roese					};
183036f290dSStefan Roese					partition@1e0000 {
184036f290dSStefan Roese						label = "dtb";
185036f290dSStefan Roese						reg = <0x001e0000 0x00020000>;
186036f290dSStefan Roese					};
187036f290dSStefan Roese					partition@200000 {
188036f290dSStefan Roese						label = "root";
189036f290dSStefan Roese						reg = <0x00200000 0x00200000>;
190036f290dSStefan Roese					};
191036f290dSStefan Roese					partition@400000 {
192036f290dSStefan Roese						label = "user";
193036f290dSStefan Roese						reg = <0x00400000 0x00b60000>;
194036f290dSStefan Roese					};
195036f290dSStefan Roese					partition@f60000 {
196036f290dSStefan Roese						label = "env";
197036f290dSStefan Roese						reg = <0x00f60000 0x00040000>;
198036f290dSStefan Roese					};
199036f290dSStefan Roese					partition@fa0000 {
200036f290dSStefan Roese						label = "u-boot";
201036f290dSStefan Roese						reg = <0x00fa0000 0x00060000>;
202036f290dSStefan Roese					};
203036f290dSStefan Roese				};
2043de9c9cdSBenjamin Herrenschmidt			};
2053de9c9cdSBenjamin Herrenschmidt
206036f290dSStefan Roese			UART0: serial@f0000200 {
2073de9c9cdSBenjamin Herrenschmidt				device_type = "serial";
2083de9c9cdSBenjamin Herrenschmidt				compatible = "ns16550";
209036f290dSStefan Roese				reg = <0xf0000200 0x00000008>;
21071f34979SDavid Gibson				virtual-reg = <0xa0000200>;
2113de9c9cdSBenjamin Herrenschmidt				clock-frequency = <0>; /* Filled in by zImage */
21271f34979SDavid Gibson				current-speed = <115200>;
2133de9c9cdSBenjamin Herrenschmidt				interrupt-parent = <&UIC0>;
21471f34979SDavid Gibson				interrupts = <0x0 0x4>;
2153de9c9cdSBenjamin Herrenschmidt			};
2163de9c9cdSBenjamin Herrenschmidt
217036f290dSStefan Roese			UART1: serial@f0000300 {
2183de9c9cdSBenjamin Herrenschmidt				device_type = "serial";
2193de9c9cdSBenjamin Herrenschmidt				compatible = "ns16550";
220036f290dSStefan Roese				reg = <0xf0000300 0x00000008>;
22171f34979SDavid Gibson				virtual-reg = <0xa0000300>;
2223de9c9cdSBenjamin Herrenschmidt				clock-frequency = <0>;
2233de9c9cdSBenjamin Herrenschmidt				current-speed = <0>;
2243de9c9cdSBenjamin Herrenschmidt				interrupt-parent = <&UIC0>;
22571f34979SDavid Gibson				interrupts = <0x1 0x4>;
2263de9c9cdSBenjamin Herrenschmidt			};
2273de9c9cdSBenjamin Herrenschmidt
2283de9c9cdSBenjamin Herrenschmidt
229036f290dSStefan Roese			UART2: serial@f0000600 {
2303de9c9cdSBenjamin Herrenschmidt				device_type = "serial";
2313de9c9cdSBenjamin Herrenschmidt				compatible = "ns16550";
232036f290dSStefan Roese				reg = <0xf0000600 0x00000008>;
23371f34979SDavid Gibson				virtual-reg = <0xa0000600>;
2343de9c9cdSBenjamin Herrenschmidt				clock-frequency = <0>;
2353de9c9cdSBenjamin Herrenschmidt				current-speed = <0>;
2363de9c9cdSBenjamin Herrenschmidt				interrupt-parent = <&UIC1>;
23771f34979SDavid Gibson				interrupts = <0x5 0x4>;
2383de9c9cdSBenjamin Herrenschmidt			};
2393de9c9cdSBenjamin Herrenschmidt
240036f290dSStefan Roese			IIC0: i2c@f0000400 {
2413de9c9cdSBenjamin Herrenschmidt				compatible = "ibm,iic-440spe", "ibm,iic-440gp", "ibm,iic";
242036f290dSStefan Roese				reg = <0xf0000400 0x00000014>;
2433de9c9cdSBenjamin Herrenschmidt				interrupt-parent = <&UIC0>;
24471f34979SDavid Gibson				interrupts = <0x2 0x4>;
2453de9c9cdSBenjamin Herrenschmidt			};
2463de9c9cdSBenjamin Herrenschmidt
247036f290dSStefan Roese			IIC1: i2c@f0000500 {
2483de9c9cdSBenjamin Herrenschmidt				compatible = "ibm,iic-440spe", "ibm,iic-440gp", "ibm,iic";
249036f290dSStefan Roese				reg = <0xf0000500 0x00000014>;
2503de9c9cdSBenjamin Herrenschmidt				interrupt-parent = <&UIC0>;
25171f34979SDavid Gibson				interrupts = <0x3 0x4>;
2523de9c9cdSBenjamin Herrenschmidt			};
2533de9c9cdSBenjamin Herrenschmidt
254036f290dSStefan Roese			EMAC0: ethernet@f0000800 {
25571f34979SDavid Gibson				linux,network-index = <0x0>;
2563de9c9cdSBenjamin Herrenschmidt				device_type = "network";
2573de9c9cdSBenjamin Herrenschmidt				compatible = "ibm,emac-440spe", "ibm,emac4";
2583de9c9cdSBenjamin Herrenschmidt				interrupt-parent = <&UIC1>;
25971f34979SDavid Gibson				interrupts = <0x1c 0x4 0x1d 0x4>;
260036f290dSStefan Roese				reg = <0xf0000800 0x00000074>;
2613de9c9cdSBenjamin Herrenschmidt				local-mac-address = [000000000000];
2623de9c9cdSBenjamin Herrenschmidt				mal-device = <&MAL0>;
2633de9c9cdSBenjamin Herrenschmidt				mal-tx-channel = <0>;
2643de9c9cdSBenjamin Herrenschmidt				mal-rx-channel = <0>;
2653de9c9cdSBenjamin Herrenschmidt				cell-index = <0>;
26671f34979SDavid Gibson				max-frame-size = <9000>;
26771f34979SDavid Gibson				rx-fifo-size = <4096>;
26871f34979SDavid Gibson				tx-fifo-size = <2048>;
2693de9c9cdSBenjamin Herrenschmidt				phy-mode = "gmii";
27071f34979SDavid Gibson				phy-map = <0x00000000>;
2713de9c9cdSBenjamin Herrenschmidt				has-inverted-stacr-oc;
2723de9c9cdSBenjamin Herrenschmidt				has-new-stacr-staopc;
2733de9c9cdSBenjamin Herrenschmidt			};
2743de9c9cdSBenjamin Herrenschmidt		};
2753de9c9cdSBenjamin Herrenschmidt
2763de9c9cdSBenjamin Herrenschmidt		PCIX0: pci@c0ec00000 {
2773de9c9cdSBenjamin Herrenschmidt			device_type = "pci";
2783de9c9cdSBenjamin Herrenschmidt			#interrupt-cells = <1>;
2793de9c9cdSBenjamin Herrenschmidt			#size-cells = <2>;
2803de9c9cdSBenjamin Herrenschmidt			#address-cells = <3>;
2813de9c9cdSBenjamin Herrenschmidt			compatible = "ibm,plb-pcix-440spe", "ibm,plb-pcix";
2823de9c9cdSBenjamin Herrenschmidt			primary;
2833de9c9cdSBenjamin Herrenschmidt			large-inbound-windows;
2843de9c9cdSBenjamin Herrenschmidt			enable-msi-hole;
28571f34979SDavid Gibson			reg = <0x0000000c 0x0ec00000 0x00000008   /* Config space access */
28671f34979SDavid Gibson			       0x00000000 0x00000000 0x00000000   /* no IACK cycles */
28771f34979SDavid Gibson			       0x0000000c 0x0ed00000 0x00000004   /* Special cycles */
28871f34979SDavid Gibson			       0x0000000c 0x0ec80000 0x00000100   /* Internal registers */
28971f34979SDavid Gibson			       0x0000000c 0x0ec80100 0x000000fc>; /* Internal messaging registers */
2903de9c9cdSBenjamin Herrenschmidt
2913de9c9cdSBenjamin Herrenschmidt			/* Outbound ranges, one memory and one IO,
2923de9c9cdSBenjamin Herrenschmidt			 * later cannot be changed
2933de9c9cdSBenjamin Herrenschmidt			 */
29471f34979SDavid Gibson			ranges = <0x02000000 0x00000000 0x80000000 0x0000000d 0x80000000 0x00000000 0x80000000
29571f34979SDavid Gibson				  0x01000000 0x00000000 0x00000000 0x0000000c 0x08000000 0x00000000 0x00010000>;
2963de9c9cdSBenjamin Herrenschmidt
2972e991cfaSpbathija@amcc.com			/* Inbound 4GB range starting at 0 */
2982e991cfaSpbathija@amcc.com			dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x1 0x00000000>;
2993de9c9cdSBenjamin Herrenschmidt
3003de9c9cdSBenjamin Herrenschmidt			/* This drives busses 0 to 0xf */
30171f34979SDavid Gibson			bus-range = <0x0 0xf>;
3023de9c9cdSBenjamin Herrenschmidt
3033de9c9cdSBenjamin Herrenschmidt			/*
3043de9c9cdSBenjamin Herrenschmidt			 * On Katmai, the following PCI-X interrupts signals
3053de9c9cdSBenjamin Herrenschmidt			 * have to be enabled via jumpers (only INTA is
3063de9c9cdSBenjamin Herrenschmidt			 * enabled per default):
3073de9c9cdSBenjamin Herrenschmidt			 *
3083de9c9cdSBenjamin Herrenschmidt			 * INTB: J3: 1-2
3093de9c9cdSBenjamin Herrenschmidt			 * INTC: J2: 1-2
3103de9c9cdSBenjamin Herrenschmidt			 * INTD: J1: 1-2
3113de9c9cdSBenjamin Herrenschmidt			 */
31271f34979SDavid Gibson			interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
3133de9c9cdSBenjamin Herrenschmidt			interrupt-map = <
3143de9c9cdSBenjamin Herrenschmidt				/* IDSEL 1 */
31571f34979SDavid Gibson				0x800 0x0 0x0 0x1 &UIC1 0x14 0x8
31671f34979SDavid Gibson				0x800 0x0 0x0 0x2 &UIC1 0x13 0x8
31771f34979SDavid Gibson				0x800 0x0 0x0 0x3 &UIC1 0x12 0x8
31871f34979SDavid Gibson				0x800 0x0 0x0 0x4 &UIC1 0x11 0x8
3193de9c9cdSBenjamin Herrenschmidt			>;
3203de9c9cdSBenjamin Herrenschmidt		};
3213de9c9cdSBenjamin Herrenschmidt
3223de9c9cdSBenjamin Herrenschmidt		PCIE0: pciex@d00000000 {
3233de9c9cdSBenjamin Herrenschmidt			device_type = "pci";
3243de9c9cdSBenjamin Herrenschmidt			#interrupt-cells = <1>;
3253de9c9cdSBenjamin Herrenschmidt			#size-cells = <2>;
3263de9c9cdSBenjamin Herrenschmidt			#address-cells = <3>;
327accf5ef2SStefan Roese			compatible = "ibm,plb-pciex-440spe", "ibm,plb-pciex";
3283de9c9cdSBenjamin Herrenschmidt			primary;
32971f34979SDavid Gibson			port = <0x0>; /* port number */
33071f34979SDavid Gibson			reg = <0x0000000d 0x00000000 0x20000000	/* Config space access */
33171f34979SDavid Gibson			       0x0000000c 0x10000000 0x00001000>;	/* Registers */
33271f34979SDavid Gibson			dcr-reg = <0x100 0x020>;
33371f34979SDavid Gibson			sdr-base = <0x300>;
3343de9c9cdSBenjamin Herrenschmidt
3353de9c9cdSBenjamin Herrenschmidt			/* Outbound ranges, one memory and one IO,
3363de9c9cdSBenjamin Herrenschmidt			 * later cannot be changed
3373de9c9cdSBenjamin Herrenschmidt			 */
33871f34979SDavid Gibson			ranges = <0x02000000 0x00000000 0x80000000 0x0000000e 0x00000000 0x00000000 0x80000000
33971f34979SDavid Gibson				  0x01000000 0x00000000 0x00000000 0x0000000f 0x80000000 0x00000000 0x00010000>;
3403de9c9cdSBenjamin Herrenschmidt
3412e991cfaSpbathija@amcc.com			/* Inbound 4GB range starting at 0 */
3422e991cfaSpbathija@amcc.com			dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x1 0x00000000>;
3433de9c9cdSBenjamin Herrenschmidt
3442e991cfaSpbathija@amcc.com			/* This drives busses 0x10 to 0x1f */
34571f34979SDavid Gibson			bus-range = <0x10 0x1f>;
3463de9c9cdSBenjamin Herrenschmidt
3473de9c9cdSBenjamin Herrenschmidt			/* Legacy interrupts (note the weird polarity, the bridge seems
3483de9c9cdSBenjamin Herrenschmidt			 * to invert PCIe legacy interrupts).
3493de9c9cdSBenjamin Herrenschmidt			 * We are de-swizzling here because the numbers are actually for
3503de9c9cdSBenjamin Herrenschmidt			 * port of the root complex virtual P2P bridge. But I want
3513de9c9cdSBenjamin Herrenschmidt			 * to avoid putting a node for it in the tree, so the numbers
3523de9c9cdSBenjamin Herrenschmidt			 * below are basically de-swizzled numbers.
3533de9c9cdSBenjamin Herrenschmidt			 * The real slot is on idsel 0, so the swizzling is 1:1
3543de9c9cdSBenjamin Herrenschmidt			 */
35571f34979SDavid Gibson			interrupt-map-mask = <0x0 0x0 0x0 0x7>;
3563de9c9cdSBenjamin Herrenschmidt			interrupt-map = <
35771f34979SDavid Gibson				0x0 0x0 0x0 0x1 &UIC3 0x0 0x4 /* swizzled int A */
35871f34979SDavid Gibson				0x0 0x0 0x0 0x2 &UIC3 0x1 0x4 /* swizzled int B */
35971f34979SDavid Gibson				0x0 0x0 0x0 0x3 &UIC3 0x2 0x4 /* swizzled int C */
36071f34979SDavid Gibson				0x0 0x0 0x0 0x4 &UIC3 0x3 0x4 /* swizzled int D */>;
3613de9c9cdSBenjamin Herrenschmidt		};
3623de9c9cdSBenjamin Herrenschmidt
3633de9c9cdSBenjamin Herrenschmidt		PCIE1: pciex@d20000000 {
3643de9c9cdSBenjamin Herrenschmidt			device_type = "pci";
3653de9c9cdSBenjamin Herrenschmidt			#interrupt-cells = <1>;
3663de9c9cdSBenjamin Herrenschmidt			#size-cells = <2>;
3673de9c9cdSBenjamin Herrenschmidt			#address-cells = <3>;
368accf5ef2SStefan Roese			compatible = "ibm,plb-pciex-440spe", "ibm,plb-pciex";
3693de9c9cdSBenjamin Herrenschmidt			primary;
37071f34979SDavid Gibson			port = <0x1>; /* port number */
37171f34979SDavid Gibson			reg = <0x0000000d 0x20000000 0x20000000	/* Config space access */
37271f34979SDavid Gibson			       0x0000000c 0x10001000 0x00001000>;	/* Registers */
37371f34979SDavid Gibson			dcr-reg = <0x120 0x020>;
37471f34979SDavid Gibson			sdr-base = <0x340>;
3753de9c9cdSBenjamin Herrenschmidt
3763de9c9cdSBenjamin Herrenschmidt			/* Outbound ranges, one memory and one IO,
3773de9c9cdSBenjamin Herrenschmidt			 * later cannot be changed
3783de9c9cdSBenjamin Herrenschmidt			 */
37971f34979SDavid Gibson			ranges = <0x02000000 0x00000000 0x80000000 0x0000000e 0x80000000 0x00000000 0x80000000
38071f34979SDavid Gibson				  0x01000000 0x00000000 0x00000000 0x0000000f 0x80010000 0x00000000 0x00010000>;
3813de9c9cdSBenjamin Herrenschmidt
3822e991cfaSpbathija@amcc.com			/* Inbound 4GB range starting at 0 */
3832e991cfaSpbathija@amcc.com			dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x1 0x00000000>;
3843de9c9cdSBenjamin Herrenschmidt
3852e991cfaSpbathija@amcc.com			/* This drives busses 0x20 to 0x2f */
38671f34979SDavid Gibson			bus-range = <0x20 0x2f>;
3873de9c9cdSBenjamin Herrenschmidt
3883de9c9cdSBenjamin Herrenschmidt			/* Legacy interrupts (note the weird polarity, the bridge seems
3893de9c9cdSBenjamin Herrenschmidt			 * to invert PCIe legacy interrupts).
3903de9c9cdSBenjamin Herrenschmidt			 * We are de-swizzling here because the numbers are actually for
3913de9c9cdSBenjamin Herrenschmidt			 * port of the root complex virtual P2P bridge. But I want
3923de9c9cdSBenjamin Herrenschmidt			 * to avoid putting a node for it in the tree, so the numbers
3933de9c9cdSBenjamin Herrenschmidt			 * below are basically de-swizzled numbers.
3943de9c9cdSBenjamin Herrenschmidt			 * The real slot is on idsel 0, so the swizzling is 1:1
3953de9c9cdSBenjamin Herrenschmidt			 */
39671f34979SDavid Gibson			interrupt-map-mask = <0x0 0x0 0x0 0x7>;
3973de9c9cdSBenjamin Herrenschmidt			interrupt-map = <
39871f34979SDavid Gibson				0x0 0x0 0x0 0x1 &UIC3 0x4 0x4 /* swizzled int A */
39971f34979SDavid Gibson				0x0 0x0 0x0 0x2 &UIC3 0x5 0x4 /* swizzled int B */
40071f34979SDavid Gibson				0x0 0x0 0x0 0x3 &UIC3 0x6 0x4 /* swizzled int C */
40171f34979SDavid Gibson				0x0 0x0 0x0 0x4 &UIC3 0x7 0x4 /* swizzled int D */>;
4023de9c9cdSBenjamin Herrenschmidt		};
4033de9c9cdSBenjamin Herrenschmidt
4043de9c9cdSBenjamin Herrenschmidt		PCIE2: pciex@d40000000 {
4053de9c9cdSBenjamin Herrenschmidt			device_type = "pci";
4063de9c9cdSBenjamin Herrenschmidt			#interrupt-cells = <1>;
4073de9c9cdSBenjamin Herrenschmidt			#size-cells = <2>;
4083de9c9cdSBenjamin Herrenschmidt			#address-cells = <3>;
409accf5ef2SStefan Roese			compatible = "ibm,plb-pciex-440spe", "ibm,plb-pciex";
4103de9c9cdSBenjamin Herrenschmidt			primary;
41171f34979SDavid Gibson			port = <0x2>; /* port number */
41271f34979SDavid Gibson			reg = <0x0000000d 0x40000000 0x20000000	/* Config space access */
41371f34979SDavid Gibson			       0x0000000c 0x10002000 0x00001000>;	/* Registers */
41471f34979SDavid Gibson			dcr-reg = <0x140 0x020>;
41571f34979SDavid Gibson			sdr-base = <0x370>;
4163de9c9cdSBenjamin Herrenschmidt
4173de9c9cdSBenjamin Herrenschmidt			/* Outbound ranges, one memory and one IO,
4183de9c9cdSBenjamin Herrenschmidt			 * later cannot be changed
4193de9c9cdSBenjamin Herrenschmidt			 */
42071f34979SDavid Gibson			ranges = <0x02000000 0x00000000 0x80000000 0x0000000f 0x00000000 0x00000000 0x80000000
42171f34979SDavid Gibson				  0x01000000 0x00000000 0x00000000 0x0000000f 0x80020000 0x00000000 0x00010000>;
4223de9c9cdSBenjamin Herrenschmidt
4232e991cfaSpbathija@amcc.com			/* Inbound 4GB range starting at 0 */
4242e991cfaSpbathija@amcc.com			dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x1 0x00000000>;
4253de9c9cdSBenjamin Herrenschmidt
4262e991cfaSpbathija@amcc.com			/* This drives busses 0x30 to 0x3f */
42771f34979SDavid Gibson			bus-range = <0x30 0x3f>;
4283de9c9cdSBenjamin Herrenschmidt
4293de9c9cdSBenjamin Herrenschmidt			/* Legacy interrupts (note the weird polarity, the bridge seems
4303de9c9cdSBenjamin Herrenschmidt			 * to invert PCIe legacy interrupts).
4313de9c9cdSBenjamin Herrenschmidt			 * We are de-swizzling here because the numbers are actually for
4323de9c9cdSBenjamin Herrenschmidt			 * port of the root complex virtual P2P bridge. But I want
4333de9c9cdSBenjamin Herrenschmidt			 * to avoid putting a node for it in the tree, so the numbers
4343de9c9cdSBenjamin Herrenschmidt			 * below are basically de-swizzled numbers.
4353de9c9cdSBenjamin Herrenschmidt			 * The real slot is on idsel 0, so the swizzling is 1:1
4363de9c9cdSBenjamin Herrenschmidt			 */
43771f34979SDavid Gibson			interrupt-map-mask = <0x0 0x0 0x0 0x7>;
4383de9c9cdSBenjamin Herrenschmidt			interrupt-map = <
43971f34979SDavid Gibson				0x0 0x0 0x0 0x1 &UIC3 0x8 0x4 /* swizzled int A */
44071f34979SDavid Gibson				0x0 0x0 0x0 0x2 &UIC3 0x9 0x4 /* swizzled int B */
44171f34979SDavid Gibson				0x0 0x0 0x0 0x3 &UIC3 0xa 0x4 /* swizzled int C */
44271f34979SDavid Gibson				0x0 0x0 0x0 0x4 &UIC3 0xb 0x4 /* swizzled int D */>;
4433de9c9cdSBenjamin Herrenschmidt		};
444070bae1fSAnatolij Gustschin
4453fb79338SRupjyoti Sarmah		MSI: ppc4xx-msi@400300000 {
4463fb79338SRupjyoti Sarmah				compatible = "amcc,ppc4xx-msi", "ppc4xx-msi";
4473fb79338SRupjyoti Sarmah				reg = < 0x4 0x00300000 0x100>;
4483fb79338SRupjyoti Sarmah				sdr-base = <0x3B0>;
4493fb79338SRupjyoti Sarmah				msi-data = <0x00000000>;
4503fb79338SRupjyoti Sarmah				msi-mask = <0x44440000>;
4513fb79338SRupjyoti Sarmah				interrupt-count = <3>;
4523fb79338SRupjyoti Sarmah				interrupts =<0 1 2 3>;
4533fb79338SRupjyoti Sarmah				interrupt-parent = <&UIC0>;
4543fb79338SRupjyoti Sarmah				#interrupt-cells = <1>;
4553fb79338SRupjyoti Sarmah				#address-cells = <0>;
4563fb79338SRupjyoti Sarmah				#size-cells = <0>;
4573fb79338SRupjyoti Sarmah				interrupt-map = <0 &UIC0 0xC 1
4583fb79338SRupjyoti Sarmah					1 &UIC0 0x0D 1
4593fb79338SRupjyoti Sarmah					2 &UIC0 0x0E 1
4603fb79338SRupjyoti Sarmah					3 &UIC0 0x0F 1>;
4613fb79338SRupjyoti Sarmah		};
4623fb79338SRupjyoti Sarmah
463070bae1fSAnatolij Gustschin		I2O: i2o@400100000 {
464070bae1fSAnatolij Gustschin			compatible = "ibm,i2o-440spe";
465070bae1fSAnatolij Gustschin			reg = <0x00000004 0x00100000 0x100>;
466070bae1fSAnatolij Gustschin			dcr-reg = <0x060 0x020>;
467070bae1fSAnatolij Gustschin		};
468070bae1fSAnatolij Gustschin
469070bae1fSAnatolij Gustschin		DMA0: dma0@400100100 {
470070bae1fSAnatolij Gustschin			compatible = "ibm,dma-440spe";
471070bae1fSAnatolij Gustschin			cell-index = <0>;
472070bae1fSAnatolij Gustschin			reg = <0x00000004 0x00100100 0x100>;
473070bae1fSAnatolij Gustschin			dcr-reg = <0x060 0x020>;
474070bae1fSAnatolij Gustschin			interrupt-parent = <&DMA0>;
475070bae1fSAnatolij Gustschin			interrupts = <0 1>;
476070bae1fSAnatolij Gustschin			#interrupt-cells = <1>;
477070bae1fSAnatolij Gustschin			#address-cells = <0>;
478070bae1fSAnatolij Gustschin			#size-cells = <0>;
479070bae1fSAnatolij Gustschin			interrupt-map = <
480070bae1fSAnatolij Gustschin				0 &UIC0 0x14 4
481070bae1fSAnatolij Gustschin				1 &UIC1 0x16 4>;
482070bae1fSAnatolij Gustschin		};
483070bae1fSAnatolij Gustschin
484070bae1fSAnatolij Gustschin		DMA1: dma1@400100200 {
485070bae1fSAnatolij Gustschin			compatible = "ibm,dma-440spe";
486070bae1fSAnatolij Gustschin			cell-index = <1>;
487070bae1fSAnatolij Gustschin			reg = <0x00000004 0x00100200 0x100>;
488070bae1fSAnatolij Gustschin			dcr-reg = <0x060 0x020>;
489070bae1fSAnatolij Gustschin			interrupt-parent = <&DMA1>;
490070bae1fSAnatolij Gustschin			interrupts = <0 1>;
491070bae1fSAnatolij Gustschin			#interrupt-cells = <1>;
492070bae1fSAnatolij Gustschin			#address-cells = <0>;
493070bae1fSAnatolij Gustschin			#size-cells = <0>;
494070bae1fSAnatolij Gustschin			interrupt-map = <
495070bae1fSAnatolij Gustschin				0 &UIC0 0x16 4
496070bae1fSAnatolij Gustschin				1 &UIC1 0x16 4>;
497070bae1fSAnatolij Gustschin		};
498070bae1fSAnatolij Gustschin
499070bae1fSAnatolij Gustschin		xor-accel@400200000 {
500070bae1fSAnatolij Gustschin			compatible = "amcc,xor-accelerator";
501070bae1fSAnatolij Gustschin			reg = <0x00000004 0x00200000 0x400>;
502070bae1fSAnatolij Gustschin			interrupt-parent = <&UIC1>;
503070bae1fSAnatolij Gustschin			interrupts = <0x1f 4>;
504070bae1fSAnatolij Gustschin		};
5053de9c9cdSBenjamin Herrenschmidt	};
5063de9c9cdSBenjamin Herrenschmidt
5073de9c9cdSBenjamin Herrenschmidt	chosen {
508036f290dSStefan Roese		linux,stdout-path = "/plb/opb/serial@f0000200";
5093de9c9cdSBenjamin Herrenschmidt	};
5103de9c9cdSBenjamin Herrenschmidt};
511