Skip to contentSkip to conversation

NVMe: Initial commit for new storage interface

PATCH Applied Keith Busch 3 participants 3 messages Jun 4, 2013 – Jun 11, 2013

lore
Share & tools
lore
#0 lore raw

PATCH v5 1/1 NVMe: Initial commit for new storage interface

Initial commit for emulated Non-Volatile-Memory Express (NVMe) pci storage device.

NVMe is an open, industry driven storage specification defining an optimized register and command set designed to deliver the full capabilities of non-volatile memory on PCIe SSDs. Further information may be found on the organizations website at:

http://www.nvmexpress.org/

This commit implements the minimum from the specification to work with existing drivers.

---
v4 -> v5:
Call bdrv_flush on controller shutdown.
Mark device as 'unmigratable'.
More detailed commit message.
Block device accounting.
Fixed maintainer file for updated hw/ layout.

 MAINTAINERS              |    5 +
 default-configs/pci.mak  |    1 +
 hw/block/Makefile.objs   |    1 +
 hw/block/nvme.c          |  885 ++++++++++++++++++++++++++++++++++++++++++++++
 hw/block/nvme.h          |  711 +++++++++++++++++++++++++++++++++++++
 include/hw/pci/pci_ids.h |    1 +
 6 files changed, 1604 insertions(+), 0 deletions(-)
 create mode 100644 hw/block/nvme.c
 create mode 100644 hw/block/nvme.h
MAINTAINERS +5 -0
index be02724..5f80f92 100644
@@ -609,6 +609,11 @@ S: Supported
 F: hw/char/virtio-serial-bus.c
 F: hw/char/virtio-console.c
 
+nvme
+M: Keith Busch <[email protected]>
+S: Supported
+F: hw/block/nvme*
+
 Xilinx EDK
 M: Peter Crosthwaite <[email protected]>
 M: Edgar E. Iglesias <[email protected]>
default-configs/pci.mak +1 -0
index d557eab..91b1e92 100644
@@ -29,3 +29,4 @@ CONFIG_SERIAL_PCI=y
 CONFIG_IPACK=y
 CONFIG_WDT_IB6300ESB=y
 CONFIG_PCI_TESTDEV=y
+CONFIG_NVME_PCI=y
hw/block/Makefile.objs +1 -0
index e4329a0..25acc67 100644
@@ -8,6 +8,7 @@ common-obj-$(CONFIG_XEN_BACKEND) += xen_disk.o
 common-obj-$(CONFIG_ECC) += ecc.o
 common-obj-$(CONFIG_ONENAND) += onenand.o
 common-obj-$(CONFIG_PC_SYSFW) += pc_sysfw.o
+common-obj-$(CONFIG_NVME_PCI) += nvme.o
 
 obj-$(CONFIG_SH4) += tc58128.o
 
hw/block/nvme.c new file +885 -0

885 lines not on this page · raw message

hw/block/nvme.h new file +711 -0

711 lines not on this page · raw message

include/hw/pci/pci_ids.h +1 -0
index d8dc2f1..08f8161 100644
@@ -19,6 +19,7 @@
 #define PCI_CLASS_STORAGE_IDE            0x0101
 #define PCI_CLASS_STORAGE_RAID           0x0104
 #define PCI_CLASS_STORAGE_SATA           0x0106
+#define PCI_CLASS_STORAGE_EXPRESS        0x0108
 #define PCI_CLASS_STORAGE_OTHER          0x0180
 
 #define PCI_CLASS_NETWORK_ETHERNET       0x0200
Signature · 1 line
1.7.0.4
Reviewed-by on v5 1/1
#1 lore raw
Quoted 23 lines · Keith Busch

Initial commit for emulated Non-Volatile-Memory Express (NVMe) pci storage device.

NVMe is an open, industry driven storage specification defining an optimized register and command set designed to deliver the full capabilities of non-volatile memory on PCIe SSDs. Further information may be found on the organizations website at:

http://www.nvmexpress.org/

This commit implements the minimum from the specification to work with existing drivers.

---
v4 -> v5:
Call bdrv_flush on controller shutdown.
Mark device as 'unmigratable'.
More detailed commit message.
Block device accounting.
Fixed maintainer file for updated hw/ layout.

Quoted 9 lines
 MAINTAINERS              |    5 +
 default-configs/pci.mak  |    1 +
 hw/block/Makefile.objs   |    1 +
 hw/block/nvme.c          |  885 ++++++++++++++++++++++++++++++++++++++++++++++
 hw/block/nvme.h          |  711 +++++++++++++++++++++++++++++++++++++
 include/hw/pci/pci_ids.h |    1 +
 6 files changed, 1604 insertions(+), 0 deletions(-)
 create mode 100644 hw/block/nvme.c
 create mode 100644 hw/block/nvme.h

Happy from a block layer perspective.

Applied
#2 lore raw
In reply to Keith Busch

Am 04.06.2013 um 17:17 hat Keith Busch geschrieben:

Quoted 8 lines

Initial commit for emulated Non-Volatile-Memory Express (NVMe) pci storage device.

NVMe is an open, industry driven storage specification defining an optimized register and command set designed to deliver the full capabilities of non-volatile memory on PCIe SSDs. Further information may be found on the organizations website at:

Quoted 7 lines

http://www.nvmexpress.org/

This commit implements the minimum from the specification to work with existing drivers.

Thanks, applied to the block branch.

Kevin