qemu/hw/block
Klaus Jensen 7f0f1acedf hw/block/nvme: support multiple namespaces
This adds support for multiple namespaces by introducing a new 'nvme-ns'
device model. The nvme device creates a bus named from the device name
('id'). The nvme-ns devices then connect to this and registers
themselves with the nvme device.

This changes how an nvme device is created. Example with two namespaces:

  -drive file=nvme0n1.img,if=none,id=disk1
  -drive file=nvme0n2.img,if=none,id=disk2
  -device nvme,serial=deadbeef,id=nvme0
  -device nvme-ns,drive=disk1,bus=nvme0,nsid=1
  -device nvme-ns,drive=disk2,bus=nvme0,nsid=2

The drive property is kept on the nvme device to keep the change
backward compatible, but the property is now optional. Specifying a
drive for the nvme device will always create the namespace with nsid 1.

Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
Reviewed-by: Keith Busch <kbusch@kernel.org>
Reviewed-by: Minwoo Im <minwoo.im.dev@gmail.com>
2020-10-27 07:24:47 +01:00
..
dataplane meson: convert hw/block 2020-08-21 06:30:32 -04:00
block.c block: make BlockConf size props 32bit and accept size suffixes 2020-06-17 14:53:40 +02:00
cdrom.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
ecc.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
fdc.c Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
hd-geometry.c block: Remove blk_pread_unthrottled() 2019-08-16 10:25:16 +02:00
Kconfig hw/m68k: add a dummy SWIM floppy controller 2019-10-28 19:06:51 +01:00
m25p80.c Use OBJECT_DECLARE_TYPE when possible 2020-09-18 14:12:32 -04:00
meson.build hw/block/nvme: support multiple namespaces 2020-10-27 07:24:47 +01:00
nand.c Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
nvme-ns.c hw/block/nvme: support multiple namespaces 2020-10-27 07:24:47 +01:00
nvme-ns.h hw/block/nvme: support multiple namespaces 2020-10-27 07:24:47 +01:00
nvme.c hw/block/nvme: support multiple namespaces 2020-10-27 07:24:47 +01:00
nvme.h hw/block/nvme: support multiple namespaces 2020-10-27 07:24:47 +01:00
onenand.c Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
pflash_cfi01.c hw: Remove superfluous breaks 2020-09-01 08:38:00 +02:00
pflash_cfi02.c pflash: Use ERRP_GUARD() 2020-07-10 15:18:09 +02:00
swim.c swim: Rename struct SWIM to Swim 2020-08-27 14:04:55 -04:00
tc58128.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
trace-events hw/block/nvme: support multiple namespaces 2020-10-27 07:24:47 +01:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
vhost-user-blk.c vhost: recheck dev state in the vhost_migration_log routine 2020-09-29 02:14:29 -04:00
virtio-blk.c virtio-blk: undo destructive iov_discard_*() operations 2020-09-23 13:41:58 +01:00
xen_blkif.h xen: Import other xen/io/*.h 2019-06-24 10:42:30 +01:00
xen-block.c xen: Use ERRP_GUARD() 2020-07-10 15:18:09 +02:00