Scatter-Gather

The scatter-gather is used when an application is required to do multiple transfers in one-time programming. Before starting the DMA Controller core, you must prepare a descriptor. A descriptor contains information such as source or destination address, number of bytes to transfer over, which channel you would like to use, and which AXI4-stream port you would like to use. Multiple descriptors linked together and formed a linked-list. Each descriptor is required to mention the address of the next descriptor so that the DMA Controller core can look for the next descriptor when the current descriptor is served. The linked-list is usually stored in the main memory.

Figure 1. Scatter-Gather Mode Flow Diagram

Unlike direct mode transfer, the DMA Controller core is out of the BUSY state once it runs through the linked-list and complete all transfer of the descriptors.