Re: [PATCH V5 0/1] AMD QDMA driver

From: Vinod Koul
Date: Thu Sep 28 2023 - 07:08:32 EST


On 22-09-23, 10:15, Lizhi Hou wrote:
> Hello,
>
> The QDMA subsystem is used in conjunction with the PCI Express IP block
> to provide high performance data transfer between host memory and the
> card's DMA subsystem.
>
> +-------+ +-------+ +-----------+
> PCIe | | | | | |
> Tx/Rx | | | | AXI | |
> <=======> | PCIE | <===> | QDMA | <====>| User Logic|
> | | | | | |
> +-------+ +-------+ +-----------+

This should be in patch description as well

>
> Comparing to AMD/Xilinx XDMA subsystem,
> https://lore.kernel.org/lkml/Y+XeKt5yPr1nGGaq@matsya/
> the QDMA subsystem is a queue based, configurable scatter-gather DMA
> implementation which provides thousands of queues, support for multiple
> physical/virtual functions with single-root I/O virtualization (SR-IOV),
> and advanced interrupt support. In this mode the IP provides AXI4-MM and
> AXI4-Stream user interfaces which may be configured on a per-queue basis.
>
> The QDMA has been used for Xilinx Alveo PCIe devices.
> https://www.xilinx.com/applications/data-center/v70.html
>
> This patch series is to provide the platform driver for AMD QDMA subsystem
> to support AXI4-MM DMA transfers. More functions, such as AXI4-Stream
> and SR-IOV, will be supported by future patches.
>
> The device driver for any FPGA based PCIe device which leverages QDMA can
> call the standard dmaengine APIs to discover and use the QDMA subsystem
> without duplicating the QDMA driver code in its own driver.
>
> Changes since v4:
> - Convert to use platform driver callback .remove_new()
>
> Changes since v3:
> - Minor changes in Kconfig description.
>
> Changes since v2:
> - A minor change from code review comments.
>
> Changes since v1:
> - Minor changes from code review comments.
> - Fixed kernel robot warning.
>
> Nishad Saraf (1):
> dmaengine: amd: qdma: Add AMD QDMA driver
>
> MAINTAINERS | 9 +
> drivers/dma/Kconfig | 13 +
> drivers/dma/Makefile | 1 +
> drivers/dma/amd/Makefile | 8 +
> drivers/dma/amd/qdma-comm-regs.c | 66 ++
> drivers/dma/amd/qdma.c | 1187 ++++++++++++++++++++++++
> drivers/dma/amd/qdma.h | 269 ++++++
> include/linux/platform_data/amd_qdma.h | 36 +
> 8 files changed, 1589 insertions(+)
> create mode 100644 drivers/dma/amd/Makefile
> create mode 100644 drivers/dma/amd/qdma-comm-regs.c
> create mode 100644 drivers/dma/amd/qdma.c
> create mode 100644 drivers/dma/amd/qdma.h
> create mode 100644 include/linux/platform_data/amd_qdma.h
>
> --
> 2.34.1

--
~Vinod