summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--hw/nvme/ns.c4
-rw-r--r--include/block/nvme.h9
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 {