We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

Showing results for 
Search instead for 
Did you mean: 
Newbie cthomas
Registered: ‎12-01-2017

PCIe streaming

Problem using streaming mode.

KCU105 board

Release 2016.2 as was used in video

Tried 2017.3 also

Ubuntu 14.04

Using Xilinx device driver


I was able to get AXI Memory Mapped to work perfectly by following every step  in the following video:

https://www.youtube.com/watch?v=TzzzM97L4HI – “DMA for PCI Express” (video is very well done BTW). Examined the dmesg dump and everything looks textbook perfect.


I need much higher throughput, however, so it is necessary to use AXI4 Streaming mode. The only thing I changed in the xdma_0_0 block was to  activate the  "AXI Stream" button instead of the AXI Memory Mapped. Rebuilt everything as before, then ran the run_test.sh test program. Result was that the application hung and caused system errors in Linux. Noticed in dmesg that the transfer_monitor_cyclic_C2H0 was reteiving -512 from the call to wait_event_interruptible.


Is there something else that I need to change in the settings to effect the streaming mode effectively?



0 Kudos
4 Replies
Scholar austin
Registered: ‎02-27-2008

Re: PCIe streaming

AXI4 Stream,


Is a FIFO.  Data goes in, data goes out, forever (no addresses).  I suspect you need a PCIe to AXI4 Streaming Bridge (in effect, logic to turn a DMA channel with address into sink and sources of streaming data).


pg194, pg195 (look up Xilinx product guides)


Streaming will be no faster than addressing per se, I would examine the block length, and other options in the AXI4 interface:



Austin Lesea
Principal Engineer
Xilinx San Jose
Newbie cthomas
Registered: ‎12-01-2017

Re: PCIe streaming

Hello Austin,


Thanks very much for the quick reply. I understand. Will give it a try.



0 Kudos
Registered: ‎11-09-2017

Re: PCIe streaming

@cthomas Were you able to fix this issue? We are experiencing the same problem where the Linux driver/applicaiton hang up during the C2H operation. (I thought the loopback design was working fine, so I moved on to a design with an AXIS FIFO, which is when I started getting the C2H to hang. So I reverted to the loopback design and it is also hanging up).


I've also posted a similar issue (https://forums.xilinx.com/t5/PCI-Express/DMA-Bridge-Subsystem-for-PCIe-AXI-Stream-c2h-interface/m-p/815172#M9553), but now I see this post.





CC:@austin in case he has any additional tips.


EDIT: My issue was resolved -- the MSI-X interrupts were not working (TX2 issue maybe?). Changing back to MSI interrupts fixed it.


0 Kudos
Newbie cthomas
Registered: ‎12-01-2017

Re: PCIe streaming

The response that I received from Austin is that we need to use FIFOs in streaming mode, not DDR as with the Memory Mapped technique. The most likely reason that it can hang the system and even wreck Linux, is that the driver is chasing through memory looking for the proper eop during cyclic-read..


We are now in the process of building a double buffered FIFO arrangement in order to stream our RF data in.

0 Kudos