brintos

brintos / linux-shallow public Read only

0
0
Text · 3.6 KiB · 337c4ea Raw
112 lines · plain
1Keystone Navigator DMA Controller2 3This document explains the device tree bindings for the packet dma4on keystone devices. The Keystone Navigator DMA driver sets up the dma5channels and flows for the QMSS(Queue Manager SubSystem) who triggers6the actual data movements across clients using destination queues. Every7client modules like  NETCP(Network Coprocessor), SRIO(Serial Rapid IO),8CRYPTO Engines etc has its own instance of dma hardware. QMSS has also9an internal packet DMA module which is used as an infrastructure DMA10with zero copy.11 12Navigator DMA cloud layout:13	------------------14	| Navigator DMAs |15	------------------16		|17		|-> DMA instance #018		|19		|-> DMA instance #120			.21			.22		|23		|-> DMA instance #n24 25Navigator DMA properties:26Required properties:27 - compatible: Should be "ti,keystone-navigator-dma"28 - clocks: phandle to dma instances clocks. The clock handles can be as29	many as the dma instances. The order should be maintained as per30	the dma instances.31 - ti,navigator-cloud-address: Should contain base address for the multi-core32	navigator cloud and number of addresses depends on SOC integration33	configuration.. Navigator cloud global address needs to be programmed34	into DMA and the DMA uses it as the physical addresses to reach queue35	managers. Note that these addresses though points to queue managers,36	they are relevant only from DMA perspective. The QMSS may not choose to37	use them since it has a different address space view to reach all38	its components.39 40DMA instance properties:41Required properties:42 - reg: Should contain register location and length of the following dma43	register regions. Register regions should be specified in the following44	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 51Optional properties:52 - reg-names: Names for the register regions.53 - ti,enable-all: Enable all DMA channels vs clients opening specific channels54	what they need. This property is useful for the userspace fast path55	case where the linux drivers enables the channels used by userland56	stack.57 - ti,loop-back: To loopback Tx streaming I/F to Rx streaming I/F. Used for58	      infrastructure transfers.59 - ti,rx-retry-timeout: Number of dma cycles to wait before retry on buffer60		     starvation.61 62Example: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 0x23a9000071					   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 94Navigator DMA client:95Required properties:96 - ti,navigator-dmas: List of one or more DMA specifiers, each consisting of97			- A phandle pointing to DMA instance node98			- A DMA channel number as a phandle arg.99 - ti,navigator-dma-names: Contains dma channel name for each DMA specifier in100			the 'ti,navigator-dmas' property.101 102Example: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	};112