munisekharrms at gmail.com
Sat Sep 24 09:33:50 EDT 2016
I am working on a xilinx PCIe endpoint with DMA reference block.
The DMA reference block design has 2 Scatter-Gather engines, one for
each DMA channel.
Channel 0 is for HostMemory -> DMA_REF FIFO transfers
Channel 1 is for DMA_REF FIFO -> HostMemory transfers
Each scatter-gather engine works through a linked list of Descriptors
from which it generates the required DMA activity.
The format of these descriptors is depicted as below:
Offset @ 0x00 - LSBs of pointer to DMA data
Offset @ 0x04 - MSBs of pointer to DMA data
Offset @ 0x08 - Number of data bytes to be transferred. (note: only 8
byte aligned transfers supported)
Offset @ 0x0C - LSBs of pointer to next Descriptor (Set this field &
MSBs to zero to indicate end of descriptor list)
Offset @ 0x10 - MSBs of pointer to next Descriptor
Does the Linux kernel has any data structure to support the above
mentioned scatter-gather descriptor?
Will it be possible to use the kernel scatterlist API’s for this hardware?
More information about the Kernelnewbies