Streaming DMA Accelerator Functional Unit User Guide: Intel® Programmable Acceleration Card with Intel® Arria® 10 GX FPGA

ID 683840
Date 3/06/2020
Public

3.4. Device Feature Header Linked-list

The streaming DMA AFU design example contains four device feature headers (DFH) that form a linked list. This linked list allows the sample application to identify the streaming DMA AFU as well as the driver to identify each of the streaming DMA BBBs.

A NULL DFH is included at the end of the list. The inclusion of the null DFH at the end of the linked list allows you to add more streaming DMA BBBs to your design. You simply need to move the NULL DFH to an address after the other BBBs. Each streaming DMA BBB expects the next DFH to be located 0x100 bytes from the base address of the BBB. The following figure depicts the linked-list for the streaming DMA AFU design example.

Figure 6. Streaming DMA AFU Device Feature Header (DFH) Chaining
If you want two M2S and two S2M DMA BBBs in your design, then you can use the following address map to implement four streaming channels. The four streaming DMA BBBs can reside anywhere in the address map if they are packed together in the MMIO address space every 0x100 bytes. The DFH that follows the streaming DMA BBB must be located at offset 0x100 from the previous streaming DMA BBB channel and it can be the NULL DFH or other DFHs.
Table 7.  Four-channel Streaming DMA AFU Example Configuration
Byte Address Register Name Span in Bytes Description
0x000 Streaming DMA AFU DFH 0x40 Your AFU DFU. This DFH points to 0x100 as the next DFH offset.
0x100 M2S DMA BBB #1 0x100 First memory-to-stream DMA BBB. Next DFH set to 0x100.
0x200 M2S DMA BBB #2 0x100 Second memory-to-stream DMA BBB. Next DFH set to 0x100.
0x300 S2M DMA BBB #1 0x100 First stream-to-memory DMA BBB. Next DFH set to 0x100.
0x400 S2M DMA BBB #2 0x100 Second stream-to-memory DMA BBB. Next DFH set to 0x100.
0x500 NULL DFH 0x40 Null DFH at the end of the linked list.