From: Klaus Jensen <k.jen...@samsung.com> v2: bummer, v1 didn't apply cleanly to master (it applied to Kevin's block tree); rebased to make patchew happy
This adds a new 'nvme-ns' device that attaches to the nvme device through a bus. This decouples the nvme controller and nvme namespaces such that multiple namespaces may be attached to the controller. With this in place, we can allocate a fresh pci vendor/device id and get rid of the Intel id pair that causes the Linux kernel to apply a bunch of quirks that the device no longer has. Based-on: <20200629203155.1236860-1-...@irrelevant.dk> ("[PATCH 0/3] hw/block/nvme: support scatter gather lists") Klaus Jensen (4): hw/block/nvme: refactor identify active namespace id list hw/block/nvme: support multiple namespaces pci: allocate pci id for nvme hw/block/nvme: change controller pci id MAINTAINERS | 1 + docs/specs/nvme.txt | 23 ++++ docs/specs/pci-ids.txt | 1 + hw/block/Makefile.objs | 2 +- hw/block/nvme-ns.c | 172 ++++++++++++++++++++++++++ hw/block/nvme-ns.h | 66 ++++++++++ hw/block/nvme.c | 273 +++++++++++++++++++++++++++-------------- hw/block/nvme.h | 45 +++---- hw/block/trace-events | 8 +- hw/core/machine.c | 1 + include/hw/pci/pci.h | 1 + 11 files changed, 472 insertions(+), 121 deletions(-) create mode 100644 docs/specs/nvme.txt create mode 100644 hw/block/nvme-ns.c create mode 100644 hw/block/nvme-ns.h -- 2.27.0