|
@@ -0,0 +1,111 @@
|
|
|
+Keystone Navigator DMA Controller
|
|
|
+
|
|
|
+This document explains the device tree bindings for the packet dma
|
|
|
+on keystone devices. The Keystone Navigator DMA driver sets up the dma
|
|
|
+channels and flows for the QMSS(Queue Manager SubSystem) who triggers
|
|
|
+the actual data movements across clients using destination queues. Every
|
|
|
+client modules like NETCP(Network Coprocessor), SRIO(Serial Rapid IO),
|
|
|
+CRYPTO Engines etc has its own instance of dma hardware. QMSS has also
|
|
|
+an internal packet DMA module which is used as an infrastructure DMA
|
|
|
+with zero copy.
|
|
|
+
|
|
|
+Navigator DMA cloud layout:
|
|
|
+ ------------------
|
|
|
+ | Navigator DMAs |
|
|
|
+ ------------------
|
|
|
+ |
|
|
|
+ |-> DMA instance #0
|
|
|
+ |
|
|
|
+ |-> DMA instance #1
|
|
|
+ .
|
|
|
+ .
|
|
|
+ |
|
|
|
+ |-> DMA instance #n
|
|
|
+
|
|
|
+Navigator DMA properties:
|
|
|
+Required properties:
|
|
|
+ - compatible: Should be "ti,keystone-navigator-dma"
|
|
|
+ - clocks: phandle to dma instances clocks. The clock handles can be as
|
|
|
+ many as the dma instances. The order should be maintained as per
|
|
|
+ the dma instances.
|
|
|
+ - ti,navigator-cloud-address: Should contain base address for the multi-core
|
|
|
+ navigator cloud and number of addresses depends on SOC integration
|
|
|
+ configuration.. Navigator cloud global address needs to be programmed
|
|
|
+ into DMA and the DMA uses it as the physical addresses to reach queue
|
|
|
+ managers. Note that these addresses though points to queue managers,
|
|
|
+ they are relevant only from DMA perspective. The QMSS may not choose to
|
|
|
+ use them since it has a different address space view to reach all
|
|
|
+ its components.
|
|
|
+
|
|
|
+DMA instance properties:
|
|
|
+Required properties:
|
|
|
+ - reg: Should contain register location and length of the following dma
|
|
|
+ register regions. Register regions should be specified in the following
|
|
|
+ order.
|
|
|
+ - Global control register region (global).
|
|
|
+ - Tx DMA channel configuration register region (txchan).
|
|
|
+ - Rx DMA channel configuration register region (rxchan).
|
|
|
+ - Tx DMA channel Scheduler configuration register region (txsched).
|
|
|
+ - Rx DMA flow configuration register region (rxflow).
|
|
|
+
|
|
|
+Optional properties:
|
|
|
+ - reg-names: Names for the register regions.
|
|
|
+ - ti,enable-all: Enable all DMA channels vs clients opening specific channels
|
|
|
+ what they need. This property is useful for the userspace fast path
|
|
|
+ case where the linux drivers enables the channels used by userland
|
|
|
+ stack.
|
|
|
+ - ti,loop-back: To loopback Tx streaming I/F to Rx streaming I/F. Used for
|
|
|
+ infrastructure transfers.
|
|
|
+ - ti,rx-retry-timeout: Number of dma cycles to wait before retry on buffer
|
|
|
+ starvation.
|
|
|
+
|
|
|
+Example:
|
|
|
+
|
|
|
+ knav_dmas: knav_dmas@0 {
|
|
|
+ compatible = "ti,keystone-navigator-dma";
|
|
|
+ clocks = <&papllclk>, <&clkxge>;
|
|
|
+ #address-cells = <1>;
|
|
|
+ #size-cells = <1>;
|
|
|
+ ranges;
|
|
|
+ ti,navigator-cloud-address = <0x23a80000 0x23a90000
|
|
|
+ 0x23aa0000 0x23ab0000>;
|
|
|
+
|
|
|
+ dma_gbe: dma_gbe@0 {
|
|
|
+ reg = <0x2004000 0x100>,
|
|
|
+ <0x2004400 0x120>,
|
|
|
+ <0x2004800 0x300>,
|
|
|
+ <0x2004c00 0x120>,
|
|
|
+ <0x2005000 0x400>;
|
|
|
+ reg-names = "global", "txchan", "rxchan",
|
|
|
+ "txsched", "rxflow";
|
|
|
+ };
|
|
|
+
|
|
|
+ dma_xgbe: dma_xgbe@0 {
|
|
|
+ reg = <0x2fa1000 0x100>,
|
|
|
+ <0x2fa1400 0x200>,
|
|
|
+ <0x2fa1800 0x200>,
|
|
|
+ <0x2fa1c00 0x200>,
|
|
|
+ <0x2fa2000 0x400>;
|
|
|
+ reg-names = "global", "txchan", "rxchan",
|
|
|
+ "txsched", "rxflow";
|
|
|
+ };
|
|
|
+ };
|
|
|
+
|
|
|
+Navigator DMA client:
|
|
|
+Required properties:
|
|
|
+ - ti,navigator-dmas: List of one or more DMA specifiers, each consisting of
|
|
|
+ - A phandle pointing to DMA instance node
|
|
|
+ - A DMA channel number as a phandle arg.
|
|
|
+ - ti,navigator-dma-names: Contains dma channel name for each DMA specifier in
|
|
|
+ the 'ti,navigator-dmas' property.
|
|
|
+
|
|
|
+Example:
|
|
|
+
|
|
|
+ netcp: netcp@2090000 {
|
|
|
+ ..
|
|
|
+ ti,navigator-dmas = <&dma_gbe 22>,
|
|
|
+ <&dma_gbe 23>,
|
|
|
+ <&dma_gbe 8>;
|
|
|
+ ti,navigator-dma-names = "netrx0", "netrx1", "nettx";
|
|
|
+ ..
|
|
|
+ };
|