xDMA is a DMA framework designed to abstract the interaction between device drivers and DMA engines.

Idea for the name: the first letter 'x' hides the real dma controller name (Ingenic PDMA, Allwinner EDMA, Freescale sDMA, etc)

Ideas for improvement:

  1. SoftDMA - when we have no real dma yet, but already want to use xDMA (WIP)
  2. Introduce capabilites, so xDMA knows what the transfer types supported by hardware DMA controller, how many data can be copied by single descriptor, etc.
  3. Callback provided with some information, e.g. how many data were actually copied and any errors occurred during transfer
  4. Scatter-Gathering transfer type (WIP)
  5. Non-FDT setup, i.e. real dma controller register itself to xDMA
  6. Might be useful to have xdma interrupt thread, so callbacks can be optionally provided not in the interrupt time, but after
  7. Requests enqueuing support ? not sure if we need that

List of hardware DMA controllers currently supported by xDMA:

List of consumer devices:

xdma (last edited 2016-12-22 15:52:01 by RuslanBukin)