mbox series

[v2,0/6] dmaengine: Add Synopsys eDMA IP driver (version 0)

Message ID cover.1559654565.git.gustavo.pimentel@synopsys.com (mailing list archive)
Headers show
Series dmaengine: Add Synopsys eDMA IP driver (version 0) | expand

Message

Gustavo Pimentel June 4, 2019, 1:29 p.m. UTC
Add Synopsys eDMA IP driver (version 0 and for EP side only) to Linux
kernel. This IP is generally distributed with Synopsys PCIe EndPoint IP
(depends of the use and licensing agreement), which supports:
 - legacy and unroll modes
 - 16 independent and concurrent channels (8 write + 8 read)
 - supports linked list (scatter-gather) transfer
 - each linked list descriptor can transfer from 1 byte to 4 Gbytes
 - supports cyclic transfer
 - PCIe EndPoint glue-logic

This patch series contains:
 - eDMA core + eDMA core v0 driver (implements the interface with
 DMAengine controller APIs and interfaces with eDMA HW block)
 - eDMA PCIe glue-logic reference driver (attaches to Synopsys EP and
 provides memory access to eDMA core driver)

Gustavo Pimentel (6):
  dmaengine: Add Synopsys eDMA IP core driver
  dmaengine: Add Synopsys eDMA IP version 0 support
  dmaengine: Add Synopsys eDMA IP version 0 debugfs support
  PCI: Add Synopsys endpoint EDDA Device ID
  dmaengine: Add Synopsys eDMA IP PCIe glue-logic
  MAINTAINERS: Add Synopsys eDMA IP driver maintainer

 MAINTAINERS                              |   7 +
 drivers/dma/Kconfig                      |   2 +
 drivers/dma/Makefile                     |   1 +
 drivers/dma/dw-edma/Kconfig              |  18 +
 drivers/dma/dw-edma/Makefile             |   7 +
 drivers/dma/dw-edma/dw-edma-core.c       | 937 +++++++++++++++++++++++++++++++
 drivers/dma/dw-edma/dw-edma-core.h       | 165 ++++++
 drivers/dma/dw-edma/dw-edma-pcie.c       | 229 ++++++++
 drivers/dma/dw-edma/dw-edma-v0-core.c    | 354 ++++++++++++
 drivers/dma/dw-edma/dw-edma-v0-core.h    |  28 +
 drivers/dma/dw-edma/dw-edma-v0-debugfs.c | 310 ++++++++++
 drivers/dma/dw-edma/dw-edma-v0-debugfs.h |  27 +
 drivers/dma/dw-edma/dw-edma-v0-regs.h    | 158 ++++++
 drivers/misc/pci_endpoint_test.c         |   2 +-
 include/linux/dma/edma.h                 |  47 ++
 include/linux/pci_ids.h                  |   1 +
 16 files changed, 2292 insertions(+), 1 deletion(-)
 create mode 100644 drivers/dma/dw-edma/Kconfig
 create mode 100644 drivers/dma/dw-edma/Makefile
 create mode 100644 drivers/dma/dw-edma/dw-edma-core.c
 create mode 100644 drivers/dma/dw-edma/dw-edma-core.h
 create mode 100644 drivers/dma/dw-edma/dw-edma-pcie.c
 create mode 100644 drivers/dma/dw-edma/dw-edma-v0-core.c
 create mode 100644 drivers/dma/dw-edma/dw-edma-v0-core.h
 create mode 100644 drivers/dma/dw-edma/dw-edma-v0-debugfs.c
 create mode 100644 drivers/dma/dw-edma/dw-edma-v0-debugfs.h
 create mode 100644 drivers/dma/dw-edma/dw-edma-v0-regs.h
 create mode 100644 include/linux/dma/edma.h

Comments

Bjorn Helgaas June 4, 2019, 7:40 p.m. UTC | #1
On Tue, Jun 04, 2019 at 03:29:21PM +0200, Gustavo Pimentel wrote:
> Add Synopsys eDMA IP driver (version 0 and for EP side only) to Linux
> kernel. This IP is generally distributed with Synopsys PCIe EndPoint IP
> (depends of the use and licensing agreement), which supports:
>  - legacy and unroll modes
>  - 16 independent and concurrent channels (8 write + 8 read)
>  - supports linked list (scatter-gather) transfer
>  - each linked list descriptor can transfer from 1 byte to 4 Gbytes
>  - supports cyclic transfer
>  - PCIe EndPoint glue-logic
> 
> This patch series contains:
>  - eDMA core + eDMA core v0 driver (implements the interface with
>  DMAengine controller APIs and interfaces with eDMA HW block)
>  - eDMA PCIe glue-logic reference driver (attaches to Synopsys EP and
>  provides memory access to eDMA core driver)

What changed from v1?  (Just curious; I expect somebody else to merge
this since I've already acked the PCI parts.)

Bjorn
Gustavo Pimentel June 5, 2019, 8:14 a.m. UTC | #2
++ Vinod

Hi Bjorn,

On Tue, Jun 4, 2019 at 20:40:8, Bjorn Helgaas <helgaas@kernel.org> wrote:

> On Tue, Jun 04, 2019 at 03:29:21PM +0200, Gustavo Pimentel wrote:
> > Add Synopsys eDMA IP driver (version 0 and for EP side only) to Linux
> > kernel. This IP is generally distributed with Synopsys PCIe EndPoint IP
> > (depends of the use and licensing agreement), which supports:
> >  - legacy and unroll modes
> >  - 16 independent and concurrent channels (8 write + 8 read)
> >  - supports linked list (scatter-gather) transfer
> >  - each linked list descriptor can transfer from 1 byte to 4 Gbytes
> >  - supports cyclic transfer
> >  - PCIe EndPoint glue-logic
> > 
> > This patch series contains:
> >  - eDMA core + eDMA core v0 driver (implements the interface with
> >  DMAengine controller APIs and interfaces with eDMA HW block)
> >  - eDMA PCIe glue-logic reference driver (attaches to Synopsys EP and
> >  provides memory access to eDMA core driver)
> 
> What changed from v1?  (Just curious; I expect somebody else to merge
> this since I've already acked the PCI parts.)
> 
> Bjorn

This version 2 is basically, patch series rebased to v5.2-rc1, there were 
some conflicts on the pci-endpoint-test driver.
I'm hoping Vinod can merge this patches series into the next release 
v5.3.

Gustavo
Vinod Koul June 10, 2019, 7:42 a.m. UTC | #3
On 04-06-19, 15:29, Gustavo Pimentel wrote:
> Add Synopsys eDMA IP driver (version 0 and for EP side only) to Linux
> kernel. This IP is generally distributed with Synopsys PCIe EndPoint IP
> (depends of the use and licensing agreement), which supports:
>  - legacy and unroll modes
>  - 16 independent and concurrent channels (8 write + 8 read)
>  - supports linked list (scatter-gather) transfer
>  - each linked list descriptor can transfer from 1 byte to 4 Gbytes
>  - supports cyclic transfer
>  - PCIe EndPoint glue-logic
> 
> This patch series contains:
>  - eDMA core + eDMA core v0 driver (implements the interface with
>  DMAengine controller APIs and interfaces with eDMA HW block)
>  - eDMA PCIe glue-logic reference driver (attaches to Synopsys EP and
>  provides memory access to eDMA core driver)

Applied all, thanks