UPGRADE YOUR BROWSER

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!

cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Explorer
Explorer
1,140 Views
Registered: ‎10-19-2017

Basic Linux PCIe Express Project

Hey, my boss wants to do read and write using PCIe from Linux. He said this can be done in the PS. From what I have read however, I believe PCIe needs to be configured in the PL and from Linux you need to use a PCIe AXI driver to interface with other chips via PCIe. Can someone with more experience confirm this? Secondly, can someone provide instructions/resources about how I could use Vivado to create a design that configures the PCIe block and properly connects it to the processing system?

Tags (4)
0 Kudos
1 Reply
Adventurer
Adventurer
917 Views
Registered: ‎03-22-2016

Re: Basic Linux PCIe Express Project

It depends a lot on your design. Are you talking about putting a PCIe FPGA device into a PC, or about using a Zynq embedded device that has a PCIe master to interface with a PCIe device (FPGA or otherwise)?

 

If you're using a PCIe FPGA and just trying to read/write from a normal PC running Linux, here are some useful resources. As of around 2016.1, Xilinx has a (FREE!) PCIe DMA IP and a kernel module driver that, IMO, "just works". Using these resources and a KCU105, I was able to get PCIe DMA transfers working in under a day:

 

DMA for PCIe

AR# 65444 Xilinx PCI Express DMA Drivers and Software Guide

Getting the Best Performance with Xilinx's DMA for PCI Express (Video)

AR# 68049 DMA Subsystem for PCI Express (Vivado 2016.3) - Performance Numbers

DMA for PCI Express (Video)

 

Now, if I could just get AXI DMA working anywhere near as easily...

0 Kudos