60 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| Broadcom FlexRM Ring Manager
 | |
| ============================
 | |
| The Broadcom FlexRM ring manager provides a set of rings which can be
 | |
| used to submit work to offload engines. An SoC may have multiple FlexRM
 | |
| hardware blocks. There is one device tree entry per FlexRM block. The
 | |
| FlexRM driver will create a mailbox-controller instance for given FlexRM
 | |
| hardware block where each mailbox channel is a separate FlexRM ring.
 | |
| 
 | |
| Required properties:
 | |
| --------------------
 | |
| - compatible:	Should be "brcm,iproc-flexrm-mbox"
 | |
| - reg:		Specifies base physical address and size of the FlexRM
 | |
| 		ring registers
 | |
| - msi-parent:	Phandles (and potential Device IDs) to MSI controllers
 | |
| 		The FlexRM engine will send MSIs (instead of wired
 | |
| 		interrupts) to CPU. There is one MSI for each FlexRM ring.
 | |
| 		Refer devicetree/bindings/interrupt-controller/msi.txt
 | |
| - #mbox-cells:	Specifies the number of cells needed to encode a mailbox
 | |
| 		channel. This should be 3.
 | |
| 
 | |
| 		The 1st cell is the mailbox channel number.
 | |
| 
 | |
| 		The 2nd cell contains MSI completion threshold. This is the
 | |
| 		number of completion messages for which FlexRM will inject
 | |
| 		one MSI interrupt to CPU.
 | |
| 
 | |
| 		The 3nd cell contains MSI timer value representing time for
 | |
| 		which FlexRM will wait to accumulate N completion messages
 | |
| 		where N is the value specified by 2nd cell above. If FlexRM
 | |
| 		does not get required number of completion messages in time
 | |
| 		specified by this cell then it will inject one MSI interrupt
 | |
| 		to CPU provided atleast one completion message is available.
 | |
| 
 | |
| Optional properties:
 | |
| --------------------
 | |
| - dma-coherent:	Present if DMA operations made by the FlexRM engine (such
 | |
| 		as DMA descriptor access, access to buffers pointed by DMA
 | |
| 		descriptors and read/write pointer updates to DDR) are
 | |
| 		cache coherent with the CPU.
 | |
| 
 | |
| Example:
 | |
| --------
 | |
| crypto_mbox: mbox@67000000 {
 | |
| 	compatible = "brcm,iproc-flexrm-mbox";
 | |
| 	reg = <0x67000000 0x200000>;
 | |
| 	msi-parent = <&gic_its 0x7f00>;
 | |
| 	#mbox-cells = <3>;
 | |
| };
 | |
| 
 | |
| crypto@672c0000 {
 | |
| 	compatible = "brcm,spu2-v2-crypto";
 | |
| 	reg = <0x672c0000 0x1000>;
 | |
| 	mboxes = <&crypto_mbox 0 0x1 0xffff>,
 | |
| 		 <&crypto_mbox 1 0x1 0xffff>,
 | |
| 		 <&crypto_mbox 16 0x1 0xffff>,
 | |
| 		 <&crypto_mbox 17 0x1 0xffff>,
 | |
| 		 <&crypto_mbox 30 0x1 0xffff>,
 | |
| 		 <&crypto_mbox 31 0x1 0xffff>;
 | |
| };
 |