Back to home page

OSCL-LXR

 
 

    


0001 Broadcom FlexRM Ring Manager
0002 ============================
0003 The Broadcom FlexRM ring manager provides a set of rings which can be
0004 used to submit work to offload engines. An SoC may have multiple FlexRM
0005 hardware blocks. There is one device tree entry per FlexRM block. The
0006 FlexRM driver will create a mailbox-controller instance for given FlexRM
0007 hardware block where each mailbox channel is a separate FlexRM ring.
0008 
0009 Required properties:
0010 --------------------
0011 - compatible:   Should be "brcm,iproc-flexrm-mbox"
0012 - reg:          Specifies base physical address and size of the FlexRM
0013                 ring registers
0014 - msi-parent:   Phandles (and potential Device IDs) to MSI controllers
0015                 The FlexRM engine will send MSIs (instead of wired
0016                 interrupts) to CPU. There is one MSI for each FlexRM ring.
0017                 Refer devicetree/bindings/interrupt-controller/msi.txt
0018 - #mbox-cells:  Specifies the number of cells needed to encode a mailbox
0019                 channel. This should be 3.
0020 
0021                 The 1st cell is the mailbox channel number.
0022 
0023                 The 2nd cell contains MSI completion threshold. This is the
0024                 number of completion messages for which FlexRM will inject
0025                 one MSI interrupt to CPU.
0026 
0027                 The 3nd cell contains MSI timer value representing time for
0028                 which FlexRM will wait to accumulate N completion messages
0029                 where N is the value specified by 2nd cell above. If FlexRM
0030                 does not get required number of completion messages in time
0031                 specified by this cell then it will inject one MSI interrupt
0032                 to CPU provided atleast one completion message is available.
0033 
0034 Optional properties:
0035 --------------------
0036 - dma-coherent: Present if DMA operations made by the FlexRM engine (such
0037                 as DMA descriptor access, access to buffers pointed by DMA
0038                 descriptors and read/write pointer updates to DDR) are
0039                 cache coherent with the CPU.
0040 
0041 Example:
0042 --------
0043 crypto_mbox: mbox@67000000 {
0044         compatible = "brcm,iproc-flexrm-mbox";
0045         reg = <0x67000000 0x200000>;
0046         msi-parent = <&gic_its 0x7f00>;
0047         #mbox-cells = <3>;
0048 };
0049 
0050 crypto@672c0000 {
0051         compatible = "brcm,spu2-v2-crypto";
0052         reg = <0x672c0000 0x1000>;
0053         mboxes = <&crypto_mbox 0 0x1 0xffff>,
0054                  <&crypto_mbox 1 0x1 0xffff>,
0055                  <&crypto_mbox 16 0x1 0xffff>,
0056                  <&crypto_mbox 17 0x1 0xffff>,
0057                  <&crypto_mbox 30 0x1 0xffff>,
0058                  <&crypto_mbox 31 0x1 0xffff>;
0059 };