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/ti/keystone-navigator-dma.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 Keystone Navigator DMA Controller
    2 
    3 This document explains the device tree bindings for the packet dma
    4 on keystone devices. The Keystone Navigator DMA driver sets up the dma
    5 channels and flows for the QMSS(Queue Manager SubSystem) who triggers
    6 the actual data movements across clients using destination queues. Every
    7 client modules like  NETCP(Network Coprocessor), SRIO(Serial Rapid IO),
    8 CRYPTO Engines etc has its own instance of dma hardware. QMSS has also
    9 an internal packet DMA module which is used as an infrastructure DMA
   10 with zero copy.
   11 
   12 Navigator DMA cloud layout:
   13         ------------------
   14         | Navigator DMAs |
   15         ------------------
   16                 |
   17                 |-> DMA instance #0
   18                 |
   19                 |-> DMA instance #1
   20                         .
   21                         .
   22                 |
   23                 |-> DMA instance #n
   24 
   25 Navigator DMA properties:
   26 Required properties:
   27  - compatible: Should be "ti,keystone-navigator-dma"
   28  - clocks: phandle to dma instances clocks. The clock handles can be as
   29         many as the dma instances. The order should be maintained as per
   30         the dma instances.
   31  - ti,navigator-cloud-address: Should contain base address for the multi-core
   32         navigator cloud and number of addresses depends on SOC integration
   33         configuration.. Navigator cloud global address needs to be programmed
   34         into DMA and the DMA uses it as the physical addresses to reach queue
   35         managers. Note that these addresses though points to queue managers,
   36         they are relevant only from DMA perspective. The QMSS may not choose to
   37         use them since it has a different address space view to reach all
   38         its components.
   39 
   40 DMA instance properties:
   41 Required properties:
   42  - reg: Should contain register location and length of the following dma
   43         register regions. Register regions should be specified in the following
   44         order.
   45         - Global control register region (global).
   46         - Tx DMA channel configuration register region (txchan).
   47         - Rx DMA channel configuration register region (rxchan).
   48         - Tx DMA channel Scheduler configuration register region (txsched).
   49         - Rx DMA flow configuration register region (rxflow).
   50 
   51 Optional properties:
   52  - reg-names: Names for the register regions.
   53  - ti,enable-all: Enable all DMA channels vs clients opening specific channels
   54         what they need. This property is useful for the userspace fast path
   55         case where the linux drivers enables the channels used by userland
   56         stack.
   57  - ti,loop-back: To loopback Tx streaming I/F to Rx streaming I/F. Used for
   58               infrastructure transfers.
   59  - ti,rx-retry-timeout: Number of dma cycles to wait before retry on buffer
   60                      starvation.
   61 
   62 Example:
   63 
   64         knav_dmas: knav_dmas@0 {
   65                 compatible = "ti,keystone-navigator-dma";
   66                 clocks = <&papllclk>, <&clkxge>;
   67                 #address-cells = <1>;
   68                 #size-cells = <1>;
   69                 ranges;
   70                 ti,navigator-cloud-address = <0x23a80000 0x23a90000
   71                                            0x23aa0000 0x23ab0000>;
   72 
   73                 dma_gbe: dma_gbe@0 {
   74                         reg = <0x2004000 0x100>,
   75                                   <0x2004400 0x120>,
   76                                   <0x2004800 0x300>,
   77                                   <0x2004c00 0x120>,
   78                                   <0x2005000 0x400>;
   79                         reg-names = "global", "txchan", "rxchan",
   80                                         "txsched", "rxflow";
   81                 };
   82 
   83                 dma_xgbe: dma_xgbe@0 {
   84                         reg = <0x2fa1000 0x100>,
   85                                 <0x2fa1400 0x200>,
   86                                 <0x2fa1800 0x200>,
   87                                 <0x2fa1c00 0x200>,
   88                                 <0x2fa2000 0x400>;
   89                         reg-names = "global", "txchan", "rxchan",
   90                                         "txsched", "rxflow";
   91                 };
   92         };
   93 
   94 Navigator DMA client:
   95 Required properties:
   96  - ti,navigator-dmas: List of one or more DMA specifiers, each consisting of
   97                         - A phandle pointing to DMA instance node
   98                         - A DMA channel number as a phandle arg.
   99  - ti,navigator-dma-names: Contains dma channel name for each DMA specifier in
  100                         the 'ti,navigator-dmas' property.
  101 
  102 Example:
  103 
  104         netcp: netcp@2090000 {
  105                 ..
  106                 ti,navigator-dmas = <&dma_gbe 22>,
  107                                 <&dma_gbe 23>,
  108                                 <&dma_gbe 8>;
  109                 ti,navigator-dma-names = "netrx0", "netrx1", "nettx";
  110                 ..
  111         };

Cache object: 9c5d91a48cc06ce96193c1c64b02228e


[ 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.