scatter-gather doubt?

Muni Sekhar munisekharrms at
Sat Sep 24 09:33:50 EDT 2016

Hi All,

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 mailing list