summaryrefslogtreecommitdiffstats
path: root/sys/dev/ic/nvmevar.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Add hibernate support for nvme(4). This creates a separate IO queue that isjmatthew2017-05-291-1/+5
| | | | | | | | only active during hibernation, preallocating the the submission and completion queues during attach as they need to be page-aligned. tested on an x270 that successfully hibernates now. ok dlg@
* nvme: Add suspend/resume codesf2017-05-271-1/+3
| | | | | | | Based on an initial patch by ehrhardt@ . Thanks to claudio@ for testing and deraadt@ for advice. "go ahead" deraadt@
* mask and unmask the interrupt source in an intx specific intr handler.dlg2016-10-251-1/+2
| | | | | | | | | | | | | | | it seems devices using levelled intx interrupts need to explicitely ack interrupts by masking and unmasking the source around the completion ring handling. without this completions can be lost, which in turn causes long (permanent?) stalls in the block layer under heavy write load. ive experienced this problem with an intel nvme part that only has intx and msix support. because we dont support msix yet we only use intx on it. it appeared to lock up before this fix. this has been tested on both that intel board and a samsung with msi. this fix was based on work found in code by nonaka
* provide a shutdown hook that follows the procedure in the docsdlg2016-04-141-1/+7
|
* tabs, not spacesdlg2016-04-141-3/+3
|
* wire up the scsi midlayer. scsibus should appear after this.dlg2016-04-131-1/+4
|
* allocate an array of things to hold info about namespacesdlg2016-04-131-1/+6
| | | | so far the only useful info is namespace identify info
* stash the controller identify and number of namespaces in the softc.dlg2016-04-131-1/+6
| | | | | the nn is used to size the scsi bus, and the controller identify is used to build responses for various scsi commands.
* make a place for q_id to godlg2016-04-131-1/+2
|
* i wanted to work on this in the tree so i could commit lots of smalldlg2014-04-151-4/+32
| | | | | | | | | | | steps, but unfortunately the next step after "talk to the chips registers" was "get command queues working" which ended up being a huge amount of plumbing. anyway, this lets me successfully run an identify controller command against the chip and should be cut up the right way to be usable for io command submissions. will need to think about how to avoid overflowing rings though.
* start working on a driver for non volatile memory express controllers.dlg2014-04-121-0/+58