qman.txt 4.9 KB

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