xref: /openbmc/linux/arch/powerpc/boot/dts/glacier.dts (revision 86bc917d)
1c06cf7daSStefan Roese/*
2c06cf7daSStefan Roese * Device Tree Source for AMCC Glacier (460GT)
3c06cf7daSStefan Roese *
45a6543e8SStefan Roese * Copyright 2008-2010 DENX Software Engineering, Stefan Roese <sr@denx.de>
5c06cf7daSStefan Roese *
6c06cf7daSStefan Roese * This file is licensed under the terms of the GNU General Public
7c06cf7daSStefan Roese * License version 2.  This program is licensed "as is" without
8c06cf7daSStefan Roese * any warranty of any kind, whether express or implied.
9c06cf7daSStefan Roese */
10c06cf7daSStefan Roese
1171f34979SDavid Gibson/dts-v1/;
1271f34979SDavid Gibson
13c06cf7daSStefan Roese/ {
14c06cf7daSStefan Roese	#address-cells = <2>;
15c06cf7daSStefan Roese	#size-cells = <1>;
16c06cf7daSStefan Roese	model = "amcc,glacier";
17ded563cfSJosh Boyer	compatible = "amcc,glacier";
1871f34979SDavid Gibson	dcr-parent = <&{/cpus/cpu@0}>;
19c06cf7daSStefan Roese
20c06cf7daSStefan Roese	aliases {
21c06cf7daSStefan Roese		ethernet0 = &EMAC0;
22c06cf7daSStefan Roese		ethernet1 = &EMAC1;
23c06cf7daSStefan Roese		ethernet2 = &EMAC2;
24c06cf7daSStefan Roese		ethernet3 = &EMAC3;
25c06cf7daSStefan Roese		serial0 = &UART0;
26c06cf7daSStefan Roese		serial1 = &UART1;
27c06cf7daSStefan Roese	};
28c06cf7daSStefan Roese
29c06cf7daSStefan Roese	cpus {
30c06cf7daSStefan Roese		#address-cells = <1>;
31c06cf7daSStefan Roese		#size-cells = <0>;
32c06cf7daSStefan Roese
33c06cf7daSStefan Roese		cpu@0 {
34c06cf7daSStefan Roese			device_type = "cpu";
35c06cf7daSStefan Roese			model = "PowerPC,460GT";
3671f34979SDavid Gibson			reg = <0x00000000>;
37c06cf7daSStefan Roese			clock-frequency = <0>; /* Filled in by U-Boot */
38c06cf7daSStefan Roese			timebase-frequency = <0>; /* Filled in by U-Boot */
3971f34979SDavid Gibson			i-cache-line-size = <32>;
4071f34979SDavid Gibson			d-cache-line-size = <32>;
4171f34979SDavid Gibson			i-cache-size = <32768>;
4271f34979SDavid Gibson			d-cache-size = <32768>;
43c06cf7daSStefan Roese			dcr-controller;
44c06cf7daSStefan Roese			dcr-access-method = "native";
455a6543e8SStefan Roese			next-level-cache = <&L2C0>;
46c06cf7daSStefan Roese		};
47c06cf7daSStefan Roese	};
48c06cf7daSStefan Roese
49c06cf7daSStefan Roese	memory {
50c06cf7daSStefan Roese		device_type = "memory";
5171f34979SDavid Gibson		reg = <0x00000000 0x00000000 0x00000000>; /* Filled in by U-Boot */
52c06cf7daSStefan Roese	};
53c06cf7daSStefan Roese
54c06cf7daSStefan Roese	UIC0: interrupt-controller0 {
55c06cf7daSStefan Roese		compatible = "ibm,uic-460gt","ibm,uic";
56c06cf7daSStefan Roese		interrupt-controller;
57c06cf7daSStefan Roese		cell-index = <0>;
5871f34979SDavid Gibson		dcr-reg = <0x0c0 0x009>;
59c06cf7daSStefan Roese		#address-cells = <0>;
60c06cf7daSStefan Roese		#size-cells = <0>;
61c06cf7daSStefan Roese		#interrupt-cells = <2>;
62c06cf7daSStefan Roese	};
63c06cf7daSStefan Roese
64c06cf7daSStefan Roese	UIC1: interrupt-controller1 {
65c06cf7daSStefan Roese		compatible = "ibm,uic-460gt","ibm,uic";
66c06cf7daSStefan Roese		interrupt-controller;
67c06cf7daSStefan Roese		cell-index = <1>;
6871f34979SDavid Gibson		dcr-reg = <0x0d0 0x009>;
69c06cf7daSStefan Roese		#address-cells = <0>;
70c06cf7daSStefan Roese		#size-cells = <0>;
71c06cf7daSStefan Roese		#interrupt-cells = <2>;
7271f34979SDavid Gibson		interrupts = <0x1e 0x4 0x1f 0x4>; /* cascade */
73c06cf7daSStefan Roese		interrupt-parent = <&UIC0>;
74c06cf7daSStefan Roese	};
75c06cf7daSStefan Roese
76c06cf7daSStefan Roese	UIC2: interrupt-controller2 {
77c06cf7daSStefan Roese		compatible = "ibm,uic-460gt","ibm,uic";
78c06cf7daSStefan Roese		interrupt-controller;
79c06cf7daSStefan Roese		cell-index = <2>;
8071f34979SDavid Gibson		dcr-reg = <0x0e0 0x009>;
81c06cf7daSStefan Roese		#address-cells = <0>;
82c06cf7daSStefan Roese		#size-cells = <0>;
83c06cf7daSStefan Roese		#interrupt-cells = <2>;
8471f34979SDavid Gibson		interrupts = <0xa 0x4 0xb 0x4>; /* cascade */
85c06cf7daSStefan Roese		interrupt-parent = <&UIC0>;
86c06cf7daSStefan Roese	};
87c06cf7daSStefan Roese
88c06cf7daSStefan Roese	UIC3: interrupt-controller3 {
89c06cf7daSStefan Roese		compatible = "ibm,uic-460gt","ibm,uic";
90c06cf7daSStefan Roese		interrupt-controller;
91c06cf7daSStefan Roese		cell-index = <3>;
9271f34979SDavid Gibson		dcr-reg = <0x0f0 0x009>;
93c06cf7daSStefan Roese		#address-cells = <0>;
94c06cf7daSStefan Roese		#size-cells = <0>;
95c06cf7daSStefan Roese		#interrupt-cells = <2>;
9671f34979SDavid Gibson		interrupts = <0x10 0x4 0x11 0x4>; /* cascade */
97c06cf7daSStefan Roese		interrupt-parent = <&UIC0>;
98c06cf7daSStefan Roese	};
99c06cf7daSStefan Roese
100c06cf7daSStefan Roese	SDR0: sdr {
101c06cf7daSStefan Roese		compatible = "ibm,sdr-460gt";
10271f34979SDavid Gibson		dcr-reg = <0x00e 0x002>;
103c06cf7daSStefan Roese	};
104c06cf7daSStefan Roese
105c06cf7daSStefan Roese	CPR0: cpr {
106c06cf7daSStefan Roese		compatible = "ibm,cpr-460gt";
10771f34979SDavid Gibson		dcr-reg = <0x00c 0x002>;
108c06cf7daSStefan Roese	};
109c06cf7daSStefan Roese
1105a6543e8SStefan Roese	L2C0: l2c {
1115a6543e8SStefan Roese		compatible = "ibm,l2-cache-460gt", "ibm,l2-cache";
1125a6543e8SStefan Roese		dcr-reg = <0x020 0x008		/* Internal SRAM DCR's */
1135a6543e8SStefan Roese			   0x030 0x008>;	/* L2 cache DCR's */
1145a6543e8SStefan Roese		cache-line-size = <32>;		/* 32 bytes */
1155a6543e8SStefan Roese		cache-size = <262144>;		/* L2, 256K */
1165a6543e8SStefan Roese		interrupt-parent = <&UIC1>;
1175a6543e8SStefan Roese		interrupts = <11 1>;
1185a6543e8SStefan Roese	};
1195a6543e8SStefan Roese
120c06cf7daSStefan Roese	plb {
121c06cf7daSStefan Roese		compatible = "ibm,plb-460gt", "ibm,plb4";
122c06cf7daSStefan Roese		#address-cells = <2>;
123c06cf7daSStefan Roese		#size-cells = <1>;
124c06cf7daSStefan Roese		ranges;
125c06cf7daSStefan Roese		clock-frequency = <0>; /* Filled in by U-Boot */
126c06cf7daSStefan Roese
127c06cf7daSStefan Roese		SDRAM0: sdram {
128c06cf7daSStefan Roese			compatible = "ibm,sdram-460gt", "ibm,sdram-405gp";
12971f34979SDavid Gibson			dcr-reg = <0x010 0x002>;
130c06cf7daSStefan Roese		};
131c06cf7daSStefan Roese
1325a6543e8SStefan Roese		CRYPTO: crypto@180000 {
13357308499SMike Williams			compatible = "amcc,ppc460gt-crypto", "amcc,ppc460ex-crypto",
13457308499SMike Williams				"amcc,ppc4xx-crypto";
1355a6543e8SStefan Roese			reg = <4 0x00180000 0x80400>;
1365a6543e8SStefan Roese			interrupt-parent = <&UIC0>;
1375a6543e8SStefan Roese			interrupts = <0x1d 0x4>;
1385a6543e8SStefan Roese		};
1395a6543e8SStefan Roese
14057308499SMike Williams		HWRNG: hwrng@110000 {
14157308499SMike Williams			compatible = "amcc,ppc460ex-rng", "ppc4xx-rng";
14257308499SMike Williams			reg = <4 0x00110000 0x50>;
14357308499SMike Williams		};
14457308499SMike Williams
145c06cf7daSStefan Roese		MAL0: mcmal {
146c06cf7daSStefan Roese			compatible = "ibm,mcmal-460gt", "ibm,mcmal2";
14771f34979SDavid Gibson			dcr-reg = <0x180 0x062>;
148c06cf7daSStefan Roese			num-tx-chans = <4>;
14971f34979SDavid Gibson			num-rx-chans = <32>;
150c06cf7daSStefan Roese			#address-cells = <0>;
151c06cf7daSStefan Roese			#size-cells = <0>;
152c06cf7daSStefan Roese			interrupt-parent = <&UIC2>;
15371f34979SDavid Gibson			interrupts = <	/*TXEOB*/ 0x6 0x4
15471f34979SDavid Gibson					/*RXEOB*/ 0x7 0x4
15571f34979SDavid Gibson					/*SERR*/  0x3 0x4
15671f34979SDavid Gibson					/*TXDE*/  0x4 0x4
15771f34979SDavid Gibson					/*RXDE*/  0x5 0x4>;
15871f34979SDavid Gibson			desc-base-addr-high = <0x8>;
159c06cf7daSStefan Roese		};
160c06cf7daSStefan Roese
161c06cf7daSStefan Roese		POB0: opb {
162c06cf7daSStefan Roese			compatible = "ibm,opb-460gt", "ibm,opb";
163c06cf7daSStefan Roese			#address-cells = <1>;
164c06cf7daSStefan Roese			#size-cells = <1>;
16571f34979SDavid Gibson			ranges = <0xb0000000 0x00000004 0xb0000000 0x50000000>;
166c06cf7daSStefan Roese			clock-frequency = <0>; /* Filled in by U-Boot */
167c06cf7daSStefan Roese
168c06cf7daSStefan Roese			EBC0: ebc {
169c06cf7daSStefan Roese				compatible = "ibm,ebc-460gt", "ibm,ebc";
17071f34979SDavid Gibson				dcr-reg = <0x012 0x002>;
171c06cf7daSStefan Roese				#address-cells = <2>;
172c06cf7daSStefan Roese				#size-cells = <1>;
173c06cf7daSStefan Roese				clock-frequency = <0>; /* Filled in by U-Boot */
1745020231bSStefan Roese				/* ranges property is supplied by U-Boot */
17571f34979SDavid Gibson				interrupts = <0x6 0x4>;
176c06cf7daSStefan Roese				interrupt-parent = <&UIC1>;
1775020231bSStefan Roese
1785020231bSStefan Roese				nor_flash@0,0 {
1795020231bSStefan Roese					compatible = "amd,s29gl512n", "cfi-flash";
1805020231bSStefan Roese					bank-width = <2>;
18171f34979SDavid Gibson					reg = <0x00000000 0x00000000 0x04000000>;
1825020231bSStefan Roese					#address-cells = <1>;
1835020231bSStefan Roese					#size-cells = <1>;
1845020231bSStefan Roese					partition@0 {
1855020231bSStefan Roese						label = "kernel";
18671f34979SDavid Gibson						reg = <0x00000000 0x001e0000>;
1875020231bSStefan Roese					};
1885020231bSStefan Roese					partition@1e0000 {
1895020231bSStefan Roese						label = "dtb";
19071f34979SDavid Gibson						reg = <0x001e0000 0x00020000>;
1915020231bSStefan Roese					};
1925020231bSStefan Roese					partition@200000 {
1935020231bSStefan Roese						label = "ramdisk";
19471f34979SDavid Gibson						reg = <0x00200000 0x01400000>;
1955020231bSStefan Roese					};
1965020231bSStefan Roese					partition@1600000 {
1975020231bSStefan Roese						label = "jffs2";
19871f34979SDavid Gibson						reg = <0x01600000 0x00400000>;
1995020231bSStefan Roese					};
2005020231bSStefan Roese					partition@1a00000 {
2015020231bSStefan Roese						label = "user";
20271f34979SDavid Gibson						reg = <0x01a00000 0x02560000>;
2035020231bSStefan Roese					};
2045020231bSStefan Roese					partition@3f60000 {
2055020231bSStefan Roese						label = "env";
20671f34979SDavid Gibson						reg = <0x03f60000 0x00040000>;
2075020231bSStefan Roese					};
2085020231bSStefan Roese					partition@3fa0000 {
2095020231bSStefan Roese						label = "u-boot";
21071f34979SDavid Gibson						reg = <0x03fa0000 0x00060000>;
2115020231bSStefan Roese					};
2125020231bSStefan Roese				};
2135a6543e8SStefan Roese
2145a6543e8SStefan Roese				ndfc@3,0 {
2155a6543e8SStefan Roese					compatible = "ibm,ndfc";
2165a6543e8SStefan Roese					reg = <0x00000003 0x00000000 0x00002000>;
2175a6543e8SStefan Roese					ccr = <0x00001000>;
2185a6543e8SStefan Roese					bank-settings = <0x80002222>;
2195a6543e8SStefan Roese					#address-cells = <1>;
2205a6543e8SStefan Roese					#size-cells = <1>;
2215a6543e8SStefan Roese
2225a6543e8SStefan Roese					nand {
2235a6543e8SStefan Roese						#address-cells = <1>;
2245a6543e8SStefan Roese						#size-cells = <1>;
2255a6543e8SStefan Roese
2265a6543e8SStefan Roese						partition@0 {
2275a6543e8SStefan Roese							label = "u-boot";
2285a6543e8SStefan Roese							reg = <0x00000000 0x00100000>;
2295a6543e8SStefan Roese						};
2305a6543e8SStefan Roese						partition@100000 {
2315a6543e8SStefan Roese							label = "user";
2325a6543e8SStefan Roese							reg = <0x00000000 0x03f00000>;
2335a6543e8SStefan Roese						};
2345a6543e8SStefan Roese					};
2355a6543e8SStefan Roese				};
236c06cf7daSStefan Roese			};
237c06cf7daSStefan Roese
238c06cf7daSStefan Roese			UART0: serial@ef600300 {
239c06cf7daSStefan Roese				device_type = "serial";
240c06cf7daSStefan Roese				compatible = "ns16550";
24171f34979SDavid Gibson				reg = <0xef600300 0x00000008>;
24271f34979SDavid Gibson				virtual-reg = <0xef600300>;
243c06cf7daSStefan Roese				clock-frequency = <0>; /* Filled in by U-Boot */
244c06cf7daSStefan Roese				current-speed = <0>; /* Filled in by U-Boot */
245c06cf7daSStefan Roese				interrupt-parent = <&UIC1>;
24671f34979SDavid Gibson				interrupts = <0x1 0x4>;
247c06cf7daSStefan Roese			};
248c06cf7daSStefan Roese
249c06cf7daSStefan Roese			UART1: serial@ef600400 {
250c06cf7daSStefan Roese				device_type = "serial";
251c06cf7daSStefan Roese				compatible = "ns16550";
25271f34979SDavid Gibson				reg = <0xef600400 0x00000008>;
25371f34979SDavid Gibson				virtual-reg = <0xef600400>;
254c06cf7daSStefan Roese				clock-frequency = <0>; /* Filled in by U-Boot */
255c06cf7daSStefan Roese				current-speed = <0>; /* Filled in by U-Boot */
256c06cf7daSStefan Roese				interrupt-parent = <&UIC0>;
25771f34979SDavid Gibson				interrupts = <0x1 0x4>;
258c06cf7daSStefan Roese			};
259c06cf7daSStefan Roese
260c06cf7daSStefan Roese			UART2: serial@ef600500 {
261c06cf7daSStefan Roese				device_type = "serial";
262c06cf7daSStefan Roese				compatible = "ns16550";
26371f34979SDavid Gibson				reg = <0xef600500 0x00000008>;
26471f34979SDavid Gibson				virtual-reg = <0xef600500>;
265c06cf7daSStefan Roese				clock-frequency = <0>; /* Filled in by U-Boot */
266c06cf7daSStefan Roese				current-speed = <0>; /* Filled in by U-Boot */
267c06cf7daSStefan Roese				interrupt-parent = <&UIC1>;
2689a52e392SStefan Roese				interrupts = <28 0x4>;
269c06cf7daSStefan Roese			};
270c06cf7daSStefan Roese
271c06cf7daSStefan Roese			UART3: serial@ef600600 {
272c06cf7daSStefan Roese				device_type = "serial";
273c06cf7daSStefan Roese				compatible = "ns16550";
27471f34979SDavid Gibson				reg = <0xef600600 0x00000008>;
27571f34979SDavid Gibson				virtual-reg = <0xef600600>;
276c06cf7daSStefan Roese				clock-frequency = <0>; /* Filled in by U-Boot */
277c06cf7daSStefan Roese				current-speed = <0>; /* Filled in by U-Boot */
278c06cf7daSStefan Roese				interrupt-parent = <&UIC1>;
2799a52e392SStefan Roese				interrupts = <29 0x4>;
280c06cf7daSStefan Roese			};
281c06cf7daSStefan Roese
282c06cf7daSStefan Roese			IIC0: i2c@ef600700 {
283c06cf7daSStefan Roese				compatible = "ibm,iic-460gt", "ibm,iic";
28471f34979SDavid Gibson				reg = <0xef600700 0x00000014>;
285c06cf7daSStefan Roese				interrupt-parent = <&UIC0>;
28671f34979SDavid Gibson				interrupts = <0x2 0x4>;
2875a6543e8SStefan Roese				#address-cells = <1>;
2885a6543e8SStefan Roese				#size-cells = <0>;
2895a6543e8SStefan Roese				rtc@68 {
2905edc2aaeSStefan Agner					compatible = "st,m41t80";
2915a6543e8SStefan Roese					reg = <0x68>;
2925a6543e8SStefan Roese					interrupt-parent = <&UIC2>;
2935a6543e8SStefan Roese					interrupts = <0x19 0x8>;
2945a6543e8SStefan Roese				};
2955a6543e8SStefan Roese				sttm@48 {
2965a6543e8SStefan Roese					compatible = "ad,ad7414";
2975a6543e8SStefan Roese					reg = <0x48>;
2985a6543e8SStefan Roese					interrupt-parent = <&UIC1>;
2995a6543e8SStefan Roese					interrupts = <0x14 0x8>;
3005a6543e8SStefan Roese				};
301c06cf7daSStefan Roese			};
302c06cf7daSStefan Roese
303c06cf7daSStefan Roese			IIC1: i2c@ef600800 {
304c06cf7daSStefan Roese				compatible = "ibm,iic-460gt", "ibm,iic";
30571f34979SDavid Gibson				reg = <0xef600800 0x00000014>;
306c06cf7daSStefan Roese				interrupt-parent = <&UIC0>;
30771f34979SDavid Gibson				interrupts = <0x3 0x4>;
308c06cf7daSStefan Roese			};
309c06cf7daSStefan Roese
310c06cf7daSStefan Roese			ZMII0: emac-zmii@ef600d00 {
311c06cf7daSStefan Roese				compatible = "ibm,zmii-460gt", "ibm,zmii";
31271f34979SDavid Gibson				reg = <0xef600d00 0x0000000c>;
313c06cf7daSStefan Roese			};
314c06cf7daSStefan Roese
315c06cf7daSStefan Roese			RGMII0: emac-rgmii@ef601500 {
316c06cf7daSStefan Roese				compatible = "ibm,rgmii-460gt", "ibm,rgmii";
31771f34979SDavid Gibson				reg = <0xef601500 0x00000008>;
318c06cf7daSStefan Roese				has-mdio;
319c06cf7daSStefan Roese			};
320c06cf7daSStefan Roese
321c06cf7daSStefan Roese			RGMII1: emac-rgmii@ef601600 {
322c06cf7daSStefan Roese				compatible = "ibm,rgmii-460gt", "ibm,rgmii";
32371f34979SDavid Gibson				reg = <0xef601600 0x00000008>;
324c06cf7daSStefan Roese				has-mdio;
325c06cf7daSStefan Roese			};
326c06cf7daSStefan Roese
327c06cf7daSStefan Roese			TAH0: emac-tah@ef601350 {
328c06cf7daSStefan Roese				compatible = "ibm,tah-460gt", "ibm,tah";
32971f34979SDavid Gibson				reg = <0xef601350 0x00000030>;
330c06cf7daSStefan Roese			};
331c06cf7daSStefan Roese
332c06cf7daSStefan Roese			TAH1: emac-tah@ef601450 {
333c06cf7daSStefan Roese				compatible = "ibm,tah-460gt", "ibm,tah";
33471f34979SDavid Gibson				reg = <0xef601450 0x00000030>;
335c06cf7daSStefan Roese			};
336c06cf7daSStefan Roese
337c06cf7daSStefan Roese			EMAC0: ethernet@ef600e00 {
338c06cf7daSStefan Roese				device_type = "network";
3395a6543e8SStefan Roese				compatible = "ibm,emac-460gt", "ibm,emac4sync";
340c06cf7daSStefan Roese				interrupt-parent = <&EMAC0>;
34171f34979SDavid Gibson				interrupts = <0x0 0x1>;
342c06cf7daSStefan Roese				#interrupt-cells = <1>;
343c06cf7daSStefan Roese				#address-cells = <0>;
344c06cf7daSStefan Roese				#size-cells = <0>;
34571f34979SDavid Gibson				interrupt-map = </*Status*/ 0x0 &UIC2 0x10 0x4
34671f34979SDavid Gibson						 /*Wake*/   0x1 &UIC2 0x14 0x4>;
3475a6543e8SStefan Roese				reg = <0xef600e00 0x000000c4>;
348c06cf7daSStefan Roese				local-mac-address = [000000000000]; /* Filled in by U-Boot */
349c06cf7daSStefan Roese				mal-device = <&MAL0>;
350c06cf7daSStefan Roese				mal-tx-channel = <0>;
351c06cf7daSStefan Roese				mal-rx-channel = <0>;
352c06cf7daSStefan Roese				cell-index = <0>;
35371f34979SDavid Gibson				max-frame-size = <9000>;
35471f34979SDavid Gibson				rx-fifo-size = <4096>;
35571f34979SDavid Gibson				tx-fifo-size = <2048>;
356835ad8e7SDave Mitchell				rx-fifo-size-gige = <16384>;
357c06cf7daSStefan Roese				phy-mode = "rgmii";
35871f34979SDavid Gibson				phy-map = <0x00000000>;
359c06cf7daSStefan Roese				rgmii-device = <&RGMII0>;
360c06cf7daSStefan Roese				rgmii-channel = <0>;
361c06cf7daSStefan Roese				tah-device = <&TAH0>;
362c06cf7daSStefan Roese				tah-channel = <0>;
363c06cf7daSStefan Roese				has-inverted-stacr-oc;
364c06cf7daSStefan Roese				has-new-stacr-staopc;
365c06cf7daSStefan Roese			};
366c06cf7daSStefan Roese
367c06cf7daSStefan Roese			EMAC1: ethernet@ef600f00 {
368c06cf7daSStefan Roese				device_type = "network";
3695a6543e8SStefan Roese				compatible = "ibm,emac-460gt", "ibm,emac4sync";
370c06cf7daSStefan Roese				interrupt-parent = <&EMAC1>;
37171f34979SDavid Gibson				interrupts = <0x0 0x1>;
372c06cf7daSStefan Roese				#interrupt-cells = <1>;
373c06cf7daSStefan Roese				#address-cells = <0>;
374c06cf7daSStefan Roese				#size-cells = <0>;
37571f34979SDavid Gibson				interrupt-map = </*Status*/ 0x0 &UIC2 0x11 0x4
37671f34979SDavid Gibson						 /*Wake*/   0x1 &UIC2 0x15 0x4>;
3775a6543e8SStefan Roese				reg = <0xef600f00 0x000000c4>;
378c06cf7daSStefan Roese				local-mac-address = [000000000000]; /* Filled in by U-Boot */
379c06cf7daSStefan Roese				mal-device = <&MAL0>;
380c06cf7daSStefan Roese				mal-tx-channel = <1>;
381c06cf7daSStefan Roese				mal-rx-channel = <8>;
382c06cf7daSStefan Roese				cell-index = <1>;
38371f34979SDavid Gibson				max-frame-size = <9000>;
38471f34979SDavid Gibson				rx-fifo-size = <4096>;
38571f34979SDavid Gibson				tx-fifo-size = <2048>;
386835ad8e7SDave Mitchell				rx-fifo-size-gige = <16384>;
387c06cf7daSStefan Roese				phy-mode = "rgmii";
38871f34979SDavid Gibson				phy-map = <0x00000000>;
389c06cf7daSStefan Roese				rgmii-device = <&RGMII0>;
390c06cf7daSStefan Roese				rgmii-channel = <1>;
391c06cf7daSStefan Roese				tah-device = <&TAH1>;
392a6190a84SStefan Roese				tah-channel = <1>;
393c06cf7daSStefan Roese				has-inverted-stacr-oc;
394c06cf7daSStefan Roese				has-new-stacr-staopc;
395a6190a84SStefan Roese				mdio-device = <&EMAC0>;
396c06cf7daSStefan Roese			};
397c06cf7daSStefan Roese
398c06cf7daSStefan Roese			EMAC2: ethernet@ef601100 {
399c06cf7daSStefan Roese				device_type = "network";
4005a6543e8SStefan Roese				compatible = "ibm,emac-460gt", "ibm,emac4sync";
401c06cf7daSStefan Roese				interrupt-parent = <&EMAC2>;
40271f34979SDavid Gibson				interrupts = <0x0 0x1>;
403c06cf7daSStefan Roese				#interrupt-cells = <1>;
404c06cf7daSStefan Roese				#address-cells = <0>;
405c06cf7daSStefan Roese				#size-cells = <0>;
40671f34979SDavid Gibson				interrupt-map = </*Status*/ 0x0 &UIC2 0x12 0x4
40771f34979SDavid Gibson						 /*Wake*/   0x1 &UIC2 0x16 0x4>;
4085a6543e8SStefan Roese				reg = <0xef601100 0x000000c4>;
409c06cf7daSStefan Roese				local-mac-address = [000000000000]; /* Filled in by U-Boot */
410c06cf7daSStefan Roese				mal-device = <&MAL0>;
411c06cf7daSStefan Roese				mal-tx-channel = <2>;
41271f34979SDavid Gibson				mal-rx-channel = <16>;
413c06cf7daSStefan Roese				cell-index = <2>;
41471f34979SDavid Gibson				max-frame-size = <9000>;
41571f34979SDavid Gibson				rx-fifo-size = <4096>;
41671f34979SDavid Gibson				tx-fifo-size = <2048>;
417835ad8e7SDave Mitchell				rx-fifo-size-gige = <16384>;
418835ad8e7SDave Mitchell				tx-fifo-size-gige = <16384>; /* emac2&3 only */
419c06cf7daSStefan Roese				phy-mode = "rgmii";
42071f34979SDavid Gibson				phy-map = <0x00000000>;
421c06cf7daSStefan Roese				rgmii-device = <&RGMII1>;
422c06cf7daSStefan Roese				rgmii-channel = <0>;
423c06cf7daSStefan Roese				has-inverted-stacr-oc;
424c06cf7daSStefan Roese				has-new-stacr-staopc;
425a6190a84SStefan Roese				mdio-device = <&EMAC0>;
426c06cf7daSStefan Roese			};
427c06cf7daSStefan Roese
428c06cf7daSStefan Roese			EMAC3: ethernet@ef601200 {
429c06cf7daSStefan Roese				device_type = "network";
4305a6543e8SStefan Roese				compatible = "ibm,emac-460gt", "ibm,emac4sync";
431c06cf7daSStefan Roese				interrupt-parent = <&EMAC3>;
43271f34979SDavid Gibson				interrupts = <0x0 0x1>;
433c06cf7daSStefan Roese				#interrupt-cells = <1>;
434c06cf7daSStefan Roese				#address-cells = <0>;
435c06cf7daSStefan Roese				#size-cells = <0>;
43671f34979SDavid Gibson				interrupt-map = </*Status*/ 0x0 &UIC2 0x13 0x4
43771f34979SDavid Gibson						 /*Wake*/   0x1 &UIC2 0x17 0x4>;
4385a6543e8SStefan Roese				reg = <0xef601200 0x000000c4>;
439c06cf7daSStefan Roese				local-mac-address = [000000000000]; /* Filled in by U-Boot */
440c06cf7daSStefan Roese				mal-device = <&MAL0>;
441c06cf7daSStefan Roese				mal-tx-channel = <3>;
44271f34979SDavid Gibson				mal-rx-channel = <24>;
443c06cf7daSStefan Roese				cell-index = <3>;
44471f34979SDavid Gibson				max-frame-size = <9000>;
44571f34979SDavid Gibson				rx-fifo-size = <4096>;
44671f34979SDavid Gibson				tx-fifo-size = <2048>;
447835ad8e7SDave Mitchell				rx-fifo-size-gige = <16384>;
448835ad8e7SDave Mitchell				tx-fifo-size-gige = <16384>; /* emac2&3 only */
449c06cf7daSStefan Roese				phy-mode = "rgmii";
45071f34979SDavid Gibson				phy-map = <0x00000000>;
451c06cf7daSStefan Roese				rgmii-device = <&RGMII1>;
452c06cf7daSStefan Roese				rgmii-channel = <1>;
453c06cf7daSStefan Roese				has-inverted-stacr-oc;
454c06cf7daSStefan Roese				has-new-stacr-staopc;
455a6190a84SStefan Roese				mdio-device = <&EMAC0>;
456c06cf7daSStefan Roese			};
457c06cf7daSStefan Roese		};
458c06cf7daSStefan Roese
459c06cf7daSStefan Roese		PCIX0: pci@c0ec00000 {
460c06cf7daSStefan Roese			device_type = "pci";
461c06cf7daSStefan Roese			#interrupt-cells = <1>;
462c06cf7daSStefan Roese			#size-cells = <2>;
463c06cf7daSStefan Roese			#address-cells = <3>;
464c06cf7daSStefan Roese			compatible = "ibm,plb-pcix-460gt", "ibm,plb-pcix";
465c06cf7daSStefan Roese			primary;
466c06cf7daSStefan Roese			large-inbound-windows;
467c06cf7daSStefan Roese			enable-msi-hole;
46871f34979SDavid Gibson			reg = <0x0000000c 0x0ec00000   0x00000008	/* Config space access */
46971f34979SDavid Gibson			       0x00000000 0x00000000 0x00000000		/* no IACK cycles */
47071f34979SDavid Gibson			       0x0000000c 0x0ed00000   0x00000004   /* Special cycles */
47171f34979SDavid Gibson			       0x0000000c 0x0ec80000 0x00000100	/* Internal registers */
47271f34979SDavid Gibson			       0x0000000c 0x0ec80100  0x000000fc>;	/* Internal messaging registers */
473c06cf7daSStefan Roese
474c06cf7daSStefan Roese			/* Outbound ranges, one memory and one IO,
475c06cf7daSStefan Roese			 * later cannot be changed
476c06cf7daSStefan Roese			 */
47771f34979SDavid Gibson			ranges = <0x02000000 0x00000000 0x80000000 0x0000000d 0x80000000 0x00000000 0x80000000
4785a6543e8SStefan Roese				  0x02000000 0x00000000 0x00000000 0x0000000c 0x0ee00000 0x00000000 0x00100000
47971f34979SDavid Gibson				  0x01000000 0x00000000 0x00000000 0x0000000c 0x08000000 0x00000000 0x00010000>;
480c06cf7daSStefan Roese
481c06cf7daSStefan Roese			/* Inbound 2GB range starting at 0 */
48271f34979SDavid Gibson			dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x0 0x80000000>;
483c06cf7daSStefan Roese
484c06cf7daSStefan Roese			/* This drives busses 0 to 0x3f */
48571f34979SDavid Gibson			bus-range = <0x0 0x3f>;
486c06cf7daSStefan Roese
487c06cf7daSStefan Roese			/* All PCI interrupts are routed to ext IRQ 2 -> UIC1-0 */
48871f34979SDavid Gibson			interrupt-map-mask = <0x0 0x0 0x0 0x0>;
48971f34979SDavid Gibson			interrupt-map = < 0x0 0x0 0x0 0x0 &UIC1 0x0 0x8 >;
490c06cf7daSStefan Roese		};
491c06cf7daSStefan Roese
49286bc917dSMichael Ellerman		PCIE0: pcie@d00000000 {
493c06cf7daSStefan Roese			device_type = "pci";
494c06cf7daSStefan Roese			#interrupt-cells = <1>;
495c06cf7daSStefan Roese			#size-cells = <2>;
496c06cf7daSStefan Roese			#address-cells = <3>;
497c06cf7daSStefan Roese			compatible = "ibm,plb-pciex-460ex", "ibm,plb-pciex";
498c06cf7daSStefan Roese			primary;
49971f34979SDavid Gibson			port = <0x0>; /* port number */
50071f34979SDavid Gibson			reg = <0x0000000d 0x00000000 0x20000000	/* Config space access */
50171f34979SDavid Gibson			       0x0000000c 0x08010000 0x00001000>;	/* Registers */
50271f34979SDavid Gibson			dcr-reg = <0x100 0x020>;
50371f34979SDavid Gibson			sdr-base = <0x300>;
504c06cf7daSStefan Roese
505c06cf7daSStefan Roese			/* Outbound ranges, one memory and one IO,
506c06cf7daSStefan Roese			 * later cannot be changed
507c06cf7daSStefan Roese			 */
50871f34979SDavid Gibson			ranges = <0x02000000 0x00000000 0x80000000 0x0000000e 0x00000000 0x00000000 0x80000000
5095a6543e8SStefan Roese				  0x02000000 0x00000000 0x00000000 0x0000000f 0x00000000 0x00000000 0x00100000
51071f34979SDavid Gibson				  0x01000000 0x00000000 0x00000000 0x0000000f 0x80000000 0x00000000 0x00010000>;
511c06cf7daSStefan Roese
512c06cf7daSStefan Roese			/* Inbound 2GB range starting at 0 */
51371f34979SDavid Gibson			dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x0 0x80000000>;
514c06cf7daSStefan Roese
515c06cf7daSStefan Roese			/* This drives busses 40 to 0x7f */
51671f34979SDavid Gibson			bus-range = <0x40 0x7f>;
517c06cf7daSStefan Roese
518c06cf7daSStefan Roese			/* Legacy interrupts (note the weird polarity, the bridge seems
519c06cf7daSStefan Roese			 * to invert PCIe legacy interrupts).
520c06cf7daSStefan Roese			 * We are de-swizzling here because the numbers are actually for
521c06cf7daSStefan Roese			 * port of the root complex virtual P2P bridge. But I want
522c06cf7daSStefan Roese			 * to avoid putting a node for it in the tree, so the numbers
523c06cf7daSStefan Roese			 * below are basically de-swizzled numbers.
524c06cf7daSStefan Roese			 * The real slot is on idsel 0, so the swizzling is 1:1
525c06cf7daSStefan Roese			 */
52671f34979SDavid Gibson			interrupt-map-mask = <0x0 0x0 0x0 0x7>;
527c06cf7daSStefan Roese			interrupt-map = <
52871f34979SDavid Gibson				0x0 0x0 0x0 0x1 &UIC3 0xc 0x4 /* swizzled int A */
52971f34979SDavid Gibson				0x0 0x0 0x0 0x2 &UIC3 0xd 0x4 /* swizzled int B */
53071f34979SDavid Gibson				0x0 0x0 0x0 0x3 &UIC3 0xe 0x4 /* swizzled int C */
53171f34979SDavid Gibson				0x0 0x0 0x0 0x4 &UIC3 0xf 0x4 /* swizzled int D */>;
532c06cf7daSStefan Roese		};
533c06cf7daSStefan Roese
53486bc917dSMichael Ellerman		PCIE1: pcie@d20000000 {
535c06cf7daSStefan Roese			device_type = "pci";
536c06cf7daSStefan Roese			#interrupt-cells = <1>;
537c06cf7daSStefan Roese			#size-cells = <2>;
538c06cf7daSStefan Roese			#address-cells = <3>;
539c06cf7daSStefan Roese			compatible = "ibm,plb-pciex-460ex", "ibm,plb-pciex";
540c06cf7daSStefan Roese			primary;
54171f34979SDavid Gibson			port = <0x1>; /* port number */
54271f34979SDavid Gibson			reg = <0x0000000d 0x20000000 0x20000000	/* Config space access */
54371f34979SDavid Gibson			       0x0000000c 0x08011000 0x00001000>;	/* Registers */
54471f34979SDavid Gibson			dcr-reg = <0x120 0x020>;
54571f34979SDavid Gibson			sdr-base = <0x340>;
546c06cf7daSStefan Roese
547c06cf7daSStefan Roese			/* Outbound ranges, one memory and one IO,
548c06cf7daSStefan Roese			 * later cannot be changed
549c06cf7daSStefan Roese			 */
55071f34979SDavid Gibson			ranges = <0x02000000 0x00000000 0x80000000 0x0000000e 0x80000000 0x00000000 0x80000000
5515a6543e8SStefan Roese				  0x02000000 0x00000000 0x00000000 0x0000000f 0x00100000 0x00000000 0x00100000
55271f34979SDavid Gibson				  0x01000000 0x00000000 0x00000000 0x0000000f 0x80010000 0x00000000 0x00010000>;
553c06cf7daSStefan Roese
554c06cf7daSStefan Roese			/* Inbound 2GB range starting at 0 */
55571f34979SDavid Gibson			dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x0 0x80000000>;
556c06cf7daSStefan Roese
557c06cf7daSStefan Roese			/* This drives busses 80 to 0xbf */
55871f34979SDavid Gibson			bus-range = <0x80 0xbf>;
559c06cf7daSStefan Roese
560c06cf7daSStefan Roese			/* Legacy interrupts (note the weird polarity, the bridge seems
561c06cf7daSStefan Roese			 * to invert PCIe legacy interrupts).
562c06cf7daSStefan Roese			 * We are de-swizzling here because the numbers are actually for
563c06cf7daSStefan Roese			 * port of the root complex virtual P2P bridge. But I want
564c06cf7daSStefan Roese			 * to avoid putting a node for it in the tree, so the numbers
565c06cf7daSStefan Roese			 * below are basically de-swizzled numbers.
566c06cf7daSStefan Roese			 * The real slot is on idsel 0, so the swizzling is 1:1
567c06cf7daSStefan Roese			 */
56871f34979SDavid Gibson			interrupt-map-mask = <0x0 0x0 0x0 0x7>;
569c06cf7daSStefan Roese			interrupt-map = <
57071f34979SDavid Gibson				0x0 0x0 0x0 0x1 &UIC3 0x10 0x4 /* swizzled int A */
57171f34979SDavid Gibson				0x0 0x0 0x0 0x2 &UIC3 0x11 0x4 /* swizzled int B */
57271f34979SDavid Gibson				0x0 0x0 0x0 0x3 &UIC3 0x12 0x4 /* swizzled int C */
57371f34979SDavid Gibson				0x0 0x0 0x0 0x4 &UIC3 0x13 0x4 /* swizzled int D */>;
574c06cf7daSStefan Roese		};
575c06cf7daSStefan Roese	};
576c06cf7daSStefan Roese};
577