123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- 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";
- ..
- };
|