NVMe: Initial commit for new storage interface
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:
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
@@ -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
@@ -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
@@ -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
@@ -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
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:
This commit implements the minimum from the specification to work with existing drivers.
Cc Keith Busch <[email protected]>Signed-off-by Keith Busch <[email protected]>---
v4 -> v5:
Callbdrv_flushon 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.
Kevin Wolf
AppliedAm 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
This commit implements the minimum from the specification to work with existing drivers.
Cc Keith Busch <[email protected]>Signed-off-by Keith Busch <[email protected]>
Thanks, applied to the block branch.
Kevin