The aim of this project is to provide a generic, flexible framework for initiating and controlling DMA transfers using General Purpose DMA engines, found in most of embedded SoCs - along with tests and documentation. There are analogous frameworks for NetBSD (dmover(4)) and Solaris (ddi_dmae(9F)), but they are not well suited for embedded targets and don't offer all required features.
| Milestone | Status | Comment |
|---|---|---|
| M1: Kobj interface for DMA engine drivers as well as framework glue code for upper layers is complete (Week 3) | Complete | Established working API's |
| M2: Working implementation of example DMA engine driver (Week 5) | Complete | EDMA3 driver working |
| M3: dvmmc(4) uses DMA, kernel memcpy/memmove/bzero uses DMA if possible (Week 7) | Complete | |
| M4: DMA engine is controllable from userspace via special device node (Week 9) | Complete | |
| M5: Manual pages and documentation are complete (Week 10) | In progress | |
| M6: Unit and regression tests are complete and framework is ready for commiting (Week 12) | In progress |
| Milestone | Status | Comment |
|---|---|---|
| Simplify API | In progress | |
| Convert DaVinci platform to FDT | Complete | |
| Convert GPDMA to FDT | Not done | |
| Write Marvell IDMA driver | Not done | |
| DMA transfer queueing | Not done |