diff options
-rw-r--r-- | hw/nvme/ns.c | 4 | ||||
-rw-r--r-- | include/block/nvme.h | 9 |
2 files changed, 11 insertions, 2 deletions
diff --git a/hw/nvme/ns.c b/hw/nvme/ns.c index 992e5a13f5..8066e311d1 100644 --- a/hw/nvme/ns.c +++ b/hw/nvme/ns.c @@ -82,10 +82,10 @@ static int nvme_ns_init(NvmeNamespace *ns, Error **errp) ms = ns->params.ms; if (ns->params.ms) { - id_ns->mc = 0x3; + id_ns->mc = NVME_ID_NS_MC_EXTENDED | NVME_ID_NS_MC_SEPARATE; if (ns->params.mset) { - id_ns->flbas |= 0x10; + id_ns->flbas |= NVME_ID_NS_FLBAS_EXTENDED; } id_ns->dpc = 0x1f; diff --git a/include/block/nvme.h b/include/block/nvme.h index 0ff9ce17a9..333affdb85 100644 --- a/include/block/nvme.h +++ b/include/block/nvme.h @@ -1341,6 +1341,15 @@ enum NvmeIdNsDps { NVME_ID_NS_DPS_FIRST_EIGHT = 8, }; +enum NvmeIdNsFlbas { + NVME_ID_NS_FLBAS_EXTENDED = 1 << 4, +}; + +enum NvmeIdNsMc { + NVME_ID_NS_MC_EXTENDED = 1 << 0, + NVME_ID_NS_MC_SEPARATE = 1 << 1, +}; + #define NVME_ID_NS_DPS_TYPE(dps) (dps & NVME_ID_NS_DPS_TYPE_MASK) typedef struct NvmeDifTuple { |