Print this page
NEX-16880 update NVME code
8804 nvme: add alias for pciclass,010802
Reviewed by: Peter Tribble <peter.tribble@gmail.com>
Reviewed by: Michal Nowak <mnowak@startmail.com>
Approved by: Richard Lowe <richlowe@richlowe.net>
8979 nvmeadm(1m): ctl/[ns] -> ctl[/ns]
Reviewed by: Yuri Pankov <yuripv@gmx.com>
Reviewed by: Rich Lowe <richlowe@richlowe.net>
Reviewed by: Rob Johnston <rob.johnston@joyent.com>
Reviewed by: Toomas Soome <tsoome@me.com>
Approved by: Dan McDonald <danmcd@joyent.com>
8945 nvme panics when async events are not supported
Reviewed by: Hans Rosenfeld <rosenfeld@grumpf.hope-2000.org>
Reviewed by: Yuri Pankov <yuripv@yuripv.net>
Reviewed by: Michal Nowak <mnowak@startmail.com>
Approved by: Richard Lowe <richlowe@richlowe.net>
NEX-15208 nvme: Software Progress Marker feature is optional
Reviewed by: Dan Fields <dan.fields@nexenta.com>
Reviewed by: Cynthia Eastham <cynthia.eastham@nexenta.com>
NEX-8020 illumos nvme changes
Reviewed by: Dan Fields <dan.fields@nexenta.com>
Reviewed by: Gordon Ross <gordon.ross@nexenta.com>
NEX-7539 nvme fails to get error log page from Samsung PM1725
Reviewed by: Dan Fields <dan.fields@nexenta.com>
Reviewed by: Rick McNeal <rick.mcneal@nexenta.com>
Reviewed by: Gordon Ross <gordon.ross@nexenta.com>
NEX-7369 bump nvme admin command timeout to 1s
Reviewed by: Yuri Pankov <yuri.pankov@nexenta.com>
Reviewed by: Rick McNeal <rick.mcneal@nexenta.com>
NEX-5192 Samsung SSD SM951-NVMe shows checksum errors
Reviewed by: Yuri Pankov <yuri.pankov@nexenta.com>
Reviewed by: Josef 'Jeff' Sipek <josef.sipek@nexenta.com>
NEX-5792 support NVMe namespace EUI64
Reviewed by: Josef 'Jeff' Sipek <josef.sipek@nexenta.com>
Reviewed by: Rick McNeal <rick.mcneal@nexenta.com>
NEX-6132 nvmeadm(1M) get-feature command could use some cleanup
Reviewed by: Josef 'Jeff' Sipek <josef.sipek@nexenta.com>
Reviewed by: Rick McNeal <rick.mcneal@nexenta.com>
NEX-6130 basic NVMe 1.1 support
Reviewed by: Josef 'Jeff' Sipek <josef.sipek@nexenta.com>
Reviewed by: Rick McNeal <rick.mcneal@nexenta.com>
NEX-5791 support NVMe volatile write cache
Reviewed by: Yuri Pankov <yuri.pankov@nexenta.com>
Reviewed by: Josef 'Jeff' Sipek <josef.sipek@nexenta.com>
NEX-4431 want NVMe management utility
Reviewed by: Josef 'Jeff' Sipek <josef.sipek@nexenta.com>
Reviewed by: Sanjay Nadkarni <sanjay.nadkarni@nexenta.com>
NEX-4424 kstat module needs cleanup
Reviewed by: Richard Elling <Richard.Elling@RichardElling.com>
Reviewed by: Garrett D'Amore <garrett@damore.org>
NEX-4420 format(1M) should be able to use device inquiry properties
Reviewed by: Dan McDonald <danmcd@omniti.com>
NEX-4419 blkdev and blkdev drivers should provide inquiry properties
Reviewed by: Garrett D'Amore <garrett@damore.org>
Reviewed by: Josef 'Jeff' Sipek <josef.sipek@nexenta.com>
NEX-2182 need driver for Intel NVM Express (nvme) (preview)
Reviewed by: Dan Fields <dan.fields@nexenta.com>
   1 /*
   2  * This file and its contents are supplied under the terms of the
   3  * Common Development and Distribution License ("CDDL"), version 1.0.
   4  * You may only use this file in accordance with the terms of version
   5  * 1.0 of the CDDL.
   6  *
   7  * A full copy of the text of the CDDL should have accompanied this
   8  * source.  A copy of the CDDL is also available via the Internet at
   9  * http://www.illumos.org/license/CDDL.
  10  */
  11 
  12 /*
  13  * Copyright 2016 Nexenta Systems, Inc. All rights reserved.
  14  * Copyright 2016 The MathWorks, Inc. All rights reserved.
  15  * Copyright 2017 Joyent, Inc.
  16  */
  17 
  18 #ifndef _NVME_VAR_H
  19 #define _NVME_VAR_H
  20 
  21 #include <sys/ddi.h>
  22 #include <sys/sunddi.h>
  23 #include <sys/blkdev.h>
  24 #include <sys/taskq_impl.h>
  25 #include <sys/list.h>
  26 
  27 /*
  28  * NVMe driver state
  29  */
  30 
  31 #ifdef __cplusplus
  32 extern "C" {
  33 #endif


 136 
 137         char *n_product;
 138         char *n_vendor;
 139 
 140         nvme_version_t n_version;
 141         boolean_t n_dead;
 142         boolean_t n_strict_version;
 143         boolean_t n_ignore_unknown_vendor_status;
 144         uint32_t n_admin_queue_len;
 145         uint32_t n_io_queue_len;
 146         uint16_t n_async_event_limit;
 147         uint_t n_min_block_size;
 148         uint16_t n_abort_command_limit;
 149         uint64_t n_max_data_transfer_size;
 150         boolean_t n_write_cache_present;
 151         boolean_t n_write_cache_enabled;
 152         int n_error_log_len;
 153         boolean_t n_lba_range_supported;
 154         boolean_t n_auto_pst_supported;
 155         boolean_t n_async_event_supported;

 156 
 157         int n_nssr_supported;
 158         int n_doorbell_stride;
 159         int n_timeout;
 160         int n_arbitration_mechanisms;
 161         int n_cont_queues_reqd;
 162         int n_max_queue_entries;
 163         int n_pageshift;
 164         int n_pagesize;
 165 
 166         int n_namespace_count;
 167         uint16_t n_ioq_count;
 168 
 169         nvme_identify_ctrl_t *n_idctl;
 170 
 171         nvme_qpair_t *n_adminq;
 172         nvme_qpair_t **n_ioq;
 173 
 174         nvme_namespace_t *n_ns;
 175 


   1 /*
   2  * This file and its contents are supplied under the terms of the
   3  * Common Development and Distribution License ("CDDL"), version 1.0.
   4  * You may only use this file in accordance with the terms of version
   5  * 1.0 of the CDDL.
   6  *
   7  * A full copy of the text of the CDDL should have accompanied this
   8  * source.  A copy of the CDDL is also available via the Internet at
   9  * http://www.illumos.org/license/CDDL.
  10  */
  11 
  12 /*
  13  * Copyright 2018 Nexenta Systems, Inc.
  14  * Copyright 2016 The MathWorks, Inc. All rights reserved.
  15  * Copyright 2017 Joyent, Inc.
  16  */
  17 
  18 #ifndef _NVME_VAR_H
  19 #define _NVME_VAR_H
  20 
  21 #include <sys/ddi.h>
  22 #include <sys/sunddi.h>
  23 #include <sys/blkdev.h>
  24 #include <sys/taskq_impl.h>
  25 #include <sys/list.h>
  26 
  27 /*
  28  * NVMe driver state
  29  */
  30 
  31 #ifdef __cplusplus
  32 extern "C" {
  33 #endif


 136 
 137         char *n_product;
 138         char *n_vendor;
 139 
 140         nvme_version_t n_version;
 141         boolean_t n_dead;
 142         boolean_t n_strict_version;
 143         boolean_t n_ignore_unknown_vendor_status;
 144         uint32_t n_admin_queue_len;
 145         uint32_t n_io_queue_len;
 146         uint16_t n_async_event_limit;
 147         uint_t n_min_block_size;
 148         uint16_t n_abort_command_limit;
 149         uint64_t n_max_data_transfer_size;
 150         boolean_t n_write_cache_present;
 151         boolean_t n_write_cache_enabled;
 152         int n_error_log_len;
 153         boolean_t n_lba_range_supported;
 154         boolean_t n_auto_pst_supported;
 155         boolean_t n_async_event_supported;
 156         boolean_t n_progress_supported;
 157 
 158         int n_nssr_supported;
 159         int n_doorbell_stride;
 160         int n_timeout;
 161         int n_arbitration_mechanisms;
 162         int n_cont_queues_reqd;
 163         int n_max_queue_entries;
 164         int n_pageshift;
 165         int n_pagesize;
 166 
 167         int n_namespace_count;
 168         uint16_t n_ioq_count;
 169 
 170         nvme_identify_ctrl_t *n_idctl;
 171 
 172         nvme_qpair_t *n_adminq;
 173         nvme_qpair_t **n_ioq;
 174 
 175         nvme_namespace_t *n_ns;
 176