V2-changes:
- Added dependent patch: bus/platform: match device by devicetree compatible
string
- Fixed multiple AI reported issues includes:
- removed the alias from the driver, no need of it
- removed imx_edma5_write32 from data-path, reported as coherency
concern.
- fix submit for previously enqueued jobs.
- Added dsb in data path
- Added a commnet for rte_mem_iova2virt() NULL behaviour.
- Fixed: TCD NBYTES bits 31:30 are SMLOE/DMLOE ??? full 32-bit length
corrupts them
- Data path is fully synchronous: Acknowledged but intentionally deferred ???
the synchronous design is a deliberate simplification for the initial
upstream submission.
Noted in docs.
- In-memory TCD64 pool is more complex than needed:
Noted/deferred ??? the pool structure was retained for forward
compatibility
with hardware SG chaining.
- Extended `imx_edma5_dump()` to read and print `CH_CSR` and `CH_ES`
registers
for every configured vchan.
- Double and stary lines removed.
V1:
This patch series adds a new dmadev Poll-Mode Driver (PMD) for the NXP
i.MX95 eDMA5 (Enhanced DMA Type 5) controller.
Key features supported by this driver:
- Memory-to-memory copy (RTE_DMA_OP_TYPE_MEMCPY)
- Scatter-gather memory copy (RTE_DMA_OP_TYPE_SG)
- 64-bit TCD (Transfer Control Descriptor) format
- Non-coherent DMA with explicit cache clean/invalidate
- Per-channel statistics and register dump for debug
Patch breakdown:
[1/4] Skeleton: bus probe/remove, dmadev registration, MAINTAINERS,
doc index, and release notes for 26.11.
[2/4] Device configuration: vchan setup, TCD ring allocation,
start/stop, and capability reporting.
[3/4] Data path: enqueue (copy and sg), doorbell, completion poll.
[4/4] Statistics and dump: per-channel counters and register dump.
Tested on NXP i.MX95 EVK with vfio-platform.
Gagandeep Singh (5):
bus/platform: match device by devicetree compatible string
dma/imx_edma5: introduce eDMA5 dmadev skeleton
dma/imx_edma5: add device configuration
dma/imx_edma5: add data path
dma/imx_edma5: add statistics and dump
MAINTAINERS | 5 +
doc/guides/dmadevs/imx_edma5.rst | 61 +
doc/guides/dmadevs/index.rst | 1 +
doc/guides/rel_notes/release_26_11.rst | 6 +
drivers/bus/platform/bus_platform_driver.h | 3 +-
drivers/bus/platform/platform.c | 67 +-
drivers/dma/imx_edma5/imx_edma5_dmadev.c | 1162 ++++++++++++++++++++
drivers/dma/imx_edma5/imx_edma5_dmadev.h | 220 ++++
drivers/dma/imx_edma5/imx_edma5_hw.h | 157 +++
drivers/dma/imx_edma5/imx_edma5_logs.h | 16 +
drivers/dma/imx_edma5/meson.build | 10 +
drivers/dma/meson.build | 1 +
12 files changed, 1707 insertions(+), 2 deletions(-)
create mode 100644 doc/guides/dmadevs/imx_edma5.rst
create mode 100644 drivers/dma/imx_edma5/imx_edma5_dmadev.c
create mode 100644 drivers/dma/imx_edma5/imx_edma5_dmadev.h
create mode 100644 drivers/dma/imx_edma5/imx_edma5_hw.h
create mode 100644 drivers/dma/imx_edma5/imx_edma5_logs.h
create mode 100644 drivers/dma/imx_edma5/meson.build
--
2.25.1