Visit Jeremy's Blog.
Go Back > Forums > Non-*NIX Forums > Programming
User Name
Programming This forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.


  Search this Thread
Old 09-05-2019, 03:43 PM   #1
LQ Newbie
Registered: Jan 2013
Posts: 19

Rep: Reputation: Disabled
Creating a NVMe driver for a custom controller

I am a hardware engineer and I have developed a NVMe controller that is used in a FPGA. This controller takes care of the NVMe protocol (setting up the PCIe link, admin and IO queue control, DMA to/from memory etc). The controller is attached to a bus that has a ARM CPU and DDR memory attached.

I would like to use this with Linux but I need a driver. The Linux NVMe driver is not suitable, as it does the queue management itself. My driver just needs to submit commands to the controller and then wait until they finish. I am not a Linux expert so I am trying to figure out how to do this.

Would it be possible to write a block driver to do this? The Linux driver seems quite complex, but it has more to deal with. I am hoping that mine could be simpler. I am also happy to pay someone to do this, if they have better Linux skills then myself. Thanks
Old 09-06-2019, 04:22 PM   #2
Senior Member
Registered: Feb 2011
Location: Massachusetts, USA
Distribution: CentOS 6 & 7
Posts: 3,194

Rep: Reputation: 857Reputation: 857Reputation: 857Reputation: 857Reputation: 857Reputation: 857Reputation: 857
Nothing waits for completion in the linux kernel. That would prevent multiple processes from running properly. Issue the I/O and interrupt on completion. Queues allow you to submit multiple I/Os without having to worry about whether previous operations have completed. Have a look at


driver, nvme

Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off

Similar Threads
Thread Thread Starter Forum Replies Last Post
LXer: Data in a Flash, Part II: Using NVMe Drives and Creating an NVMe over Fabrics Network LXer Syndicated Linux News 0 05-20-2019 11:41 PM
Migrate Linux/win10 dual boot from MBR nvme drive to a new GPT nvme drive bluemoo Linux - Software 7 09-25-2018 06:42 PM
SCSI controller - Add extra controller & add a disc to the extra controller raj100 Linux - Hardware 1 11-01-2015 11:30 AM
NVMe driver ravish165 Linux - Software 1 04-16-2015 04:48 AM > Forums > Non-*NIX Forums > Programming

All times are GMT -5. The time now is 06:46 PM.

Main Menu
Write for LQ is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration