From 75b1546d44fe1a0c529aaf1649c648aa8adbefec Mon Sep 17 00:00:00 2001 From: Affe Date: Wed, 9 Dec 2020 14:44:30 +0200 Subject: [PATCH] Adding and updating some ns-id paramters to be inline with NVMe spec. rev. 1.4b --- nvme-print.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) mode change 100644 => 100755 nvme-print.c diff --git a/nvme-print.c b/nvme-print.c old mode 100644 new mode 100755 index 88b97314..ec909d5d --- a/nvme-print.c +++ b/nvme-print.c @@ -2271,6 +2271,7 @@ static void nvme_show_id_ns_nsfeat(__u8 nsfeat) { __u8 rsvd = (nsfeat & 0xE0) >> 5; __u8 ioopt = (nsfeat & 0x10) >> 4; + __u8 uidreuse = (nsfeat & 0x08) >> 3; __u8 dulbe = (nsfeat & 0x4) >> 2; __u8 na = (nsfeat & 0x2) >> 1; __u8 thin = nsfeat & 0x1; @@ -2278,6 +2279,8 @@ static void nvme_show_id_ns_nsfeat(__u8 nsfeat) printf(" [7:5] : %#x\tReserved\n", rsvd); printf(" [4:4] : %#x\tNPWG, NPWA, NPDG, NPDA, and NOWS are %sSupported\n", ioopt, ioopt ? "" : "Not "); + printf(" [3:3] : %#x\tNGUID and EUI64 may %sbe reused\n", + uidreuse, uidreuse ? "Not " : ""); printf(" [2:2] : %#x\tDeallocated or Unwritten Logical Block error %sSupported\n", dulbe, dulbe ? "" : "Not "); printf(" [1:1] : %#x\tNamespace uses %s\n", @@ -2367,7 +2370,7 @@ static void nvme_show_id_ns_nmic(__u8 nmic) static void nvme_show_id_ns_rescap(__u8 rescap) { - __u8 rsvd = (rescap & 0x80) >> 7; + __u8 iekr = (rescap & 0x80) >> 7; __u8 eaar = (rescap & 0x40) >> 6; __u8 wear = (rescap & 0x20) >> 5; __u8 earo = (rescap & 0x10) >> 4; @@ -2375,8 +2378,9 @@ static void nvme_show_id_ns_rescap(__u8 rescap) __u8 ea = (rescap & 0x4) >> 2; __u8 we = (rescap & 0x2) >> 1; __u8 ptpl = rescap & 0x1; - if (rsvd) - printf(" [7:7] : %#x\tReserved\n", rsvd); + + printf(" [7:7] : %#x\tIgnore Existing Key - Used as defined in revision %s\n", + iekr, iekr ? "1.3 or later" : "1.2.1 or earlier"); printf(" [6:6] : %#x\tExclusive Access - All Registrants %sSupported\n", eaar, eaar ? "" : "Not "); printf(" [5:5] : %#x\tWrite Exclusive - All Registrants %sSupported\n", @@ -2487,9 +2491,11 @@ void nvme_show_id_ns(struct nvme_id_ns *ns, unsigned int nsid, printf("mssrl : %u\n", le16_to_cpu(ns->mssrl)); printf("mcl : %d\n", le32_to_cpu(ns->mcl)); printf("msrc : %u\n", ns->msrc); + printf("reserved:\n"); + printf("anagrpid: %u\n", le32_to_cpu(ns->anagrpid)); + printf("reserved:\n"); printf("nsattr : %u\n", ns->nsattr); printf("nvmsetid: %d\n", le16_to_cpu(ns->nvmsetid)); - printf("anagrpid: %u\n", le32_to_cpu(ns->anagrpid)); printf("endgid : %d\n", le16_to_cpu(ns->endgid)); printf("nguid : "); @@ -2519,6 +2525,8 @@ void nvme_show_id_ns(struct nvme_id_ns *ns, unsigned int nsid, i == (ns->flbas & 0xf) ? "(in use)" : ""); } + printf("reserved:\n"); + if (vs) { printf("vs[]:\n"); d(ns->vs, sizeof(ns->vs), 16, 1); -- 2.50.1