]> www.infradead.org Git - users/sagi/nvme-cli.git/commitdiff
nvme-cli: add BPS bit field to CAP controller register
authorMinwoo Im <minwoo.im.dev@gmail.com>
Fri, 15 Dec 2017 16:12:06 +0000 (01:12 +0900)
committerMinwoo Im <minwoo.im.dev@gmail.com>
Wed, 10 Jan 2018 12:19:32 +0000 (21:19 +0900)
NVMe 1.3 spec introduced BPS(Boot Partition Support) bit field in CAP of
controller register.
Add this bit field to "struct nvme_bar_cap" by changing
"css_nssrs_dstrd" field to "bps_css_nssrs_dstrd".
Also add a print for BPS bit field to print CAP properly when show-regs
command with human-readable.

Signed-off-by: Minwoo Im <minwoo.im.dev@gmail.com>
nvme-print.c
nvme.h

index 0008f6fe0f34ebffb31fa968e250a75656a29747..d6b16e0a71323937c01b51af78c0e69d986543b9 100644 (file)
@@ -2016,10 +2016,11 @@ void show_registers_cap(struct nvme_bar_cap *cap)
 {
        printf("\tMemory Page Size Maximum      (MPSMAX): %u bytes\n", 1 <<  (12 + ((cap->mpsmax_mpsmin & 0xf0) >> 4)));
        printf("\tMemory Page Size Minimum      (MPSMIN): %u bytes\n", 1 <<  (12 + (cap->mpsmax_mpsmin & 0x0f)));
+       printf("\tBoot Partition Support           (BPS): %s\n", (cap->bps_css_nssrs_dstrd & 0x2000) ? "Yes":"No");
        printf("\tCommand Sets Supported           (CSS): NVM command set is %s\n",
-                       (cap->css_nssrs_dstrd & 0x0020) ? "supported":"not supported");
-       printf("\tNVM Subsystem Reset Supported  (NSSRS): %s\n", (cap->css_nssrs_dstrd & 0x0010) ? "Yes":"No");
-       printf("\tDoorbell Stride                (DSTRD): %u bytes\n", 1 << (2 + (cap->css_nssrs_dstrd & 0x000f)));
+                       (cap->bps_css_nssrs_dstrd & 0x0020) ? "supported":"not supported");
+       printf("\tNVM Subsystem Reset Supported  (NSSRS): %s\n", (cap->bps_css_nssrs_dstrd & 0x0010) ? "Yes":"No");
+       printf("\tDoorbell Stride                (DSTRD): %u bytes\n", 1 << (2 + (cap->bps_css_nssrs_dstrd & 0x000f)));
        printf("\tTimeout                           (TO): %u ms\n", cap->to * 500);
        printf("\tArbitration Mechanism Supported  (AMS): Weighted Round Robin with Urgent Priority Class is %s\n",
                        (cap->ams_cqr & 0x02) ? "supported":"not supported");
diff --git a/nvme.h b/nvme.h
index a23f28bcfeeebfa2ec6a72cbef93bb9a75c562fb..94e42f1e190291c5efea65261cf2b3e40da8ac10 100644 (file)
--- a/nvme.h
+++ b/nvme.h
@@ -85,7 +85,7 @@ struct nvme_bar_cap {
        __u16   mqes;
        __u8    ams_cqr;
        __u8    to;
-       __u16   css_nssrs_dstrd;
+       __u16   bps_css_nssrs_dstrd;
        __u8    mpsmax_mpsmin;
        __u8    reserved;
 };