aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAyush Mishra <ayush.m55@samsung.com>2024-10-01 06:58:33 +0530
committerKlaus Jensen <k.jensen@samsung.com>2024-11-04 19:09:45 +0100
commitdbaa2936b3a62422ae084cbee188bff9a2b544d7 (patch)
tree0feb1e5c5161a224517e21ed0d31b7d79f35afd6 /include
parent79e490058feccb234b49fb4557b4d4b5e7a9b813 (diff)
downloadqemu-dbaa2936b3a62422ae084cbee188bff9a2b544d7.zip
qemu-dbaa2936b3a62422ae084cbee188bff9a2b544d7.tar.gz
qemu-dbaa2936b3a62422ae084cbee188bff9a2b544d7.tar.bz2
hw/nvme: add NPDAL/NPDGL
Add the NPDGL and NPDAL fields to support large alignment and granularities. Signed-off-by: Ayush Mishra <ayush.m55@samsung.com> Reviewed-by: Klaus Jensen <k.jensen@samsung.com> Link: https://lore.kernel.org/r/20241001012833.3551820-1-ayush.m55@samsung.com [k.jensen: renamed the enum values] Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
Diffstat (limited to 'include')
-rw-r--r--include/block/nvme.h17
1 files changed, 16 insertions, 1 deletions
diff --git a/include/block/nvme.h b/include/block/nvme.h
index 39955a6..f4d1088 100644
--- a/include/block/nvme.h
+++ b/include/block/nvme.h
@@ -1418,7 +1418,12 @@ typedef struct QEMU_PACKED NvmeIdNsNvm {
uint8_t pic;
uint8_t rsvd9[3];
uint32_t elbaf[NVME_MAX_NLBAF];
- uint8_t rsvd268[3828];
+ uint32_t npdgl;
+ uint32_t nprg;
+ uint32_t npra;
+ uint32_t nors;
+ uint32_t npdal;
+ uint8_t rsvd288[3808];
} NvmeIdNsNvm;
typedef struct QEMU_PACKED NvmeIdNsInd {
@@ -1536,6 +1541,16 @@ enum NvmeIdNsMc {
NVME_ID_NS_MC_SEPARATE = 1 << 1,
};
+enum NvmeIdNsNsfeat {
+ NVME_ID_NS_NSFEAT_THINP = 1 << 0,
+ NVME_ID_NS_NSFEAT_NSABPNS = 1 << 1,
+ NVME_ID_NS_NSFEAT_DAE = 1 << 2,
+ NVME_ID_NS_NSFEAT_UIDREUSE = 1 << 3,
+ NVME_ID_NS_NSFEAT_OPTPERF_ALL = 3 << 4,
+ NVME_ID_NS_NSFEAT_MAM = 1 << 6,
+ NVME_ID_NS_NSFEAT_OPTRPERF = 1 << 7,
+};
+
#define NVME_ID_NS_DPS_TYPE(dps) (dps & NVME_ID_NS_DPS_TYPE_MASK)
enum NvmePIFormat {