FPGA Intellectual Property
PCI Express*, Networking and Connectivity, Memory Interfaces, DSP IP, and Video IP
All support for Intel NUC 7 - 13 systems has transitioned to ASUS. Read latest update.
6312 Discussions

Chaining DMA Reprogramming Issue

Honored Contributor II



I tried Altera's Chaining DMA in simulation and found some trouble in reconfiguring the DMA. I tried simple 128-Bytes DMA read transfer with one Descriptor only. I programmed the following BAR2 registers in same sequence: 


1. 0x10 = 32'h0002_0001; // Number of Desc = 1 and MSI enabled 

2. 0x14 = 32'h0; // using 32-bit address scheme 

3. 0x18 = xxxxxx; // some Descriptor base address  

4. 0x1C= 0; 


I received a correct Descriptor read request followed by a proper descriptor and then a data read request followed by 128-bytes of data. After complete data transfer RP finally received an MSI Interrupt. 


Now the problem is, After receiving MSI Interrupt when I repeat the same procedure with each and every thing same as done above (starting from BAR2 address 0x10 till 0x1c with same values) Endpoint dont initiate any DMA transaction. Even the EP never issue the descriptor read request again. 


Is there any other register that should be programmed by the host to tell DMA to start DMA transaction again Or is there any sequence of register writing that should be strictly followed. 


Any kind of help in this regard will be highly appreciated.  



Ali Umair
0 Kudos
0 Replies