diff options
| author | Emil Medve <Emilian.Medve@freescale.com> | 2014-11-05 10:18:53 -0500 |
|---|---|---|
| committer | Scott Wood <scottwood@freescale.com> | 2014-11-13 00:53:44 -0500 |
| commit | 76a4f03f3ec7221112c20d053a1233540a601473 (patch) | |
| tree | 02176c34d9abc5033f054112e23d2065f64c5ce3 /Documentation/devicetree/bindings/soc | |
| parent | 5f3af4008bfcb388a3193fd871e1b2e94ba4b09c (diff) | |
dt/bindings: Introduce the FSL QorIQ DPAA QMan
The Queue Manager is part of the Data-Path Acceleration Architecture
(DPAA). QMan supports queuing and QoS scheduling of frames to CPUs,
network interfaces and DPAA logic modules, maintains packet ordering
within flows. Besides providing flow-level queuing, is also
responsible for congestion management functions such as RED/WRED,
congestion notifications and tail discards. This binding covers the
CCSR space programming model
Signed-off-by: Emil Medve <Emilian.Medve@Freescale.com>
Change-Id: I3acb223893e42003d6c9dc061db568ec0b10d29b
Signed-off-by: Scott Wood <scottwood@freescale.com>
Diffstat (limited to 'Documentation/devicetree/bindings/soc')
| -rw-r--r-- | Documentation/devicetree/bindings/soc/fsl/qman.txt | 165 |
1 files changed, 165 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/soc/fsl/qman.txt b/Documentation/devicetree/bindings/soc/fsl/qman.txt new file mode 100644 index 000000000000..063e3a0b9d04 --- /dev/null +++ b/Documentation/devicetree/bindings/soc/fsl/qman.txt | |||
| @@ -0,0 +1,165 @@ | |||
| 1 | QorIQ DPAA Queue Manager Device Tree Binding | ||
| 2 | |||
| 3 | Copyright (C) 2008 - 2014 Freescale Semiconductor Inc. | ||
| 4 | |||
| 5 | CONTENTS | ||
| 6 | |||
| 7 | - QMan Node | ||
| 8 | - QMan Private Memory Nodes | ||
| 9 | - Example | ||
| 10 | |||
| 11 | QMan Node | ||
| 12 | |||
| 13 | The Queue Manager is part of the Data-Path Acceleration Architecture (DPAA). QMan | ||
| 14 | supports queuing and QoS scheduling of frames to CPUs, network interfaces and | ||
| 15 | DPAA logic modules, maintains packet ordering within flows. Besides providing | ||
| 16 | flow-level queuing, is also responsible for congestion management functions such | ||
| 17 | as RED/WRED, congestion notifications and tail discards. This binding covers the | ||
| 18 | CCSR space programming model | ||
| 19 | |||
| 20 | PROPERTIES | ||
| 21 | |||
| 22 | - compatible | ||
| 23 | Usage: Required | ||
| 24 | Value type: <stringlist> | ||
| 25 | Definition: Must include "fsl,qman" | ||
| 26 | May include "fsl,<SoC>-qman" | ||
| 27 | |||
| 28 | - reg | ||
| 29 | Usage: Required | ||
| 30 | Value type: <prop-encoded-array> | ||
| 31 | Definition: Registers region within the CCSR address space | ||
| 32 | |||
| 33 | The QMan revision information is located in the QMAN_IP_REV_1/2 registers which | ||
| 34 | are located at offsets 0xbf8 and 0xbfc | ||
| 35 | |||
| 36 | - interrupts | ||
| 37 | Usage: Required | ||
| 38 | Value type: <prop-encoded-array> | ||
| 39 | Definition: Standard property. The error interrupt | ||
| 40 | |||
| 41 | - fsl,liodn | ||
| 42 | Usage: See pamu.txt | ||
| 43 | Value type: <prop-encoded-array> | ||
| 44 | Definition: PAMU property used for static LIODN assignment | ||
| 45 | |||
| 46 | - fsl,iommu-parent | ||
| 47 | Usage: See pamu.txt | ||
| 48 | Value type: <phandle> | ||
| 49 | Definition: PAMU property used for dynamic LIODN assignment | ||
| 50 | |||
| 51 | For additional details about the PAMU/LIODN binding(s) see pamu.txt | ||
| 52 | |||
| 53 | - clocks | ||
| 54 | Usage: See clock-bindings.txt and qoriq-clock.txt | ||
| 55 | Value type: <prop-encoded-array> | ||
| 56 | Definition: Reference input clock. Its frequency is half of the | ||
| 57 | platform clock | ||
| 58 | |||
| 59 | Devices connected to a QMan instance via Direct Connect Portals (DCP) must link | ||
| 60 | to the respective QMan instance | ||
| 61 | |||
| 62 | - fsl,qman | ||
| 63 | Usage: Required | ||
| 64 | Value type: <prop-encoded-array> | ||
| 65 | Description: List of phandle and DCP index pairs, to the QMan instance | ||
| 66 | to which this device is connected via the DCP | ||
| 67 | |||
| 68 | QMan Private Memory Nodes | ||
| 69 | |||
| 70 | QMan requires two contiguous range of physical memory used for the backing store | ||
| 71 | for QMan Frame Queue Descriptor (FQD) and Packed Frame Descriptor Record (PFDR). | ||
| 72 | This memory is reserved/allocated as a nodes under the /reserved-memory node | ||
| 73 | |||
| 74 | The QMan FQD memory node must be named "qman-fqd" | ||
| 75 | |||
| 76 | PROPERTIES | ||
| 77 | |||
| 78 | - compatible | ||
| 79 | Usage: required | ||
| 80 | Value type: <stringlist> | ||
| 81 | Definition: Must inclide "fsl,qman-fqd" | ||
| 82 | |||
| 83 | The QMan PFDR memory node must be named "qman-pfdr" | ||
| 84 | |||
| 85 | PROPERTIES | ||
| 86 | |||
| 87 | - compatible | ||
| 88 | Usage: required | ||
| 89 | Value type: <stringlist> | ||
| 90 | Definition: Must inclide "fsl,qman-pfdr" | ||
| 91 | |||
| 92 | The following constraints are relevant to the FQD and PFDR private memory: | ||
| 93 | - The size must be 2^(size + 1), with size = 11..29. That is 4 KiB to | ||
| 94 | 1 GiB | ||
| 95 | - The alignment must be a muliptle of the memory size | ||
| 96 | |||
| 97 | The size of the FQD and PFDP must be chosen by observing the hardware features | ||
| 98 | configured via the Reset Configuration Word (RCW) and that are relevant to a | ||
| 99 | specific board (e.g. number of MAC(s) pinned-out, number of offline/host command | ||
| 100 | FMan ports, etc.). The size configured in the DT must reflect the hardware | ||
| 101 | capabilities and not the specific needs of an application | ||
| 102 | |||
| 103 | For additional details about reserved memory regions see reserved-memory.txt | ||
| 104 | |||
| 105 | EXAMPLE | ||
| 106 | |||
| 107 | The example below shows a QMan FQD and a PFDR dynamic allocation memory nodes | ||
| 108 | |||
| 109 | reserved-memory { | ||
| 110 | #address-cells = <2>; | ||
| 111 | #size-cells = <2>; | ||
| 112 | ranges; | ||
| 113 | |||
| 114 | qman_fqd: qman-fqd { | ||
| 115 | compatible = "fsl,qman-fqd"; | ||
| 116 | alloc-ranges = <0 0 0xf 0xffffffff>; | ||
| 117 | size = <0 0x400000>; | ||
| 118 | alignment = <0 0x400000>; | ||
| 119 | }; | ||
| 120 | qman_pfdr: qman-pfdr { | ||
| 121 | compatible = "fsl,qman-pfdr"; | ||
| 122 | alloc-ranges = <0 0 0xf 0xffffffff>; | ||
| 123 | size = <0 0x2000000>; | ||
| 124 | alignment = <0 0x2000000>; | ||
| 125 | }; | ||
| 126 | }; | ||
| 127 | |||
| 128 | The example below shows a (P4080) QMan CCSR-space node | ||
| 129 | |||
| 130 | clockgen: global-utilities@e1000 { | ||
| 131 | ... | ||
| 132 | sysclk: sysclk { | ||
| 133 | ... | ||
| 134 | }; | ||
| 135 | ... | ||
| 136 | platform_pll: platform-pll@c00 { | ||
| 137 | #clock-cells = <1>; | ||
| 138 | reg = <0xc00 0x4>; | ||
| 139 | compatible = "fsl,qoriq-platform-pll-1.0"; | ||
| 140 | clocks = <&sysclk>; | ||
| 141 | clock-output-names = "platform-pll", "platform-pll-div2"; | ||
| 142 | }; | ||
| 143 | ... | ||
| 144 | }; | ||
| 145 | |||
| 146 | crypto@300000 { | ||
| 147 | ... | ||
| 148 | fsl,qman = <&qman, 2>; | ||
| 149 | ... | ||
| 150 | }; | ||
| 151 | |||
| 152 | qman: qman@318000 { | ||
| 153 | compatible = "fsl,qman"; | ||
| 154 | reg = <0x318000 0x1000>; | ||
| 155 | interrupts = <16 2 1 3> | ||
| 156 | fsl,liodn = <0x16>; | ||
| 157 | memory-region = <&qman_fqd &qman_pfdr>; | ||
| 158 | clocks = <&platform_pll 1>; | ||
| 159 | }; | ||
| 160 | |||
| 161 | fman@400000 { | ||
| 162 | ... | ||
| 163 | fsl,qman = <&qman, 0>; | ||
| 164 | ... | ||
| 165 | }; | ||
