Merge tag 'docs-4.15-2' of git://git.lwn.net/linux
[sfrench/cifs-2.6.git] / Documentation / devicetree / bindings / soc / fsl / bman.txt
1 QorIQ DPAA Buffer Manager Device Tree Bindings
2
3 Copyright (C) 2008 - 2014 Freescale Semiconductor Inc.
4
5 CONTENTS
6
7         - BMan Node
8         - BMan Private Memory Node
9         - Example
10
11 BMan Node
12
13 The Buffer Manager is part of the Data-Path Acceleration Architecture (DPAA).
14 BMan supports hardware allocation and deallocation of buffers belonging to pools
15 originally created by software with configurable depletion thresholds. This
16 binding covers the CCSR space programming model
17
18 PROPERTIES
19
20 - compatible
21         Usage:          Required
22         Value type:     <stringlist>
23         Definition:     Must include "fsl,bman"
24                         May include "fsl,<SoC>-bman"
25
26 - reg
27         Usage:          Required
28         Value type:     <prop-encoded-array>
29         Definition:     Registers region within the CCSR address space
30
31 The BMan revision information is located in the BMAN_IP_REV_1/2 registers which
32 are located at offsets 0xbf8 and 0xbfc
33
34 - interrupts
35         Usage:          Required
36         Value type:     <prop-encoded-array>
37         Definition:     Standard property. The error interrupt
38
39 - fsl,bman-portals
40         Usage:          Required
41         Value type:     <phandle>
42         Definition:     Phandle to this BMan instance's portals
43
44 - fsl,liodn
45         Usage:          See pamu.txt
46         Value type:     <prop-encoded-array>
47         Definition:     PAMU property used for static LIODN assignment
48
49 - fsl,iommu-parent
50         Usage:          See pamu.txt
51         Value type:     <phandle>
52         Definition:     PAMU property used for dynamic LIODN assignment
53
54         For additional details about the PAMU/LIODN binding(s) see pamu.txt
55
56 Devices connected to a BMan instance via Direct Connect Portals (DCP) must link
57 to the respective BMan instance
58
59 - fsl,bman
60         Usage:          Required
61         Value type:     <prop-encoded-array>
62         Description:    List of phandle and DCP index pairs, to the BMan instance
63                         to which this device is connected via the DCP
64
65 BMan Private Memory Node
66
67 BMan requires a contiguous range of physical memory used for the backing store
68 for BMan Free Buffer Proxy Records (FBPR). This memory is reserved/allocated as
69 a node under the /reserved-memory node.
70
71 The BMan FBPR memory node must be named "bman-fbpr"
72
73 PROPERTIES
74
75 - compatible
76         Usage:          required
77         Value type:     <stringlist>
78         Definition:     PPC platforms: Must include "fsl,bman-fbpr"
79                         ARM platforms: Must include "shared-dma-pool"
80                                        as well as the "no-map" property
81
82 The following constraints are relevant to the FBPR private memory:
83         - The size must be 2^(size + 1), with size = 11..33. That is 4 KiB to
84           16 GiB
85         - The alignment must be a muliptle of the memory size
86
87 The size of the FBPR must be chosen by observing the hardware features configured
88 via the Reset Configuration Word (RCW) and that are relevant to a specific board
89 (e.g. number of MAC(s) pinned-out, number of offline/host command FMan ports,
90 etc.). The size configured in the DT must reflect the hardware capabilities and
91 not the specific needs of an application
92
93 For additional details about reserved memory regions see reserved-memory.txt
94
95 EXAMPLE
96
97 The example below shows a BMan FBPR dynamic allocation memory node
98
99         reserved-memory {
100                 #address-cells = <2>;
101                 #size-cells = <2>;
102                 ranges;
103
104                 bman_fbpr: bman-fbpr {
105                         compatible = "shared-mem-pool";
106                         size = <0 0x1000000>;
107                         alignment = <0 0x1000000>;
108                         no-map;
109                 };
110         };
111
112 The example below shows a (P4080) BMan CCSR-space node
113
114         bportals: bman-portals@ff4000000 {
115                 ...
116         };
117
118         crypto@300000 {
119                 ...
120                 fsl,bman = <&bman, 2>;
121                 ...
122         };
123
124         bman: bman@31a000 {
125                 compatible = "fsl,bman";
126                 reg = <0x31a000 0x1000>;
127                 interrupts = <16 2 1 2>;
128                 fsl,liodn = <0x17>;
129                 fsl,bman-portals = <&bportals>;
130                 memory-region = <&bman_fbpr>;
131         };
132
133         fman@400000 {
134                 ...
135                 fsl,bman = <&bman, 0>;
136                 ...
137         };