Documentation/devicetree/bindings/soc/ti/keystone-navigator-dma.txt

Source file repositories/reference/linux-study-clean/Documentation/devicetree/bindings/soc/ti/keystone-navigator-dma.txt

File Facts

System
Linux kernel
Corpus path
Documentation/devicetree/bindings/soc/ti/keystone-navigator-dma.txt
Extension
.txt
Size
3692 bytes
Lines
112
Domain
Support Tooling And Documentation
Bucket
Documentation
Inferred role
Support Tooling And Documentation: documentation
Status
atlas-only

Why This File Exists

Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.

Dependency Surface

Detected Declarations

Annotated Snippet

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

Annotation

Implementation Notes