aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
authorIgal Liberman <Igal.Liberman@freescale.com>2014-09-17 07:08:30 -0400
committerScott Wood <scottwood@freescale.com>2014-11-13 00:53:49 -0500
commit297d35fd2a7d3fbd4e5c0f0c1c18213117ba11ba (patch)
tree111ceba639bd1f06992582cdbe4915728893bc12 /Documentation
parentf3f6743d1b719ba53aa69493bf76b76a8871bbfa (diff)
powerpc/fsl: Frame Manager Device Tree binding document
The Frame Manager (FMan) combines the Ethernet network interfaces with packet distribution logic to provide intelligent distribution and queuing decisions for incoming traffic at line rate. This binding document describes Freescale's Frame Manager hardware attributes that are used by the Frame Manager driver for its basic initialization and configuration. Signed-off-by: Igal Liberman <Igal.Liberman@freescale.com> Signed-off-by: Scott Wood <scottwood@freescale.com>
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/devicetree/bindings/powerpc/fsl/fman.txt529
1 files changed, 529 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/powerpc/fsl/fman.txt b/Documentation/devicetree/bindings/powerpc/fsl/fman.txt
new file mode 100644
index 000000000000..da8e5f25768f
--- /dev/null
+++ b/Documentation/devicetree/bindings/powerpc/fsl/fman.txt
@@ -0,0 +1,529 @@
1=============================================================================
2Freescale Frame Manager Device Bindings
3
4CONTENTS
5 - FMan Node
6 - FMan Port Node
7 - FMan MURAM Node
8 - FMan dTSEC/XGEC/mEMAC Node
9 - FMan IEEE 1588 Node
10 - Example
11
12=============================================================================
13FMan Node
14
15DESCRIPTION
16
17Due to the fact that the FMan is an aggregation of sub-engines (ports, MACs,
18etc.) the FMan node will have child nodes for each of them.
19
20PROPERTIES
21
22- compatible
23 Usage: required
24 Value type: <stringlist>
25 Definition: Must include "fsl,fman"
26 FMan version can be determined via FM_IP_REV_1 register in the
27 FMan block. The offset is 0xc4 from the beginning of the
28 Frame Processing Manager memory map (0xc3000 from the
29 beginning of the FMan node).
30
31- cell-index
32 Usage: required
33 Value type: <u32>
34 Definition: Specifies the index of the FMan unit.
35
36 The cell-index value may be used by the SoC, to identify the
37 FMan unit in the SoC memory map. In the table bellow,
38 there's a description of the cell-index use in each SoC:
39
40 - P1023:
41 register[bit] FMan unit cell-index
42 ============================================================
43 DEVDISR[1] 1 0
44
45 - P2041, P3041, P4080 P5020, P5040:
46 register[bit] FMan unit cell-index
47 ============================================================
48 DCFG_DEVDISR2[6] 1 0
49 DCFG_DEVDISR2[14] 2 1
50 (Second FM available only in P4080 and P5040)
51
52 - B4860, T1040, T2080, T4240:
53 register[bit] FMan unit cell-index
54 ============================================================
55 DCFG_CCSR_DEVDISR2[24] 1 0
56 DCFG_CCSR_DEVDISR2[25] 2 1
57 (Second FM available only in T4240)
58
59 DEVDISR, DCFG_DEVDISR2 and DCFG_CCSR_DEVDISR2 are located in
60 the specific SoC "Device Configuration/Pin Control" Memory
61 Map.
62
63- reg
64 Usage: required
65 Value type: <prop-encoded-array>
66 Definition: A standard property. Specifies the offset of the
67 following configuration registers:
68 - BMI configuration registers.
69 - QMI configuration registers.
70 - DMA configuration registers.
71 - FPM configuration registers.
72 - FMan controller configuration registers.
73
74- ranges
75 Usage: required
76 Value type: <prop-encoded-array>
77 Definition: A standard property.
78
79- clocks
80 Usage: required
81 Value type: <prop-encoded-array>
82 Definition: phandle for fman clock.
83
84- clock-names
85 usage: optional
86 Value type: <stringlist>
87 Definition: A standard property
88
89- interrupts
90 Usage: required
91 Value type: <prop-encoded-array>
92 Definition: A pair of IRQs are specified in this property.
93 The first element is associated with the event interrupts and
94 the second element is associated with the error interrupts.
95
96- fsl,qman-channel-range
97 Usage: required
98 Value type: <prop-encoded-array>
99 Definition: Specifies the range of the available dedicated
100 channels in the FMan. The first cell specifies the beginning
101 of the range and the second cell specifies the number of
102 channels.
103 Further information available at:
104 "Work Queue (WQ) Channel Assignments in the QMan" section
105 in DPAA Reference Manual.
106
107=============================================================================
108FMan MURAM Node
109
110DESCRIPTION
111
112FMan Internal memory - shared between all the FMan modules.
113It contains data structures that are common and written to or read by
114the modules.
115FMan internal memory is split into the following parts:
116 Packet buffering (Tx/Rx FIFOs)
117 Frames internal context
118
119PROPERTIES
120
121- compatible
122 Usage: required
123 Value type: <stringlist>
124 Definition: Must include "fsl,fman-muram"
125
126- ranges
127 Usage: required
128 Value type: <prop-encoded-array>
129 Definition: A standard property.
130 Specifies the multi-user memory offset and the size within
131 the FMan.
132
133EXAMPLE
134
135muram@0 {
136 compatible = "fsl,fman-muram";
137 ranges = <0 0x000000 0x28000>;
138};
139
140=============================================================================
141FMan Port Node
142
143DESCRIPTION
144
145The Frame Manager (FMan) supports several types of hardware ports:
146 Ethernet receiver (RX)
147 Ethernet transmitter (TX)
148 Offline/Host command (O/H)
149
150PROPERTIES
151
152- compatible
153 Usage: required
154 Value type: <stringlist>
155 Definition: A standard property.
156 Must include one of the following:
157 - "fsl,fman-v2-port-oh" for FManV2 OH ports
158 - "fsl,fman-v2-port-rx" for FManV2 RX ports
159 - "fsl,fman-v2-port-tx" for FManV2 TX ports
160 - "fsl,fman-v3-port-oh" for FManV3 OH ports
161 - "fsl,fman-v3-port-rx" for FManV3 RX ports
162 - "fsl,fman-v3-port-tx" for FManV3 TX ports
163
164- cell-index
165 Usage: required
166 Value type: <u32>
167 Definition: Specifies the hardware port id.
168 Each hardware port on the FMan has its own hardware PortID.
169 Super set of all hardware Port IDs available at FMan Reference
170 Manual under "FMan Hardware Ports in Freescale Devices" table.
171
172 Each hardware port is assigned a 4KB, port-specific page in
173 the FMan hardware port memory region (which is part of the
174 FMan memory map). The first 4 KB in the FMan hardware ports
175 memory region is used for what are called common registers.
176 The subsequent 63 4KB pages are allocated to the hardware
177 ports.
178 The page of a specific port is determined by the cell-index.
179
180- reg
181 Usage: required
182 Value type: <prop-encoded-array>
183 Definition: There is one reg region describing the port
184 configuration registers.
185
186EXAMPLE
187
188port@a8000 {
189 cell-index = <0x28>;
190 compatible = "fsl,fman-v2-port-tx";
191 reg = <0xa8000 0x1000>;
192};
193
194port@88000 {
195 cell-index = <0x8>;
196 compatible = "fsl,fman-v2-port-rx";
197 reg = <0x88000 0x1000>;
198};
199
200port@81000 {
201 cell-index = <0x1>;
202 compatible = "fsl,fman-v2-port-oh";
203 reg = <0x81000 0x1000>;
204};
205
206=============================================================================
207FMan dTSEC/XGEC/mEMAC Node
208
209DESCRIPTION
210
211mEMAC/dTSEC/XGEC are the Ethernet network interfaces
212
213PROPERTIES
214
215- compatible
216 Usage: required
217 Value type: <stringlist>
218 Definition: A standard property.
219 Must include one of the following:
220 - "fsl,fman-dtsec" for dTSEC MAC
221 - "fsl,fman-xgec" for XGEC MAC
222 - "fsl,fman-memac for mEMAC MAC
223
224- cell-index
225 Usage: required
226 Value type: <u32>
227 Definition: Specifies the MAC id.
228
229 The cell-index value may be used by the FMan or the SoC, to
230 identify the MAC unit in the FMan (or SoC) memory map.
231 In the tables bellow there's a description of the cell-index
232 use, there are two tables, one describes the use of cell-index
233 by the FMan, the second describes the use by the SoC:
234
235 1. FMan Registers
236
237 FManV2:
238 register[bit] MAC cell-index
239 ============================================================
240 FM_EPI[16] XGEC 8
241 FM_EPI[16+n] dTSECn n-1
242 FM_NPI[11+n] dTSECn n-1
243 n = 1,..,5
244
245 FManV3:
246 register[bit] MAC cell-index
247 ============================================================
248 FM_EPI[16+n] mEMACn n-1
249 FM_EPI[25] mEMAC10 9
250
251 FM_NPI[11+n] mEMACn n-1
252 FM_NPI[10] mEMAC10 9
253 FM_NPI[11] mEMAC9 8
254 n = 1,..8
255
256 FM_EPI and FM_NPI are located in the FMan memory map.
257
258 2. SoC registers:
259
260 - P2041, P3041, P4080 P5020, P5040:
261 register[bit] FMan MAC cell
262 Unit index
263 ============================================================
264 DCFG_DEVDISR2[7] 1 XGEC 8
265 DCFG_DEVDISR2[7+n] 1 dTSECn n-1
266 DCFG_DEVDISR2[15] 2 XGEC 8
267 DCFG_DEVDISR2[15+n] 2 dTSECn n-1
268 n = 1,..5
269
270 - T1040, T2080, T4240, B4860:
271 register[bit] FMan MAC cell
272 Unit index
273 ============================================================
274 DCFG_CCSR_DEVDISR2[n-1] 1 mEMACn n-1
275 DCFG_CCSR_DEVDISR2[11+n] 2 mEMACn n-1
276 n = 1,..6,9,10
277
278 EVDISR, DCFG_DEVDISR2 and DCFG_CCSR_DEVDISR2 are located in
279 the specific SoC "Device Configuration/Pin Control" Memory
280 Map.
281
282- reg
283 Usage: required
284 Value type: <prop-encoded-array>
285 Definition: A standard property.
286
287- fsl,fman-ports
288 Usage: required
289 Value type: <prop-encoded-array>
290 Definition: An array of two phandles - the first references is
291 the FMan RX port and the second is the TX port used by this
292 MAC.
293
294- ptp-timer
295 Usage required
296 Value type: <phandle>
297 Definition: A phandle for 1EEE1588 timer.
298
299EXAMPLE
300
301fman1_tx28: port@a8000 {
302 cell-index = <0x28>;
303 compatible = "fsl,fman-v2-port-tx";
304 reg = <0xa8000 0x1000>;
305};
306
307fman1_rx8: port@88000 {
308 cell-index = <0x8>;
309 compatible = "fsl,fman-v2-port-rx";
310 reg = <0x88000 0x1000>;
311};
312
313ptp-timer: ptp_timer@fe000 {
314 compatible = "fsl,fman-ptp-timer";
315 reg = <0xfe000 0x1000>;
316};
317
318ethernet@e0000 {
319 compatible = "fsl,fman-dtsec";
320 cell-index = <0>;
321 reg = <0xe0000 0x1000>;
322 fsl,fman-ports = <&fman1_rx8 &fman1_tx28>;
323 ptp-timer = <&ptp-timer>;
324};
325
326============================================================================
327FMan IEEE 1588 Node
328
329DESCRIPTION
330
331The FMan interface to support IEEE 1588
332
333
334PROPERTIES
335
336- compatible
337 Usage: required
338 Value type: <stringlist>
339 Definition: A standard property.
340 Must include "fsl,fman-ptp-timer".
341
342- reg
343 Usage: required
344 Value type: <prop-encoded-array>
345 Definition: A standard property.
346
347EXAMPLE
348
349ptp-timer@fe000 {
350 compatible = "fsl,fman-ptp-timer";
351 reg = <0xfe000 0x1000>;
352};
353
354=============================================================================
355Example
356
357fman@400000 {
358 #address-cells = <1>;
359 #size-cells = <1>;
360 cell-index = <1>;
361 compatible = "fsl,fman"
362 ranges = <0 0x400000 0x100000>;
363 reg = <0x400000 0x100000>;
364 clocks = <&fman_clk>;
365 clock-names = "fmanclk";
366 interrupts = <
367 96 2 0 0
368 16 2 1 1>;
369 fsl,qman-channel-range = <0x40 0xc>;
370
371 muram@0 {
372 compatible = "fsl,fman-muram";
373 reg = <0x0 0x28000>;
374 };
375
376 port@81000 {
377 cell-index = <1>;
378 compatible = "fsl,fman-v2-port-oh";
379 reg = <0x81000 0x1000>;
380 };
381
382 port@82000 {
383 cell-index = <2>;
384 compatible = "fsl,fman-v2-port-oh";
385 reg = <0x82000 0x1000>;
386 };
387
388 port@83000 {
389 cell-index = <3>;
390 compatible = "fsl,fman-v2-port-oh";
391 reg = <0x83000 0x1000>;
392 };
393
394 port@84000 {
395 cell-index = <4>;
396 compatible = "fsl,fman-v2-port-oh";
397 reg = <0x84000 0x1000>;
398 };
399
400 port@85000 {
401 cell-index = <5>;
402 compatible = "fsl,fman-v2-port-oh";
403 reg = <0x85000 0x1000>;
404 };
405
406 port@86000 {
407 cell-index = <6>;
408 compatible = "fsl,fman-v2-port-oh";
409 reg = <0x86000 0x1000>;
410 };
411
412 fman1_rx_0x8: port@88000 {
413 cell-index = <0x8>;
414 compatible = "fsl,fman-v2-port-rx";
415 reg = <0x88000 0x1000>;
416 };
417
418 fman1_rx_0x9: port@89000 {
419 cell-index = <0x9>;
420 compatible = "fsl,fman-v2-port-rx";
421 reg = <0x89000 0x1000>;
422 };
423
424 fman1_rx_0xa: port@8a000 {
425 cell-index = <0xa>;
426 compatible = "fsl,fman-v2-port-rx";
427 reg = <0x8a000 0x1000>;
428 };
429
430 fman1_rx_0xb: port@8b000 {
431 cell-index = <0xb>;
432 compatible = "fsl,fman-v2-port-rx";
433 reg = <0x8b000 0x1000>;
434 };
435
436 fman1_rx_0xc: port@8c000 {
437 cell-index = <0xc>;
438 compatible = "fsl,fman-v2-port-rx";
439 reg = <0x8c000 0x1000>;
440 };
441
442 fman1_rx_0x10: port@90000 {
443 cell-index = <0x10>;
444 compatible = "fsl,fman-v2-port-rx";
445 reg = <0x90000 0x1000>;
446 };
447
448 fman1_tx_0x28: port@a8000 {
449 cell-index = <0x28>;
450 compatible = "fsl,fman-v2-port-tx";
451 reg = <0xa8000 0x1000>;
452 };
453
454 fman1_tx_0x29: port@a9000 {
455 cell-index = <0x29>;
456 compatible = "fsl,fman-v2-port-tx";
457 reg = <0xa9000 0x1000>;
458 };
459
460 fman1_tx_0x2a: port@aa000 {
461 cell-index = <0x2a>;
462 compatible = "fsl,fman-v2-port-tx";
463 reg = <0xaa000 0x1000>;
464 };
465
466 fman1_tx_0x2b: port@ab000 {
467 cell-index = <0x2b>;
468 compatible = "fsl,fman-v2-port-tx";
469 reg = <0xab000 0x1000>;
470 };
471
472 fman1_tx_0x2c: port@ac0000 {
473 cell-index = <0x2c>;
474 compatible = "fsl,fman-v2-port-tx";
475 reg = <0xac000 0x1000>;
476 };
477
478 fman1_tx_0x30: port@b0000 {
479 cell-index = <0x30>;
480 compatible = "fsl,fman-v2-port-tx";
481 reg = <0xb0000 0x1000>;
482 };
483
484 ethernet@e0000 {
485 compatible = "fsl,fman-dtsec";
486 cell-index = <0>;
487 reg = <0xe0000 0x1000>;
488 fsl,fman-ports = <&fman1_rx_0x8 &fman1_tx_0x28>;
489 };
490
491 ethernet@e2000 {
492 compatible = "fsl,fman-dtsec";
493 cell-index = <1>;
494 reg = <0xe2000 0x1000>;
495 fsl,fman-ports = <&fman1_rx_0x9 &fman1_tx_0x29>;
496 };
497
498 ethernet@e4000 {
499 compatible = "fsl,fman-dtsec";
500 cell-index = <2>;
501 reg = <0xe4000 0x1000>;
502 fsl,fman-ports = <&fman1_rx_0xa &fman1_tx_0x2a>;
503 };
504
505 ethernet@e6000 {
506 compatible = "fsl,fman-dtsec";
507 cell-index = <3>;
508 reg = <0xe6000 0x1000>;
509 fsl,fman-ports = <&fman1_rx_0xb &fman1_tx_0x2b>;
510 };
511
512 ethernet@e8000 {
513 compatible = "fsl,fman-dtsec";
514 cell-index = <4>;
515 reg = <0xf0000 0x1000>;
516 fsl,fman-ports = <&fman1_rx_0xc &fman1_tx_0x2c>;
517
518 ethernet@f0000 {
519 cell-index = <8>;
520 compatible = "fsl,fman-xgec";
521 reg = <0xf0000 0x1000>;
522 fsl,fman-ports = <&fman1_rx_0x10 &fman1_tx_0x30>;
523 };
524
525 ptp-timer@fe000 {
526 compatible = "fsl,fman-ptp-timer";
527 reg = <0xfe000 0x1000>;
528 };
529};