aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
authorJoe Liccese <joe.liccese@freescale.com>2012-06-25 13:22:09 -0400
committerScott Wood <scottwood@freescale.com>2013-06-24 20:52:36 -0400
commit8c43d2b0ca10cea9eb62d8996fb93f330be88ada (patch)
tree10131e85a4f2bd5c881447c42d581daf665e274d /Documentation
parent1a5272866f87d7fbf04dc8060f8da3e8456490ab (diff)
powerpc: Add T4 LAC device tree binding & defs
The Interlaken is a narrow, high speed channelized chip-to-chip interface. To facilitate interoperability between a data path device and a look-aside co-processor, the Interlaken Look-Aside protocol is defined for short transaction-related transfers. Although based on the Interlaken protocol, Interlaken Look-Aside is not directly compatible with Interlaken and can be considered a different operation mode. The Interlaken LA controller connects internal platform to Interlaken serial interface. It accepts LA command through software portals, which are system memory mapped 4KB spaces. The LA commands are then translated into the Interlaken control words and data words, which are sent on TX side to TCAM through SerDes lanes. Signed-off-by: Joe Liccese <joe.liccese@freescale.com> Signed-off-by: Scott Wood <scottwood@freescale.com>
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/devicetree/bindings/powerpc/fsl/interlaken-lac.txt309
1 files changed, 309 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/powerpc/fsl/interlaken-lac.txt b/Documentation/devicetree/bindings/powerpc/fsl/interlaken-lac.txt
new file mode 100644
index 000000000000..641bc13983e1
--- /dev/null
+++ b/Documentation/devicetree/bindings/powerpc/fsl/interlaken-lac.txt
@@ -0,0 +1,309 @@
1===============================================================================
2Freescale Interlaken Look-Aside Controller Device Bindings
3Copyright 2012 Freescale Semiconductor Inc.
4
5CONTENTS
6 - Interlaken Look-Aside Controller (LAC) Node
7 - Example LAC Node
8 - Interlaken Look-Aside Controller (LAC) Software Portal Node
9 - Interlaken Look-Aside Controller (LAC) Software Portal Child Nodes
10 - Example LAC SWP Node with Child Nodes
11
12==============================================================================
13Interlaken Look-Aside Controller (LAC) Node
14
15DESCRIPTION
16
17The Interlaken is a narrow, high speed channelized chip-to-chip interface. To
18facilitate interoperability between a data path device and a look-aside
19co-processor, the Interlaken Look-Aside protocol is defined for short
20transaction-related transfers. Although based on the Interlaken protocol,
21Interlaken Look-Aside is not directly compatible with Interlaken and can be
22considered a different operation mode.
23
24The Interlaken LA controller connects internal platform to Interlaken serial
25interface. It accepts LA command through software portals, which are system
26memory mapped 4KB spaces. The LA commands are then translated into the
27Interlaken control words and data words, which are sent on TX side to TCAM
28through SerDes lanes.
29
30There are two 4KiB spaces defined within the LAC global register memory map.
31There is a full register set at 0x0000-0x0FFF (also known as the "hypervisor"
32version), and a subset at 0x1000-0x1FFF. The former is a superset of the
33latter, and includes certain registers that should not be accessible to
34partitioned software. Separate nodes are used for each region, with a phandle
35linking the hypervisor node to the normal operating node.
36
37PROPERTIES
38
39 - compatible
40 Usage: required
41 Value type: <string>
42 Definition: Must include "fsl,interlaken-lac". This represents only
43 those LAC CCSR registers not protected in partitioned
44 software. The version of the device is determined by the LAC
45 IP Block Revision Register (IPBRR0) at offset 0x0BF8.
46
47 Table of correspondences between IPBRR0 values and example
48 chips:
49 Value Device
50 ----------- -------
51 0x02000100 T4240
52
53 The Hypervisor node has a different compatible. It must include
54 "fsl,interlaken-lac-hv". This node represents the protected
55 LAC register space and is required except inside a partition
56 where access to the hypervisor node is to be denied.
57
58 - fsl,non-hv-node
59 Usage: required in "fsl,interlaken-lac-hv"
60 Value type: <phandle>
61 Definition: Points to the non-protected LAC CCSR mapped register space
62 node.
63
64 - reg
65 Usage: required
66 Value type: <prop-encoded-array>
67 Definition: A standard property. The first resource represents the
68 Interlaken LAC configuration registers.
69
70 - interrupts:
71 Usage: required in non-hv node only
72 Value type: <prop-encoded-array>
73 Definition: Interrupt mapping for Interlaken LAC error IRQ.
74
75EXAMPLE
76 lac: lac@229000 {
77 compatible = "fsl,interlaken-lac"
78 reg = <0x229000 0x1000>;
79 interrupts = <16 2 1 18>;
80 };
81
82 lac-hv@228000 {
83 compatible = "fsl,interlaken-lac-hv"
84 reg = <0x228000 0x1000>;
85 fsl,non-hv-node = <&lac>;
86 };
87
88===============================================================================
89Interlaken Look-Aside Controller (LAC) Software Portal Container Node
90
91DESCRIPTION
92The Interlaken Look-Aside Controller (LAC) utilizes Software Portals to accept
93Interlaken Look-Aside (ILA) commands. The Interlaken LAC software portal
94memory map occupies 128KB of memory space. The software portal memory space is
95intended to be cache-enabled. WIMG for each software space is required to be
960010 if stashing is enabled; otherwise, WIMG can be 0000 or 0010.
97
98PROPERTIES
99
100 - #address-cells
101 Usage: required
102 Value type: <u32>
103 Definition: A standard property. Must have a value of 1.
104
105 - #size-cells
106 Usage: required
107 Value type: <u32>
108 Definition: A standard property. Must have a value of 1.
109
110 - compatible
111 Usage: required
112 Value type: <string>
113 Definition: Must include "fsl,interlaken-lac-portals"
114
115 - ranges
116 Usage: required
117 Value type: <prop-encoded-array>
118 Definition: A standard property. Specifies the address and length
119 of the LAC portal memory space.
120
121===============================================================================
122Interlaken Look-Aside Controller (LAC) Software Portals Child Nodes
123
124DESCRIPTION
125There are up to 24 available software portals with each software portal
126requiring 4KB of consecutive memory within the software portal memory mapped
127space.
128
129PROPERTIES
130
131 - compatible
132 Usage: required
133 Value type: <string>
134 Definition: Must include "fsl,interlaken-lac-portal-vX.Y" where X is
135 the Major version (IP_MJ) found in the LAC IP Block Revision
136 Register (IPBRR0), at offset 0x0BF8, and Y is the Minor version
137 (IP_MN).
138
139 Table of correspondences between version values and example chips:
140 Value Device
141 ------ -------
142 1.0 T4240
143
144 - reg
145 Usage: required
146 Value type: <prop-encoded-array>
147 Definition: A standard property. The first resource represents the
148 Interlaken LAC software portal registers.
149
150 - fsl,liodn
151 Value type: <u32>
152 Definition: The logical I/O device number (LIODN) for this device. The
153 LIODN is a number expressed by this device and used to perform
154 look-ups in the IOMMU (PAMU) address table when performing
155 DMAs. This property is automatically added by u-boot.
156
157===============================================================================
158EXAMPLE
159
160lac-portals {
161 #address-cells = <0x1>;
162 #size-cells = <0x1>;
163 compatible = "fsl,interlaken-lac-portals";
164 ranges = <0x0 0xf 0xf4400000 0x20000>;
165
166 lportal0: lac-portal@0 {
167 compatible = "fsl,interlaken-lac-portal-v1.0";
168 fsl,liodn = <0x204>;
169 reg = <0x0 0x1000>;
170 };
171
172 lportal1: lac-portal@1000 {
173 compatible = "fsl,interlaken-lac-portal-v1.0";
174 fsl,liodn = <0x205>;
175 reg = <0x1000 0x1000>;
176 };
177
178 lportal2: lac-portal@2000 {
179 compatible = "fsl,interlaken-lac-portal-v1.0";
180 fsl,liodn = <0x206>;
181 reg = <0x2000 0x1000>;
182 };
183
184 lportal3: lac-portal@3000 {
185 compatible = "fsl,interlaken-lac-portal-v1.0";
186 fsl,liodn = <0x207>;
187 reg = <0x3000 0x1000>;
188 };
189
190 lportal4: lac-portal@4000 {
191 compatible = "fsl,interlaken-lac-portal-v1.0";
192 fsl,liodn = <0x208>;
193 reg = <0x4000 0x1000>;
194 };
195
196 lportal5: lac-portal@5000 {
197 compatible = "fsl,interlaken-lac-portal-v1.0";
198 fsl,liodn = <0x209>;
199 reg = <0x5000 0x1000>;
200 };
201
202 lportal6: lac-portal@6000 {
203 compatible = "fsl,interlaken-lac-portal-v1.0";
204 fsl,liodn = <0x20A>;
205 reg = <0x6000 0x1000>;
206 };
207
208 lportal7: lac-portal@7000 {
209 compatible = "fsl,interlaken-lac-portal-v1.0";
210 fsl,liodn = <0x20B>;
211 reg = <0x7000 0x1000>;
212 };
213
214 lportal8: lac-portal@8000 {
215 compatible = "fsl,interlaken-lac-portal-v1.0";
216 fsl,liodn = <0x20C>;
217 reg = <0x8000 0x1000>;
218 };
219
220 lportal9: lac-portal@9000 {
221 compatible = "fsl,interlaken-lac-portal-v1.0";
222 fsl,liodn = <0x20D>;
223 reg = <0x9000 0x1000>;
224 };
225
226 lportal10: lac-portal@A000 {
227 compatible = "fsl,interlaken-lac-portal-v1.0";
228 fsl,liodn = <0x20E>;
229 reg = <0xA000 0x1000>;
230 };
231
232 lportal11: lac-portal@B000 {
233 compatible = "fsl,interlaken-lac-portal-v1.0";
234 fsl,liodn = <0x20F>;
235 reg = <0xB000 0x1000>;
236 };
237
238 lportal12: lac-portal@C000 {
239 compatible = "fsl,interlaken-lac-portal-v1.0";
240 fsl,liodn = <0x210>;
241 reg = <0xC000 0x1000>;
242 };
243
244 lportal13: lac-portal@D000 {
245 compatible = "fsl,interlaken-lac-portal-v1.0";
246 fsl,liodn = <0x211>;
247 reg = <0xD000 0x1000>;
248 };
249
250 lportal14: lac-portal@E000 {
251 compatible = "fsl,interlaken-lac-portal-v1.0";
252 fsl,liodn = <0x212>;
253 reg = <0xE000 0x1000>;
254 };
255
256 lportal15: lac-portal@F000 {
257 compatible = "fsl,interlaken-lac-portal-v1.0";
258 fsl,liodn = <0x213>;
259 reg = <0xF000 0x1000>;
260 };
261
262 lportal16: lac-portal@10000 {
263 compatible = "fsl,interlaken-lac-portal-v1.0";
264 fsl,liodn = <0x214>;
265 reg = <0x10000 0x1000>;
266 };
267
268 lportal17: lac-portal@11000 {
269 compatible = "fsl,interlaken-lac-portal-v1.0";
270 fsl,liodn = <0x215>;
271 reg = <0x11000 0x1000>;
272 };
273
274 lportal8: lac-portal@1200 {
275 compatible = "fsl,interlaken-lac-portal-v1.0";
276 fsl,liodn = <0x216>;
277 reg = <0x12000 0x1000>;
278 };
279
280 lportal19: lac-portal@13000 {
281 compatible = "fsl,interlaken-lac-portal-v1.0";
282 fsl,liodn = <0x217>;
283 reg = <0x13000 0x1000>;
284 };
285
286 lportal20: lac-portal@14000 {
287 compatible = "fsl,interlaken-lac-portal-v1.0";
288 fsl,liodn = <0x218>;
289 reg = <0x14000 0x1000>;
290 };
291
292 lportal21: lac-portal@15000 {
293 compatible = "fsl,interlaken-lac-portal-v1.0";
294 fsl,liodn = <0x219>;
295 reg = <0x15000 0x1000>;
296 };
297
298 lportal22: lac-portal@16000 {
299 compatible = "fsl,interlaken-lac-portal-v1.0";
300 fsl,liodn = <0x21A>;
301 reg = <0x16000 0x1000>;
302 };
303
304 lportal23: lac-portal@17000 {
305 compatible = "fsl,interlaken-lac-portal-v1.0";
306 fsl,liodn = <0x21B>;
307 reg = <0x17000 0x1000>;
308 };
309};