mbox series

[0/2] dmaengine: ti: k3-udma: Support for per channel atype

Message ID 20200218143126.11361-1-peter.ujfalusi@ti.com (mailing list archive)
Headers show
Series dmaengine: ti: k3-udma: Support for per channel atype | expand

Message

Peter Ujfalusi Feb. 18, 2020, 2:31 p.m. UTC
Hi,

The series is on top of the 5.6 update patches:
https://lore.kernel.org/lkml/20200214091441.27535-1-peter.ujfalusi@ti.com/

UDMA channels have ATYPE property which tells UDMA on how to treat the pointers
within descriptors (and TRs).
The ATYPE defined for j721e are:
0: pointers are physical addresses (no translation)
1: pointers are intermediate addresses (PVU)
2: pointers are virtual addresses (SMMU)

When Linux is booting within a virtualized environment channels must have the
ATYPE configured correctly to be able to access memory (ATYPE == 0 is not
allowed).
The ATYPE can be different for channels and their ATYPE depends on which
endpoint they are servicing, but it is not hardwired.

In order to be able to tell the driver the ATYPE for the channel we need to
extend the dma-cells in case the device is going to be used in virtualized
setup.

Non virtualized setups can still use dma-cells == 1.

If dma-cells == 2, then the UDMA node must have ti,udma-atype property which
is used for non slave channels (where no DT binding is exist for a channel).

Regards,
Peter
---
Peter Ujfalusi (2):
  dt-bindings: dma: ti: k3-udma: Update for atype support
    (virtualization)
  dmaengine: ti: k3-udma: Implement support for atype (for
    virtualization)

 .../devicetree/bindings/dma/ti/k3-udma.yaml   | 19 ++++++-
 drivers/dma/ti/k3-udma-glue.c                 | 18 ++++++-
 drivers/dma/ti/k3-udma.c                      | 50 ++++++++++++++++---
 3 files changed, 76 insertions(+), 11 deletions(-)

Comments

Vinod Koul March 2, 2020, 9:14 a.m. UTC | #1
On 18-02-20, 16:31, Peter Ujfalusi wrote:
> Hi,
> 
> The series is on top of the 5.6 update patches:
> https://lore.kernel.org/lkml/20200214091441.27535-1-peter.ujfalusi@ti.com/
> 
> UDMA channels have ATYPE property which tells UDMA on how to treat the pointers
> within descriptors (and TRs).
> The ATYPE defined for j721e are:
> 0: pointers are physical addresses (no translation)
> 1: pointers are intermediate addresses (PVU)
> 2: pointers are virtual addresses (SMMU)
> 
> When Linux is booting within a virtualized environment channels must have the
> ATYPE configured correctly to be able to access memory (ATYPE == 0 is not
> allowed).
> The ATYPE can be different for channels and their ATYPE depends on which
> endpoint they are servicing, but it is not hardwired.
> 
> In order to be able to tell the driver the ATYPE for the channel we need to
> extend the dma-cells in case the device is going to be used in virtualized
> setup.
> 
> Non virtualized setups can still use dma-cells == 1.
> 
> If dma-cells == 2, then the UDMA node must have ti,udma-atype property which
> is used for non slave channels (where no DT binding is exist for a channel).

Applied, thanks