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