The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/contrib/device-tree/Bindings/soc/fsl/qman.txt

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    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,qman-portals
   42         Usage:          Required
   43         Value type:     <phandle>
   44         Definition:     Phandle to this QMan instance's portals
   45 
   46 - fsl,liodn
   47         Usage:          See pamu.txt
   48         Value type:     <prop-encoded-array>
   49         Definition:     PAMU property used for static LIODN assignment
   50 
   51 - fsl,iommu-parent
   52         Usage:          See pamu.txt
   53         Value type:     <phandle>
   54         Definition:     PAMU property used for dynamic LIODN assignment
   55 
   56         For additional details about the PAMU/LIODN binding(s) see pamu.txt
   57 
   58 - clocks
   59         Usage:          See clock-bindings.txt and qoriq-clock.txt
   60         Value type:     <prop-encoded-array>
   61         Definition:     Reference input clock. Its frequency is half of the
   62                         platform clock
   63 - memory-regions
   64         Usage:          Required for ARM
   65         Value type:     <phandle array>
   66         Definition:     List of phandles referencing the QMan private memory
   67                         nodes (described below). The qman-fqd node must be
   68                         first followed by qman-pfdr node. Only used on ARM
   69 
   70 Devices connected to a QMan instance via Direct Connect Portals (DCP) must link
   71 to the respective QMan instance
   72 
   73 - fsl,qman
   74         Usage:          Required
   75         Value type:     <prop-encoded-array>
   76         Description:    List of phandle and DCP index pairs, to the QMan instance
   77                         to which this device is connected via the DCP
   78 
   79 QMan Private Memory Nodes
   80 
   81 QMan requires two contiguous range of physical memory used for the backing store
   82 for QMan Frame Queue Descriptor (FQD) and Packed Frame Descriptor Record (PFDR).
   83 This memory is reserved/allocated as a node under the /reserved-memory node.
   84 
   85 For additional details about reserved memory regions see reserved-memory.txt
   86 
   87 The QMan FQD memory node must be named "qman-fqd"
   88 
   89 PROPERTIES
   90 
   91 - compatible
   92         Usage:          required
   93         Value type:     <stringlist>
   94         Definition:     PPC platforms: Must include "fsl,qman-fqd"
   95                         ARM platforms: Must include "shared-dma-pool"
   96                                        as well as the "no-map" property
   97 
   98 The QMan PFDR memory node must be named "qman-pfdr"
   99 
  100 PROPERTIES
  101 
  102 - compatible
  103         Usage:          required
  104         Value type:     <stringlist>
  105         Definition:     PPC platforms: Must include "fsl,qman-pfdr"
  106                         ARM platforms: Must include "shared-dma-pool"
  107                                        as well as the "no-map" property
  108 
  109 The following constraints are relevant to the FQD and PFDR private memory:
  110         - The size must be 2^(size + 1), with size = 11..29. That is 4 KiB to
  111           1 GiB
  112         - The alignment must be a muliptle of the memory size
  113 
  114 The size of the FQD and PFDP must be chosen by observing the hardware features
  115 configured via the Reset Configuration Word (RCW) and that are relevant to a
  116 specific board (e.g. number of MAC(s) pinned-out, number of offline/host command
  117 FMan ports, etc.). The size configured in the DT must reflect the hardware
  118 capabilities and not the specific needs of an application
  119 
  120 For additional details about reserved memory regions see reserved-memory.txt
  121 
  122 EXAMPLE
  123 
  124 The example below shows a QMan FQD and a PFDR dynamic allocation memory nodes
  125 
  126         reserved-memory {
  127                 #address-cells = <2>;
  128                 #size-cells = <2>;
  129                 ranges;
  130 
  131                 qman_fqd: qman-fqd {
  132                         compatible = "shared-dma-pool";
  133                         size = <0 0x400000>;
  134                         alignment = <0 0x400000>;
  135                         no-map;
  136                 };
  137                 qman_pfdr: qman-pfdr {
  138                         compatible = "shared-dma-pool";
  139                         size = <0 0x2000000>;
  140                         alignment = <0 0x2000000>;
  141                         no-map;
  142                 };
  143         };
  144 
  145 The example below shows a (P4080) QMan CCSR-space node
  146 
  147         qportals: qman-portals@ff4200000 {
  148                 ...
  149         };
  150 
  151         clockgen: global-utilities@e1000 {
  152                 ...
  153                 sysclk: sysclk {
  154                         ...
  155                 };
  156                 ...
  157                 platform_pll: platform-pll@c00 {
  158                         #clock-cells = <1>;
  159                         reg = <0xc00 0x4>;
  160                         compatible = "fsl,qoriq-platform-pll-1.0";
  161                         clocks = <&sysclk>;
  162                         clock-output-names = "platform-pll", "platform-pll-div2";
  163                 };
  164                 ...
  165         };
  166 
  167         crypto@300000 {
  168                 ...
  169                 fsl,qman = <&qman, 2>;
  170                 ...
  171         };
  172 
  173         qman: qman@318000 {
  174                 compatible = "fsl,qman";
  175                 reg = <0x318000 0x1000>;
  176                 interrupts = <16 2 1 3>
  177                 fsl,liodn = <0x16>;
  178                 fsl,qman-portals = <&qportals>;
  179                 memory-region = <&qman_fqd &qman_pfdr>;
  180                 clocks = <&platform_pll 1>;
  181         };
  182 
  183         fman@400000 {
  184                 ...
  185                 fsl,qman = <&qman, 0>;
  186                 ...
  187         };

Cache object: 8eae60180a8461bc7735cf8eeca2bc00


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.