cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Explorer
Explorer
464 Views
Registered: ‎04-21-2017

PCIe Drivers from Xilinx vs. 3rd party

Dear Forum,

When developing a new PCIe design I understand that there is a need for a driver to run on the host OS into which the PCIe card is plugged.

Do Xilinx provide drivers for PCIe designs that employ the hard PCIe IP in thier own devices?

Can these drivers be used in commercial systems or only for development purposes?

What is the advantage of Jungo solutions over the material provided by Xilinx.

 

Regards,

DJE666

0 Kudos
2 Replies
Highlighted
Moderator
Moderator
431 Views
Registered: ‎01-15-2008

From Xilinx there are XDMA and QDMA drivers for PCIE which you can check from the following link

https://github.com/Xilinx/dma_ip_drivers

 

0 Kudos
Highlighted
Adventurer
Adventurer
411 Views
Registered: ‎12-12-2018

Getting started with PCIe is definitely an adventure.

The XDMA and QDMA IP blocks are rather large and take a long time to compile to a design. (You only need one of them)

Not sure what device you have, but unless you have an Ultrascale+ (+ makes a difference) then you will need to use XDMA.

On linux, it creates a character devices that you can open `/dev/xdma-*****`

I got the Memory mapped interface to work, the Streaming needed mods to the driver.

 

As for commercial applications, I've only looked into the linux drivers. IANL, but you have to abide by whatever license the software you receive is.

For the QDMA driver, the kernel code is GPL (to take advantage of all kernel features), an the user land code is licensed under BSD, which basically allows you to do what you want provided you include the little blurb about having used Xilinx software.

Even if you wanted to use it for a commercial application and wanted to keep parts of your source closed, then you can still do that, you just have to make sure you are linking against libraries that are not GPL (maybe, that is actually for lawyers to decide).

 

In terms of what Jungo offers. I'm not too sure, I didn't look into them, but from their website they don't claim support for Ultrascale+. I think there have been important differences in the core from Ultrascale to Ultrascale+ that make it a non-trivial upgrade for any company. I would contact them and understand the price and advantages. Price for IP can be very expensive......

I believe other companies, such as NorthWest logic probably have IP that works with Ultracale+ lines.

The main advantage I think, is that IP companies make money directly from sales of IP. As one of their customers, you inevitably buy "support" and they will likely attempt to directly address bugs of yours.

 

Xilinx on the other hand doesn't make money from selling this IP (they give much of it for free) so they probably aren't so hungry to fix things up.

 

Their IP is also newer, so there are probably some rough edges. You can see a few of the hiccups

https://github.com/Xilinx/dma_ip_drivers/blob/master/QDMA/linux-kernel/user/cli/nl_user.c#L29

for example, where their "demo application" suggest that you basically rewrite it yourself for commericial applications. Not very encouraging IMO.

0 Kudos