diff options
author | Shengzhou Liu <Shengzhou.Liu@freescale.com> | 2011-08-25 23:18:21 -0400 |
---|---|---|
committer | Kumar Gala <galak@kernel.crashing.org> | 2011-11-03 14:20:47 -0400 |
commit | 96cc017c5b7ec095ef047d3c1952b6b6bbf98943 (patch) | |
tree | 74f124225552f072152c54ed0241038818b422ee | |
parent | 6ca6ca5d813845533bcaaaeb2ca59d0805a028ca (diff) |
powerpc/p3060qds: Add support for P3060QDS board
The P3060QDS is a Freescale reference board that hosts the six-core P3060 SOC.
The P3060 Processor combines six e500mc Power Architecture processor cores with
high-performance datapath acceleration architecture(DPAA), CoreNet fabric
infrastructure, as well as network and peripheral interfaces.
P3060QDS Board Overview:
Memory subsystem:
- 2G Bytes unbuffered DDR3 SDRAM SO-DIMM(64bit bus)
- 128M Bytes NOR flash single-chip memory
- 16M Bytes SPI flash
- 8K Bytes AT24C64 I2C EEPROM
Ethernet:
- 4x1G + 4x1G/2.5G Ethernet controllers
- 2xRGMII + 1xMII, three VSC8641 PHYs on board
- Suport multiple Vitesse VSC8234 SGMII Cards in Slot1/2/3
PCIe: Two PCI Express 2.0 controllers/ports
USB: Two USB2.0, USB1(TYPE-A) and USB2(TYPE-AB) on board
I2C: Four I2C controllers
UART: Supports up to four UARTs
RapidIO: Supports two serial RapidIO ports
Signed-off-by: Shengzhou Liu <Shengzhou.Liu@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
-rw-r--r-- | arch/powerpc/boot/dts/p3060qds.dts | 238 | ||||
-rw-r--r-- | arch/powerpc/boot/dts/p3060si.dtsi | 719 | ||||
-rw-r--r-- | arch/powerpc/configs/corenet32_smp_defconfig | 1 | ||||
-rw-r--r-- | arch/powerpc/platforms/85xx/Kconfig | 12 | ||||
-rw-r--r-- | arch/powerpc/platforms/85xx/Makefile | 1 | ||||
-rw-r--r-- | arch/powerpc/platforms/85xx/p3060_qds.c | 77 |
6 files changed, 1048 insertions, 0 deletions
diff --git a/arch/powerpc/boot/dts/p3060qds.dts b/arch/powerpc/boot/dts/p3060qds.dts new file mode 100644 index 000000000000..08b9193213e7 --- /dev/null +++ b/arch/powerpc/boot/dts/p3060qds.dts | |||
@@ -0,0 +1,238 @@ | |||
1 | /* | ||
2 | * P3060QDS Device Tree Source | ||
3 | * | ||
4 | * Copyright 2011 Freescale Semiconductor Inc. | ||
5 | * | ||
6 | * Redistribution and use in source and binary forms, with or without | ||
7 | * modification, are permitted provided that the following conditions are met: | ||
8 | * * Redistributions of source code must retain the above copyright | ||
9 | * notice, this list of conditions and the following disclaimer. | ||
10 | * * Redistributions in binary form must reproduce the above copyright | ||
11 | * notice, this list of conditions and the following disclaimer in the | ||
12 | * documentation and/or other materials provided with the distribution. | ||
13 | * * Neither the name of Freescale Semiconductor nor the | ||
14 | * names of its contributors may be used to endorse or promote products | ||
15 | * derived from this software without specific prior written permission. | ||
16 | * | ||
17 | * | ||
18 | * ALTERNATIVELY, this software may be distributed under the terms of the | ||
19 | * GNU General Public License ("GPL") as published by the Free Software | ||
20 | * Foundation, either version 2 of that License or (at your option) any | ||
21 | * later version. | ||
22 | * | ||
23 | * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY | ||
24 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||
25 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||
26 | * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY | ||
27 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||
28 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||
29 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | ||
30 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
31 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||
32 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
33 | */ | ||
34 | |||
35 | /include/ "p3060si.dtsi" | ||
36 | |||
37 | / { | ||
38 | model = "fsl,P3060QDS"; | ||
39 | compatible = "fsl,P3060QDS"; | ||
40 | #address-cells = <2>; | ||
41 | #size-cells = <2>; | ||
42 | interrupt-parent = <&mpic>; | ||
43 | |||
44 | memory { | ||
45 | device_type = "memory"; | ||
46 | }; | ||
47 | |||
48 | dcsr: dcsr@f00000000 { | ||
49 | ranges = <0x00000000 0xf 0x00000000 0x01008000>; | ||
50 | }; | ||
51 | |||
52 | soc: soc@ffe000000 { | ||
53 | spi@110000 { | ||
54 | flash@0 { | ||
55 | #address-cells = <1>; | ||
56 | #size-cells = <1>; | ||
57 | compatible = "spansion,s25sl12801"; | ||
58 | reg = <0>; | ||
59 | spi-max-frequency = <40000000>; /* input clock */ | ||
60 | partition@u-boot { | ||
61 | label = "u-boot"; | ||
62 | reg = <0x00000000 0x00100000>; | ||
63 | read-only; | ||
64 | }; | ||
65 | partition@kernel { | ||
66 | label = "kernel"; | ||
67 | reg = <0x00100000 0x00500000>; | ||
68 | read-only; | ||
69 | }; | ||
70 | partition@dtb { | ||
71 | label = "dtb"; | ||
72 | reg = <0x00600000 0x00100000>; | ||
73 | read-only; | ||
74 | }; | ||
75 | partition@fs { | ||
76 | label = "file system"; | ||
77 | reg = <0x00700000 0x00900000>; | ||
78 | }; | ||
79 | }; | ||
80 | flash@1 { | ||
81 | #address-cells = <1>; | ||
82 | #size-cells = <1>; | ||
83 | compatible = "spansion,en25q32b"; | ||
84 | reg = <1>; | ||
85 | spi-max-frequency = <40000000>; /* input clock */ | ||
86 | partition@spi1 { | ||
87 | label = "spi1"; | ||
88 | reg = <0x00000000 0x00400000>; | ||
89 | }; | ||
90 | }; | ||
91 | flash@2 { | ||
92 | #address-cells = <1>; | ||
93 | #size-cells = <1>; | ||
94 | compatible = "atmel,at45db081d"; | ||
95 | reg = <2>; | ||
96 | spi-max-frequency = <40000000>; /* input clock */ | ||
97 | partition@spi1 { | ||
98 | label = "spi2"; | ||
99 | reg = <0x00000000 0x00100000>; | ||
100 | }; | ||
101 | }; | ||
102 | flash@3 { | ||
103 | #address-cells = <1>; | ||
104 | #size-cells = <1>; | ||
105 | compatible = "spansion,sst25wf040"; | ||
106 | reg = <3>; | ||
107 | spi-max-frequency = <40000000>; /* input clock */ | ||
108 | partition@spi3 { | ||
109 | label = "spi3"; | ||
110 | reg = <0x00000000 0x00080000>; | ||
111 | }; | ||
112 | }; | ||
113 | }; | ||
114 | |||
115 | i2c@118000 { | ||
116 | eeprom@51 { | ||
117 | compatible = "at24,24c256"; | ||
118 | reg = <0x51>; | ||
119 | }; | ||
120 | eeprom@53 { | ||
121 | compatible = "at24,24c256"; | ||
122 | reg = <0x53>; | ||
123 | }; | ||
124 | rtc@68 { | ||
125 | compatible = "dallas,ds3232"; | ||
126 | reg = <0x68>; | ||
127 | interrupts = <0x1 0x1 0 0>; | ||
128 | }; | ||
129 | }; | ||
130 | |||
131 | usb0: usb@210000 { | ||
132 | phy_type = "ulpi"; | ||
133 | }; | ||
134 | |||
135 | usb1: usb@211000 { | ||
136 | dr_mode = "host"; | ||
137 | phy_type = "ulpi"; | ||
138 | }; | ||
139 | }; | ||
140 | |||
141 | rapidio@ffe0c0000 { | ||
142 | reg = <0xf 0xfe0c0000 0 0x11000>; | ||
143 | |||
144 | port1 { | ||
145 | ranges = <0 0 0xc 0x20000000 0 0x10000000>; | ||
146 | }; | ||
147 | port2 { | ||
148 | ranges = <0 0 0xc 0x30000000 0 0x10000000>; | ||
149 | }; | ||
150 | }; | ||
151 | |||
152 | localbus@ffe124000 { | ||
153 | reg = <0xf 0xfe124000 0 0x1000>; | ||
154 | ranges = <0 0 0xf 0xe8000000 0x08000000 | ||
155 | 2 0 0xf 0xffa00000 0x00040000 | ||
156 | 3 0 0xf 0xffdf0000 0x00008000>; | ||
157 | |||
158 | flash@0,0 { | ||
159 | compatible = "cfi-flash"; | ||
160 | reg = <0 0 0x08000000>; | ||
161 | bank-width = <2>; | ||
162 | device-width = <2>; | ||
163 | }; | ||
164 | |||
165 | nand@2,0 { | ||
166 | #address-cells = <1>; | ||
167 | #size-cells = <1>; | ||
168 | compatible = "fsl,elbc-fcm-nand"; | ||
169 | reg = <0x2 0x0 0x40000>; | ||
170 | |||
171 | partition@0 { | ||
172 | label = "NAND U-Boot Image"; | ||
173 | reg = <0x0 0x02000000>; | ||
174 | read-only; | ||
175 | }; | ||
176 | |||
177 | partition@2000000 { | ||
178 | label = "NAND Root File System"; | ||
179 | reg = <0x02000000 0x10000000>; | ||
180 | }; | ||
181 | |||
182 | partition@12000000 { | ||
183 | label = "NAND Compressed RFS Image"; | ||
184 | reg = <0x12000000 0x08000000>; | ||
185 | }; | ||
186 | |||
187 | partition@1a000000 { | ||
188 | label = "NAND Linux Kernel Image"; | ||
189 | reg = <0x1a000000 0x04000000>; | ||
190 | }; | ||
191 | |||
192 | partition@1e000000 { | ||
193 | label = "NAND DTB Image"; | ||
194 | reg = <0x1e000000 0x01000000>; | ||
195 | }; | ||
196 | |||
197 | partition@1f000000 { | ||
198 | label = "NAND Writable User area"; | ||
199 | reg = <0x1f000000 0x21000000>; | ||
200 | }; | ||
201 | }; | ||
202 | |||
203 | board-control@3,0 { | ||
204 | compatible = "fsl,p3060qds-fpga", "fsl,fpga-qixis"; | ||
205 | reg = <3 0 0x100>; | ||
206 | }; | ||
207 | }; | ||
208 | |||
209 | pci0: pcie@ffe200000 { | ||
210 | reg = <0xf 0xfe200000 0 0x1000>; | ||
211 | ranges = <0x02000000 0 0xe0000000 0xc 0x00000000 0x0 0x20000000 | ||
212 | 0x01000000 0 0x00000000 0xf 0xf8000000 0x0 0x00010000>; | ||
213 | pcie@0 { | ||
214 | ranges = <0x02000000 0 0xe0000000 | ||
215 | 0x02000000 0 0xe0000000 | ||
216 | 0 0x20000000 | ||
217 | |||
218 | 0x01000000 0 0x00000000 | ||
219 | 0x01000000 0 0x00000000 | ||
220 | 0 0x00010000>; | ||
221 | }; | ||
222 | }; | ||
223 | |||
224 | pci1: pcie@ffe201000 { | ||
225 | reg = <0xf 0xfe201000 0 0x1000>; | ||
226 | ranges = <0x02000000 0x0 0xe0000000 0xc 0x20000000 0x0 0x20000000 | ||
227 | 0x01000000 0x0 0x00000000 0xf 0xf8010000 0x0 0x00010000>; | ||
228 | pcie@0 { | ||
229 | ranges = <0x02000000 0 0xe0000000 | ||
230 | 0x02000000 0 0xe0000000 | ||
231 | 0 0x20000000 | ||
232 | |||
233 | 0x01000000 0 0x00000000 | ||
234 | 0x01000000 0 0x00000000 | ||
235 | 0 0x00010000>; | ||
236 | }; | ||
237 | }; | ||
238 | }; | ||
diff --git a/arch/powerpc/boot/dts/p3060si.dtsi b/arch/powerpc/boot/dts/p3060si.dtsi new file mode 100644 index 000000000000..68947e157bbc --- /dev/null +++ b/arch/powerpc/boot/dts/p3060si.dtsi | |||
@@ -0,0 +1,719 @@ | |||
1 | /* | ||
2 | * P3060 Silicon Device Tree Source | ||
3 | * | ||
4 | * Copyright 2011 Freescale Semiconductor Inc. | ||
5 | * | ||
6 | * Redistribution and use in source and binary forms, with or without | ||
7 | * modification, are permitted provided that the following conditions are met: | ||
8 | * * Redistributions of source code must retain the above copyright | ||
9 | * notice, this list of conditions and the following disclaimer. | ||
10 | * * Redistributions in binary form must reproduce the above copyright | ||
11 | * notice, this list of conditions and the following disclaimer in the | ||
12 | * documentation and/or other materials provided with the distribution. | ||
13 | * * Neither the name of Freescale Semiconductor nor the | ||
14 | * names of its contributors may be used to endorse or promote products | ||
15 | * derived from this software without specific prior written permission. | ||
16 | * | ||
17 | * | ||
18 | * ALTERNATIVELY, this software may be distributed under the terms of the | ||
19 | * GNU General Public License ("GPL") as published by the Free Software | ||
20 | * Foundation, either version 2 of that License or (at your option) any | ||
21 | * later version. | ||
22 | * | ||
23 | * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY | ||
24 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||
25 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||
26 | * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY | ||
27 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||
28 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||
29 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | ||
30 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
31 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||
32 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
33 | */ | ||
34 | |||
35 | /dts-v1/; | ||
36 | |||
37 | / { | ||
38 | compatible = "fsl,P3060"; | ||
39 | #address-cells = <2>; | ||
40 | #size-cells = <2>; | ||
41 | interrupt-parent = <&mpic>; | ||
42 | |||
43 | aliases { | ||
44 | ccsr = &soc; | ||
45 | dcsr = &dcsr; | ||
46 | |||
47 | serial0 = &serial0; | ||
48 | serial1 = &serial1; | ||
49 | serial2 = &serial2; | ||
50 | serial3 = &serial3; | ||
51 | pci0 = &pci0; | ||
52 | pci1 = &pci1; | ||
53 | usb0 = &usb0; | ||
54 | usb1 = &usb1; | ||
55 | dma0 = &dma0; | ||
56 | dma1 = &dma1; | ||
57 | msi0 = &msi0; | ||
58 | msi1 = &msi1; | ||
59 | msi2 = &msi2; | ||
60 | |||
61 | crypto = &crypto; | ||
62 | sec_jr0 = &sec_jr0; | ||
63 | sec_jr1 = &sec_jr1; | ||
64 | sec_jr2 = &sec_jr2; | ||
65 | sec_jr3 = &sec_jr3; | ||
66 | rtic_a = &rtic_a; | ||
67 | rtic_b = &rtic_b; | ||
68 | rtic_c = &rtic_c; | ||
69 | rtic_d = &rtic_d; | ||
70 | sec_mon = &sec_mon; | ||
71 | }; | ||
72 | |||
73 | cpus { | ||
74 | #address-cells = <1>; | ||
75 | #size-cells = <0>; | ||
76 | |||
77 | cpu0: PowerPC,e500mc@0 { | ||
78 | device_type = "cpu"; | ||
79 | reg = <0>; | ||
80 | next-level-cache = <&L2_0>; | ||
81 | L2_0: l2-cache { | ||
82 | next-level-cache = <&cpc>; | ||
83 | }; | ||
84 | }; | ||
85 | cpu1: PowerPC,e500mc@1 { | ||
86 | device_type = "cpu"; | ||
87 | reg = <1>; | ||
88 | next-level-cache = <&L2_1>; | ||
89 | L2_1: l2-cache { | ||
90 | next-level-cache = <&cpc>; | ||
91 | }; | ||
92 | }; | ||
93 | cpu4: PowerPC,e500mc@4 { | ||
94 | device_type = "cpu"; | ||
95 | reg = <4>; | ||
96 | next-level-cache = <&L2_4>; | ||
97 | L2_4: l2-cache { | ||
98 | next-level-cache = <&cpc>; | ||
99 | }; | ||
100 | }; | ||
101 | cpu5: PowerPC,e500mc@5 { | ||
102 | device_type = "cpu"; | ||
103 | reg = <5>; | ||
104 | next-level-cache = <&L2_5>; | ||
105 | L2_5: l2-cache { | ||
106 | next-level-cache = <&cpc>; | ||
107 | }; | ||
108 | }; | ||
109 | cpu6: PowerPC,e500mc@6 { | ||
110 | device_type = "cpu"; | ||
111 | reg = <6>; | ||
112 | next-level-cache = <&L2_6>; | ||
113 | L2_6: l2-cache { | ||
114 | next-level-cache = <&cpc>; | ||
115 | }; | ||
116 | }; | ||
117 | cpu7: PowerPC,e500mc@7 { | ||
118 | device_type = "cpu"; | ||
119 | reg = <7>; | ||
120 | next-level-cache = <&L2_7>; | ||
121 | L2_7: l2-cache { | ||
122 | next-level-cache = <&cpc>; | ||
123 | }; | ||
124 | }; | ||
125 | }; | ||
126 | |||
127 | dcsr: dcsr@f00000000 { | ||
128 | #address-cells = <1>; | ||
129 | #size-cells = <1>; | ||
130 | compatible = "fsl,dcsr", "simple-bus"; | ||
131 | |||
132 | dcsr-epu@0 { | ||
133 | compatible = "fsl,dcsr-epu"; | ||
134 | interrupts = <52 2 0 0 | ||
135 | 84 2 0 0 | ||
136 | 85 2 0 0>; | ||
137 | interrupt-parent = <&mpic>; | ||
138 | reg = <0x0 0x1000>; | ||
139 | }; | ||
140 | dcsr-npc { | ||
141 | compatible = "fsl,dcsr-npc"; | ||
142 | reg = <0x1000 0x1000 0x1000000 0x8000>; | ||
143 | }; | ||
144 | dcsr-nxc@2000 { | ||
145 | compatible = "fsl,dcsr-nxc"; | ||
146 | reg = <0x2000 0x1000>; | ||
147 | }; | ||
148 | dcsr-corenet { | ||
149 | compatible = "fsl,dcsr-corenet"; | ||
150 | reg = <0x8000 0x1000 0xB0000 0x1000>; | ||
151 | }; | ||
152 | dcsr-dpaa@9000 { | ||
153 | compatible = "fsl,p3060-dcsr-dpaa", "fsl,dcsr-dpaa"; | ||
154 | reg = <0x9000 0x1000>; | ||
155 | }; | ||
156 | dcsr-ocn@11000 { | ||
157 | compatible = "fsl,p3060-dcsr-ocn", "fsl,dcsr-ocn"; | ||
158 | reg = <0x11000 0x1000>; | ||
159 | }; | ||
160 | dcsr-ddr@12000 { | ||
161 | compatible = "fsl,dcsr-ddr"; | ||
162 | dev-handle = <&ddr>; | ||
163 | reg = <0x12000 0x1000>; | ||
164 | }; | ||
165 | dcsr-nal@18000 { | ||
166 | compatible = "fsl,p3060-dcsr-nal", "fsl,dcsr-nal"; | ||
167 | reg = <0x18000 0x1000>; | ||
168 | }; | ||
169 | dcsr-rcpm@22000 { | ||
170 | compatible = "fsl,p3060-dcsr-rcpm", "fsl,dcsr-rcpm"; | ||
171 | reg = <0x22000 0x1000>; | ||
172 | }; | ||
173 | dcsr-cpu-sb-proxy@40000 { | ||
174 | compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy"; | ||
175 | cpu-handle = <&cpu0>; | ||
176 | reg = <0x40000 0x1000>; | ||
177 | }; | ||
178 | dcsr-cpu-sb-proxy@41000 { | ||
179 | compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy"; | ||
180 | cpu-handle = <&cpu1>; | ||
181 | reg = <0x41000 0x1000>; | ||
182 | }; | ||
183 | dcsr-cpu-sb-proxy@44000 { | ||
184 | compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy"; | ||
185 | cpu-handle = <&cpu4>; | ||
186 | reg = <0x44000 0x1000>; | ||
187 | }; | ||
188 | dcsr-cpu-sb-proxy@45000 { | ||
189 | compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy"; | ||
190 | cpu-handle = <&cpu5>; | ||
191 | reg = <0x45000 0x1000>; | ||
192 | }; | ||
193 | dcsr-cpu-sb-proxy@46000 { | ||
194 | compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy"; | ||
195 | cpu-handle = <&cpu6>; | ||
196 | reg = <0x46000 0x1000>; | ||
197 | }; | ||
198 | dcsr-cpu-sb-proxy@47000 { | ||
199 | compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy"; | ||
200 | cpu-handle = <&cpu7>; | ||
201 | reg = <0x47000 0x1000>; | ||
202 | }; | ||
203 | }; | ||
204 | |||
205 | soc: soc@ffe000000 { | ||
206 | #address-cells = <1>; | ||
207 | #size-cells = <1>; | ||
208 | device_type = "soc"; | ||
209 | compatible = "simple-bus"; | ||
210 | ranges = <0x00000000 0xf 0xfe000000 0x1000000>; | ||
211 | reg = <0xf 0xfe000000 0 0x00001000>; | ||
212 | |||
213 | soc-sram-error { | ||
214 | compatible = "fsl,soc-sram-error"; | ||
215 | interrupts = <16 2 1 29>; | ||
216 | }; | ||
217 | |||
218 | corenet-law@0 { | ||
219 | compatible = "fsl,corenet-law"; | ||
220 | reg = <0x0 0x1000>; | ||
221 | fsl,num-laws = <32>; | ||
222 | }; | ||
223 | |||
224 | ddr: memory-controller@8000 { | ||
225 | compatible = "fsl,qoriq-memory-controller-v4.4", "fsl,qoriq-memory-controller"; | ||
226 | reg = <0x8000 0x1000>; | ||
227 | interrupts = <16 2 1 23>; | ||
228 | }; | ||
229 | |||
230 | cpc: l3-cache-controller@10000 { | ||
231 | compatible = "fsl,p3060-l3-cache-controller", "cache"; | ||
232 | reg = <0x10000 0x1000 | ||
233 | 0x11000 0x1000>; | ||
234 | interrupts = <16 2 1 27>; | ||
235 | }; | ||
236 | |||
237 | corenet-cf@18000 { | ||
238 | compatible = "fsl,corenet-cf"; | ||
239 | reg = <0x18000 0x1000>; | ||
240 | interrupts = <16 2 1 31>; | ||
241 | fsl,ccf-num-csdids = <32>; | ||
242 | fsl,ccf-num-snoopids = <32>; | ||
243 | }; | ||
244 | |||
245 | iommu@20000 { | ||
246 | compatible = "fsl,pamu-v1.0", "fsl,pamu"; | ||
247 | reg = <0x20000 0x5000>; | ||
248 | interrupts = < | ||
249 | 24 2 0 0 | ||
250 | 16 2 1 30>; | ||
251 | }; | ||
252 | |||
253 | mpic: pic@40000 { | ||
254 | clock-frequency = <0>; | ||
255 | interrupt-controller; | ||
256 | #address-cells = <0>; | ||
257 | #interrupt-cells = <4>; | ||
258 | reg = <0x40000 0x40000>; | ||
259 | compatible = "fsl,mpic", "chrp,open-pic"; | ||
260 | device_type = "open-pic"; | ||
261 | }; | ||
262 | |||
263 | msi0: msi@41600 { | ||
264 | compatible = "fsl,mpic-msi"; | ||
265 | reg = <0x41600 0x200>; | ||
266 | msi-available-ranges = <0 0x100>; | ||
267 | interrupts = < | ||
268 | 0xe0 0 0 0 | ||
269 | 0xe1 0 0 0 | ||
270 | 0xe2 0 0 0 | ||
271 | 0xe3 0 0 0 | ||
272 | 0xe4 0 0 0 | ||
273 | 0xe5 0 0 0 | ||
274 | 0xe6 0 0 0 | ||
275 | 0xe7 0 0 0>; | ||
276 | }; | ||
277 | |||
278 | msi1: msi@41800 { | ||
279 | compatible = "fsl,mpic-msi"; | ||
280 | reg = <0x41800 0x200>; | ||
281 | msi-available-ranges = <0 0x100>; | ||
282 | interrupts = < | ||
283 | 0xe8 0 0 0 | ||
284 | 0xe9 0 0 0 | ||
285 | 0xea 0 0 0 | ||
286 | 0xeb 0 0 0 | ||
287 | 0xec 0 0 0 | ||
288 | 0xed 0 0 0 | ||
289 | 0xee 0 0 0 | ||
290 | 0xef 0 0 0>; | ||
291 | }; | ||
292 | |||
293 | msi2: msi@41a00 { | ||
294 | compatible = "fsl,mpic-msi"; | ||
295 | reg = <0x41a00 0x200>; | ||
296 | msi-available-ranges = <0 0x100>; | ||
297 | interrupts = < | ||
298 | 0xf0 0 0 0 | ||
299 | 0xf1 0 0 0 | ||
300 | 0xf2 0 0 0 | ||
301 | 0xf3 0 0 0 | ||
302 | 0xf4 0 0 0 | ||
303 | 0xf5 0 0 0 | ||
304 | 0xf6 0 0 0 | ||
305 | 0xf7 0 0 0>; | ||
306 | }; | ||
307 | |||
308 | rmu: rmu@d3000 { | ||
309 | #address-cells = <1>; | ||
310 | #size-cells = <1>; | ||
311 | compatible = "fsl,srio-rmu"; | ||
312 | reg = <0xd3000 0x500>; | ||
313 | ranges = <0x0 0xd3000 0x500>; | ||
314 | |||
315 | message-unit@0 { | ||
316 | compatible = "fsl,srio-msg-unit"; | ||
317 | reg = <0x0 0x100>; | ||
318 | interrupts = < | ||
319 | 60 2 0 0 /* msg1_tx_irq */ | ||
320 | 61 2 0 0>;/* msg1_rx_irq */ | ||
321 | }; | ||
322 | message-unit@100 { | ||
323 | compatible = "fsl,srio-msg-unit"; | ||
324 | reg = <0x100 0x100>; | ||
325 | interrupts = < | ||
326 | 62 2 0 0 /* msg2_tx_irq */ | ||
327 | 63 2 0 0>;/* msg2_rx_irq */ | ||
328 | }; | ||
329 | doorbell-unit@400 { | ||
330 | compatible = "fsl,srio-dbell-unit"; | ||
331 | reg = <0x400 0x80>; | ||
332 | interrupts = < | ||
333 | 56 2 0 0 /* bell_outb_irq */ | ||
334 | 57 2 0 0>;/* bell_inb_irq */ | ||
335 | }; | ||
336 | port-write-unit@4e0 { | ||
337 | compatible = "fsl,srio-port-write-unit"; | ||
338 | reg = <0x4e0 0x20>; | ||
339 | interrupts = <16 2 1 11>; | ||
340 | }; | ||
341 | }; | ||
342 | |||
343 | guts: global-utilities@e0000 { | ||
344 | compatible = "fsl,qoriq-device-config-1.0"; | ||
345 | reg = <0xe0000 0xe00>; | ||
346 | fsl,has-rstcr; | ||
347 | #sleep-cells = <1>; | ||
348 | fsl,liodn-bits = <12>; | ||
349 | }; | ||
350 | |||
351 | pins: global-utilities@e0e00 { | ||
352 | compatible = "fsl,qoriq-pin-control-1.0"; | ||
353 | reg = <0xe0e00 0x200>; | ||
354 | #sleep-cells = <2>; | ||
355 | }; | ||
356 | |||
357 | clockgen: global-utilities@e1000 { | ||
358 | compatible = "fsl,p3060-clockgen", "fsl,qoriq-clockgen-1.0"; | ||
359 | reg = <0xe1000 0x1000>; | ||
360 | clock-frequency = <0>; | ||
361 | }; | ||
362 | |||
363 | rcpm: global-utilities@e2000 { | ||
364 | compatible = "fsl,qoriq-rcpm-1.0"; | ||
365 | reg = <0xe2000 0x1000>; | ||
366 | #sleep-cells = <1>; | ||
367 | }; | ||
368 | |||
369 | sfp: sfp@e8000 { | ||
370 | compatible = "fsl,p3060-sfp", "fsl,qoriq-sfp-1.0"; | ||
371 | reg = <0xe8000 0x1000>; | ||
372 | }; | ||
373 | |||
374 | serdes: serdes@ea000 { | ||
375 | compatible = "fsl,p3060-serdes"; | ||
376 | reg = <0xea000 0x1000>; | ||
377 | }; | ||
378 | |||
379 | dma0: dma@100300 { | ||
380 | #address-cells = <1>; | ||
381 | #size-cells = <1>; | ||
382 | compatible = "fsl,p3060-dma", "fsl,eloplus-dma"; | ||
383 | reg = <0x100300 0x4>; | ||
384 | ranges = <0x0 0x100100 0x200>; | ||
385 | cell-index = <0>; | ||
386 | dma-channel@0 { | ||
387 | compatible = "fsl,p3060-dma-channel", | ||
388 | "fsl,eloplus-dma-channel"; | ||
389 | reg = <0x0 0x80>; | ||
390 | cell-index = <0>; | ||
391 | interrupts = <28 2 0 0>; | ||
392 | }; | ||
393 | dma-channel@80 { | ||
394 | compatible = "fsl,p3060-dma-channel", | ||
395 | "fsl,eloplus-dma-channel"; | ||
396 | reg = <0x80 0x80>; | ||
397 | cell-index = <1>; | ||
398 | interrupts = <29 2 0 0>; | ||
399 | }; | ||
400 | dma-channel@100 { | ||
401 | compatible = "fsl,p3060-dma-channel", | ||
402 | "fsl,eloplus-dma-channel"; | ||
403 | reg = <0x100 0x80>; | ||
404 | cell-index = <2>; | ||
405 | interrupts = <30 2 0 0>; | ||
406 | }; | ||
407 | dma-channel@180 { | ||
408 | compatible = "fsl,p3060-dma-channel", | ||
409 | "fsl,eloplus-dma-channel"; | ||
410 | reg = <0x180 0x80>; | ||
411 | cell-index = <3>; | ||
412 | interrupts = <31 2 0 0>; | ||
413 | }; | ||
414 | }; | ||
415 | |||
416 | dma1: dma@101300 { | ||
417 | #address-cells = <1>; | ||
418 | #size-cells = <1>; | ||
419 | compatible = "fsl,p3060-dma", "fsl,eloplus-dma"; | ||
420 | reg = <0x101300 0x4>; | ||
421 | ranges = <0x0 0x101100 0x200>; | ||
422 | cell-index = <1>; | ||
423 | dma-channel@0 { | ||
424 | compatible = "fsl,p3060-dma-channel", | ||
425 | "fsl,eloplus-dma-channel"; | ||
426 | reg = <0x0 0x80>; | ||
427 | cell-index = <0>; | ||
428 | interrupts = <32 2 0 0>; | ||
429 | }; | ||
430 | dma-channel@80 { | ||
431 | compatible = "fsl,p3060-dma-channel", | ||
432 | "fsl,eloplus-dma-channel"; | ||
433 | reg = <0x80 0x80>; | ||
434 | cell-index = <1>; | ||
435 | interrupts = <33 2 0 0>; | ||
436 | }; | ||
437 | dma-channel@100 { | ||
438 | compatible = "fsl,p3060-dma-channel", | ||
439 | "fsl,eloplus-dma-channel"; | ||
440 | reg = <0x100 0x80>; | ||
441 | cell-index = <2>; | ||
442 | interrupts = <34 2 0 0>; | ||
443 | }; | ||
444 | dma-channel@180 { | ||
445 | compatible = "fsl,p3060-dma-channel", | ||
446 | "fsl,eloplus-dma-channel"; | ||
447 | reg = <0x180 0x80>; | ||
448 | cell-index = <3>; | ||
449 | interrupts = <35 2 0 0>; | ||
450 | }; | ||
451 | }; | ||
452 | |||
453 | spi@110000 { | ||
454 | #address-cells = <1>; | ||
455 | #size-cells = <0>; | ||
456 | compatible = "fsl,p3060-espi", "fsl,mpc8536-espi"; | ||
457 | reg = <0x110000 0x1000>; | ||
458 | interrupts = <53 0x2 0 0>; | ||
459 | fsl,espi-num-chipselects = <4>; | ||
460 | }; | ||
461 | |||
462 | i2c@118000 { | ||
463 | #address-cells = <1>; | ||
464 | #size-cells = <0>; | ||
465 | cell-index = <0>; | ||
466 | compatible = "fsl-i2c"; | ||
467 | reg = <0x118000 0x100>; | ||
468 | interrupts = <38 2 0 0>; | ||
469 | dfsrr; | ||
470 | }; | ||
471 | |||
472 | i2c@118100 { | ||
473 | #address-cells = <1>; | ||
474 | #size-cells = <0>; | ||
475 | cell-index = <1>; | ||
476 | compatible = "fsl-i2c"; | ||
477 | reg = <0x118100 0x100>; | ||
478 | interrupts = <38 2 0 0>; | ||
479 | dfsrr; | ||
480 | }; | ||
481 | |||
482 | i2c@119000 { | ||
483 | #address-cells = <1>; | ||
484 | #size-cells = <0>; | ||
485 | cell-index = <2>; | ||
486 | compatible = "fsl-i2c"; | ||
487 | reg = <0x119000 0x100>; | ||
488 | interrupts = <39 2 0 0>; | ||
489 | dfsrr; | ||
490 | }; | ||
491 | |||
492 | i2c@119100 { | ||
493 | #address-cells = <1>; | ||
494 | #size-cells = <0>; | ||
495 | cell-index = <3>; | ||
496 | compatible = "fsl-i2c"; | ||
497 | reg = <0x119100 0x100>; | ||
498 | interrupts = <39 2 0 0>; | ||
499 | dfsrr; | ||
500 | }; | ||
501 | |||
502 | serial0: serial@11c500 { | ||
503 | cell-index = <0>; | ||
504 | device_type = "serial"; | ||
505 | compatible = "ns16550"; | ||
506 | reg = <0x11c500 0x100>; | ||
507 | clock-frequency = <0>; | ||
508 | interrupts = <36 2 0 0>; | ||
509 | }; | ||
510 | |||
511 | serial1: serial@11c600 { | ||
512 | cell-index = <1>; | ||
513 | device_type = "serial"; | ||
514 | compatible = "ns16550"; | ||
515 | reg = <0x11c600 0x100>; | ||
516 | clock-frequency = <0>; | ||
517 | interrupts = <36 2 0 0>; | ||
518 | }; | ||
519 | |||
520 | serial2: serial@11d500 { | ||
521 | cell-index = <2>; | ||
522 | device_type = "serial"; | ||
523 | compatible = "ns16550"; | ||
524 | reg = <0x11d500 0x100>; | ||
525 | clock-frequency = <0>; | ||
526 | interrupts = <37 2 0 0>; | ||
527 | }; | ||
528 | |||
529 | serial3: serial@11d600 { | ||
530 | cell-index = <3>; | ||
531 | device_type = "serial"; | ||
532 | compatible = "ns16550"; | ||
533 | reg = <0x11d600 0x100>; | ||
534 | clock-frequency = <0>; | ||
535 | interrupts = <37 2 0 0>; | ||
536 | }; | ||
537 | |||
538 | gpio0: gpio@130000 { | ||
539 | compatible = "fsl,p3060-gpio", "fsl,qoriq-gpio"; | ||
540 | reg = <0x130000 0x1000>; | ||
541 | interrupts = <55 2 0 0>; | ||
542 | #gpio-cells = <2>; | ||
543 | gpio-controller; | ||
544 | }; | ||
545 | |||
546 | usb0: usb@210000 { | ||
547 | compatible = "fsl,p3060-usb2-mph", | ||
548 | "fsl,mpc85xx-usb2-mph", "fsl-usb2-mph"; | ||
549 | reg = <0x210000 0x1000>; | ||
550 | #address-cells = <1>; | ||
551 | #size-cells = <0>; | ||
552 | interrupts = <44 0x2 0 0>; | ||
553 | }; | ||
554 | |||
555 | usb1: usb@211000 { | ||
556 | compatible = "fsl,p3060-usb2-dr", | ||
557 | "fsl,mpc85xx-usb2-dr", "fsl-usb2-dr"; | ||
558 | reg = <0x211000 0x1000>; | ||
559 | #address-cells = <1>; | ||
560 | #size-cells = <0>; | ||
561 | interrupts = <45 0x2 0 0>; | ||
562 | }; | ||
563 | |||
564 | crypto: crypto@300000 { | ||
565 | compatible = "fsl,sec-v4.1", "fsl,sec-v4.0"; | ||
566 | #address-cells = <1>; | ||
567 | #size-cells = <1>; | ||
568 | reg = <0x300000 0x10000>; | ||
569 | ranges = <0 0x300000 0x10000>; | ||
570 | interrupt-parent = <&mpic>; | ||
571 | interrupts = <92 2 0 0>; | ||
572 | |||
573 | sec_jr0: jr@1000 { | ||
574 | compatible = "fsl,sec-v4.1-job-ring", "fsl,sec-v4.0-job-ring"; | ||
575 | reg = <0x1000 0x1000>; | ||
576 | interrupt-parent = <&mpic>; | ||
577 | interrupts = <88 2 0 0>; | ||
578 | }; | ||
579 | |||
580 | sec_jr1: jr@2000 { | ||
581 | compatible = "fsl,sec-v4.1-job-ring", "fsl,sec-v4.0-job-ring"; | ||
582 | reg = <0x2000 0x1000>; | ||
583 | interrupt-parent = <&mpic>; | ||
584 | interrupts = <89 2 0 0>; | ||
585 | }; | ||
586 | |||
587 | sec_jr2: jr@3000 { | ||
588 | compatible = "fsl,sec-v4.1-job-ring", "fsl,sec-v4.0-job-ring"; | ||
589 | reg = <0x3000 0x1000>; | ||
590 | interrupt-parent = <&mpic>; | ||
591 | interrupts = <90 2 0 0>; | ||
592 | }; | ||
593 | |||
594 | sec_jr3: jr@4000 { | ||
595 | compatible = "fsl,sec-v4.1-job-ring", "fsl,sec-v4.0-job-ring"; | ||
596 | reg = <0x4000 0x1000>; | ||
597 | interrupt-parent = <&mpic>; | ||
598 | interrupts = <91 2 0 0>; | ||
599 | }; | ||
600 | |||
601 | rtic@6000 { | ||
602 | compatible = "fsl,sec-v4.1-rtic", "fsl,sec-v4.0-rtic"; | ||
603 | #address-cells = <1>; | ||
604 | #size-cells = <1>; | ||
605 | reg = <0x6000 0x100>; | ||
606 | ranges = <0x0 0x6100 0xe00>; | ||
607 | |||
608 | rtic_a: rtic-a@0 { | ||
609 | compatible = "fsl,sec-v4.1-rtic-memory", "fsl,sec-v4.0-rtic-memory"; | ||
610 | reg = <0x00 0x20 0x100 0x80>; | ||
611 | }; | ||
612 | |||
613 | rtic_b: rtic-b@20 { | ||
614 | compatible = "fsl,sec-v4.1-rtic-memory", "fsl,sec-v4.0-rtic-memory"; | ||
615 | reg = <0x20 0x20 0x200 0x80>; | ||
616 | }; | ||
617 | |||
618 | rtic_c: rtic-c@40 { | ||
619 | compatible = "fsl,sec-v4.1-rtic-memory", "fsl,sec-v4.0-rtic-memory"; | ||
620 | reg = <0x40 0x20 0x300 0x80>; | ||
621 | }; | ||
622 | |||
623 | rtic_d: rtic-d@60 { | ||
624 | compatible = "fsl,sec-v4.1-rtic-memory", "fsl,sec-v4.0-rtic-memory"; | ||
625 | reg = <0x60 0x20 0x500 0x80>; | ||
626 | }; | ||
627 | }; | ||
628 | }; | ||
629 | |||
630 | sec_mon: sec_mon@314000 { | ||
631 | compatible = "fsl,sec-v4.1-mon", "fsl,sec-v4.0-mon"; | ||
632 | reg = <0x314000 0x1000>; | ||
633 | interrupt-parent = <&mpic>; | ||
634 | interrupts = <93 2 0 0>; | ||
635 | }; | ||
636 | }; | ||
637 | |||
638 | rapidio@ffe0c0000 { | ||
639 | compatible = "fsl,srio"; | ||
640 | interrupts = <16 2 1 11>; | ||
641 | #address-cells = <2>; | ||
642 | #size-cells = <2>; | ||
643 | fsl,srio-rmu-handle = <&rmu>; | ||
644 | ranges; | ||
645 | |||
646 | port1 { | ||
647 | #address-cells = <2>; | ||
648 | #size-cells = <2>; | ||
649 | cell-index = <1>; | ||
650 | }; | ||
651 | |||
652 | port2 { | ||
653 | #address-cells = <2>; | ||
654 | #size-cells = <2>; | ||
655 | cell-index = <2>; | ||
656 | }; | ||
657 | }; | ||
658 | |||
659 | localbus@ffe124000 { | ||
660 | compatible = "fsl,p3060-elbc", "fsl,elbc", "simple-bus"; | ||
661 | interrupts = <25 2 0 0>; | ||
662 | #address-cells = <2>; | ||
663 | #size-cells = <1>; | ||
664 | }; | ||
665 | |||
666 | pci0: pcie@ffe200000 { | ||
667 | compatible = "fsl,p3060-pcie", "fsl,qoriq-pcie-v2.2"; | ||
668 | device_type = "pci"; | ||
669 | #size-cells = <2>; | ||
670 | #address-cells = <3>; | ||
671 | bus-range = <0x0 0xff>; | ||
672 | clock-frequency = <33333333>; | ||
673 | fsl,msi = <&msi0>; | ||
674 | interrupts = <16 2 1 15>; | ||
675 | pcie@0 { | ||
676 | reg = <0 0 0 0 0>; | ||
677 | #interrupt-cells = <1>; | ||
678 | #size-cells = <2>; | ||
679 | #address-cells = <3>; | ||
680 | device_type = "pci"; | ||
681 | interrupts = <16 2 1 15>; | ||
682 | interrupt-map-mask = <0xf800 0 0 7>; | ||
683 | interrupt-map = < | ||
684 | /* IDSEL 0x0 */ | ||
685 | 0000 0 0 1 &mpic 40 1 0 0 | ||
686 | 0000 0 0 2 &mpic 1 1 0 0 | ||
687 | 0000 0 0 3 &mpic 2 1 0 0 | ||
688 | 0000 0 0 4 &mpic 3 1 0 0 | ||
689 | >; | ||
690 | }; | ||
691 | }; | ||
692 | |||
693 | pci1: pcie@ffe201000 { | ||
694 | compatible = "fsl,p3060-pcie", "fsl,qoriq-pcie-v2.2"; | ||
695 | device_type = "pci"; | ||
696 | #size-cells = <2>; | ||
697 | #address-cells = <3>; | ||
698 | bus-range = <0 0xff>; | ||
699 | clock-frequency = <33333333>; | ||
700 | fsl,msi = <&msi1>; | ||
701 | interrupts = <16 2 1 14>; | ||
702 | pcie@0 { | ||
703 | reg = <0 0 0 0 0>; | ||
704 | #interrupt-cells = <1>; | ||
705 | #size-cells = <2>; | ||
706 | #address-cells = <3>; | ||
707 | device_type = "pci"; | ||
708 | interrupts = <16 2 1 14>; | ||
709 | interrupt-map-mask = <0xf800 0 0 7>; | ||
710 | interrupt-map = < | ||
711 | /* IDSEL 0x0 */ | ||
712 | 0000 0 0 1 &mpic 41 1 0 0 | ||
713 | 0000 0 0 2 &mpic 5 1 0 0 | ||
714 | 0000 0 0 3 &mpic 6 1 0 0 | ||
715 | 0000 0 0 4 &mpic 7 1 0 0 | ||
716 | >; | ||
717 | }; | ||
718 | }; | ||
719 | }; | ||
diff --git a/arch/powerpc/configs/corenet32_smp_defconfig b/arch/powerpc/configs/corenet32_smp_defconfig index 797e1fd1a5b9..f087de6ec03f 100644 --- a/arch/powerpc/configs/corenet32_smp_defconfig +++ b/arch/powerpc/configs/corenet32_smp_defconfig | |||
@@ -23,6 +23,7 @@ CONFIG_MODVERSIONS=y | |||
23 | # CONFIG_BLK_DEV_BSG is not set | 23 | # CONFIG_BLK_DEV_BSG is not set |
24 | CONFIG_P2041_RDB=y | 24 | CONFIG_P2041_RDB=y |
25 | CONFIG_P3041_DS=y | 25 | CONFIG_P3041_DS=y |
26 | CONFIG_P3060_QDS=y | ||
26 | CONFIG_P4080_DS=y | 27 | CONFIG_P4080_DS=y |
27 | CONFIG_P5020_DS=y | 28 | CONFIG_P5020_DS=y |
28 | CONFIG_HIGHMEM=y | 29 | CONFIG_HIGHMEM=y |
diff --git a/arch/powerpc/platforms/85xx/Kconfig b/arch/powerpc/platforms/85xx/Kconfig index 7f84cfd1726e..45023e26aea3 100644 --- a/arch/powerpc/platforms/85xx/Kconfig +++ b/arch/powerpc/platforms/85xx/Kconfig | |||
@@ -197,6 +197,18 @@ config P3041_DS | |||
197 | help | 197 | help |
198 | This option enables support for the P3041 DS board | 198 | This option enables support for the P3041 DS board |
199 | 199 | ||
200 | config P3060_QDS | ||
201 | bool "Freescale P3060 QDS" | ||
202 | select DEFAULT_UIMAGE | ||
203 | select PPC_E500MC | ||
204 | select PHYS_64BIT | ||
205 | select SWIOTLB | ||
206 | select MPC8xxx_GPIO | ||
207 | select HAS_RAPIDIO | ||
208 | select PPC_EPAPR_HV_PIC | ||
209 | help | ||
210 | This option enables support for the P3060 QDS board | ||
211 | |||
200 | config P4080_DS | 212 | config P4080_DS |
201 | bool "Freescale P4080 DS" | 213 | bool "Freescale P4080 DS" |
202 | select DEFAULT_UIMAGE | 214 | select DEFAULT_UIMAGE |
diff --git a/arch/powerpc/platforms/85xx/Makefile b/arch/powerpc/platforms/85xx/Makefile index 39e6c22f06fa..bc5acb95917a 100644 --- a/arch/powerpc/platforms/85xx/Makefile +++ b/arch/powerpc/platforms/85xx/Makefile | |||
@@ -15,6 +15,7 @@ obj-$(CONFIG_P1022_DS) += p1022_ds.o | |||
15 | obj-$(CONFIG_P1023_RDS) += p1023_rds.o | 15 | obj-$(CONFIG_P1023_RDS) += p1023_rds.o |
16 | obj-$(CONFIG_P2041_RDB) += p2041_rdb.o corenet_ds.o | 16 | obj-$(CONFIG_P2041_RDB) += p2041_rdb.o corenet_ds.o |
17 | obj-$(CONFIG_P3041_DS) += p3041_ds.o corenet_ds.o | 17 | obj-$(CONFIG_P3041_DS) += p3041_ds.o corenet_ds.o |
18 | obj-$(CONFIG_P3060_QDS) += p3060_qds.o corenet_ds.o | ||
18 | obj-$(CONFIG_P4080_DS) += p4080_ds.o corenet_ds.o | 19 | obj-$(CONFIG_P4080_DS) += p4080_ds.o corenet_ds.o |
19 | obj-$(CONFIG_P5020_DS) += p5020_ds.o corenet_ds.o | 20 | obj-$(CONFIG_P5020_DS) += p5020_ds.o corenet_ds.o |
20 | obj-$(CONFIG_STX_GP3) += stx_gp3.o | 21 | obj-$(CONFIG_STX_GP3) += stx_gp3.o |
diff --git a/arch/powerpc/platforms/85xx/p3060_qds.c b/arch/powerpc/platforms/85xx/p3060_qds.c new file mode 100644 index 000000000000..01dcf44871e9 --- /dev/null +++ b/arch/powerpc/platforms/85xx/p3060_qds.c | |||
@@ -0,0 +1,77 @@ | |||
1 | /* | ||
2 | * P3060 QDS Setup | ||
3 | * | ||
4 | * Copyright 2011 Freescale Semiconductor Inc. | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify it | ||
7 | * under the terms of the GNU General Public License as published by the | ||
8 | * Free Software Foundation; either version 2 of the License, or (at your | ||
9 | * option) any later version. | ||
10 | */ | ||
11 | |||
12 | #include <linux/kernel.h> | ||
13 | #include <linux/interrupt.h> | ||
14 | #include <linux/phy.h> | ||
15 | #include <asm/machdep.h> | ||
16 | #include <asm/udbg.h> | ||
17 | #include <asm/mpic.h> | ||
18 | #include <linux/of_platform.h> | ||
19 | #include <sysdev/fsl_soc.h> | ||
20 | #include <sysdev/fsl_pci.h> | ||
21 | #include <asm/ehv_pic.h> | ||
22 | #include "corenet_ds.h" | ||
23 | |||
24 | /* | ||
25 | * Called very early, device-tree isn't unflattened | ||
26 | */ | ||
27 | static int __init p3060_qds_probe(void) | ||
28 | { | ||
29 | unsigned long root = of_get_flat_dt_root(); | ||
30 | #ifdef CONFIG_SMP | ||
31 | extern struct smp_ops_t smp_85xx_ops; | ||
32 | #endif | ||
33 | |||
34 | if (of_flat_dt_is_compatible(root, "fsl,P3060QDS")) | ||
35 | return 1; | ||
36 | |||
37 | /* Check if we're running under the Freescale hypervisor */ | ||
38 | if (of_flat_dt_is_compatible(root, "fsl,P3060QDS-hv")) { | ||
39 | ppc_md.init_IRQ = ehv_pic_init; | ||
40 | ppc_md.get_irq = ehv_pic_get_irq; | ||
41 | ppc_md.restart = fsl_hv_restart; | ||
42 | ppc_md.power_off = fsl_hv_halt; | ||
43 | ppc_md.halt = fsl_hv_halt; | ||
44 | #ifdef CONFIG_SMP | ||
45 | /* | ||
46 | * Disable the timebase sync operations because we can't write | ||
47 | * to the timebase registers under the hypervisor. | ||
48 | */ | ||
49 | smp_85xx_ops.give_timebase = NULL; | ||
50 | smp_85xx_ops.take_timebase = NULL; | ||
51 | #endif | ||
52 | return 1; | ||
53 | } | ||
54 | |||
55 | return 0; | ||
56 | } | ||
57 | |||
58 | define_machine(p3060_qds) { | ||
59 | .name = "P3060 QDS", | ||
60 | .probe = p3060_qds_probe, | ||
61 | .setup_arch = corenet_ds_setup_arch, | ||
62 | .init_IRQ = corenet_ds_pic_init, | ||
63 | #ifdef CONFIG_PCI | ||
64 | .pcibios_fixup_bus = fsl_pcibios_fixup_bus, | ||
65 | #endif | ||
66 | .get_irq = mpic_get_coreint_irq, | ||
67 | .restart = fsl_rstcr_restart, | ||
68 | .calibrate_decr = generic_calibrate_decr, | ||
69 | .progress = udbg_progress, | ||
70 | .power_save = e500_idle, | ||
71 | }; | ||
72 | |||
73 | machine_device_initcall(p3060_qds, declare_of_platform_devices); | ||
74 | |||
75 | #ifdef CONFIG_SWIOTLB | ||
76 | machine_arch_initcall(p3060_qds, swiotlb_setup_bus_notifier); | ||
77 | #endif | ||