cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
quenii
Contributor
Contributor
12,172 Views
Registered: ‎12-14-2008

Is there nvme driver for zynq linux?

Can I use nvme ssd drive on zynq platform utilising it's pcie root-complex?
Does the nvme driver builtin the kernel or I have write my own?
0 Kudos
Reply
6 Replies
herman@topic
Visitor
Visitor
11,954 Views
Registered: ‎01-07-2016

Hi, I don't have the answer for your question, but I'm also very interrested to see what's possibile or needed for such an application.

For a project I'm currently working on we plan to use a M.2 SSD connected via 4 x PCI-e lanes to the Zynq. I'm wondering what we need to do on the zynq-internal side. E.g. is only a pci-e root-complex all, or do we need additional ip-cores (like for SATA) ?

And what about the linux drivers on the PS ?

Bandwidth what we need to achieve for sequential data in our application is > 250 MB/s, but it would be very nice if this can be a lot higher, e.g. even up to 1500 MB/s.

0 Kudos
Reply
jamey.hicks
Observer
Observer
7,644 Views
Registered: ‎05-02-2014

I'm using a Samsung NVME SSD on a zc706 using  AXI PCIE bridge as a root port.

 

I wrote my own software to operate the SSD so that I can read data from the SSD and feed it directly to an accelerator in the programmable logic. 

 

The NVME device driver is in the XIlinx Linux kernel so you should be able to use that.

0 Kudos
Reply
quenii
Contributor
Contributor
5,419 Views
Registered: ‎12-14-2008

what read/write speed can you achieve?

0 Kudos
Reply
jamey.hicks
Observer
Observer
5,407 Views
Registered: ‎05-02-2014

The NVME driver is in the mainstream kernel from which the Zynq kernel is derived.

 

I wrote an NVME core using the Xilinx AXI PCIE bridge to make it easy to connect accelerators to NVME. I'm working on packaging that for reuse.

 

I'll do some performance measurements this week. With my last measurements, it looks like the best I was getting was 110MB/s when requesting (32) 512-byte blocks at a time. The test design is capable of accepting 2000 MB/s. The card does deliver bursts at 2000 MB/s but there are idle gaps that reduce the overall bandwidth delivered.

0 Kudos
Reply
yu.liu
Visitor
Visitor
408 Views
Registered: ‎11-20-2019

Hi Jamey
If you happen to remember what you did 4 years ago, was it hard to modify/setup the core not to do any of the NVMe CMD parsing or mapping? Do you happen do know if there is any other vendor has implemented NVMf IP? Thanks.

Yu
0 Kudos
Reply
jamey.hicks
Observer
Observer
377 Views
Registered: ‎05-02-2014

Hi Yu,

I would like to make sure I understand your question. Are you looking for IP for an NVMe controller or NVMe device?

My IP is for a very simple NVMe controller. It is implemented in BSV (and the BSV compiler will be open source at the end of the January 2020). I think it is pretty simple to modify this controller to perform different actions.

There was another open source NVMe controller implemented in BSV at IIT Madras:

https://github.com/lightstor/ssd-controller

 https://bitbucket.org/casl/ssd-controller/src/master/

0 Kudos
Reply