From: Keith Busch Date: Thu, 5 Feb 2015 22:16:07 +0000 (-0700) Subject: Add 1.2 features to identify and show results X-Git-Tag: v0.1~76 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=4cef66aaaf05fb5c94ddc7ee58fed2c136d6bfd8;p=users%2Fsagi%2Fnvme-cli.git Add 1.2 features to identify and show results Signed-off-by: Keith Busch --- diff --git a/linux/nvme.h b/linux/nvme.h index 97364836..9071f6bc 100644 --- a/linux/nvme.h +++ b/linux/nvme.h @@ -67,11 +67,14 @@ struct nvme_id_ctrl { char fr[8]; __u8 rab; __u8 ieee[3]; - __u8 mic; + __u8 cmic; __u8 mdts; __u16 cntlid; - __u32 ver; - __u8 rsvd84[172]; + __le32 ver; + __le32 rtd3r; + __le32 rtd3e; + __le32 oaes; + __u8 rsvd96[160]; __le16 oacs; __u8 acl; __u8 aerl; @@ -83,7 +86,13 @@ struct nvme_id_ctrl { __u8 apsta; __le16 wctemp; __le16 cctemp; - __u8 rsvd270[242]; + __le16 mtfa; + __le32 hmpre; + __le32 hmmin; + __u8 tnvmcap[16]; + __u8 unvmcap[16]; + __le32 rpmbs; + __u8 rsvd316[196]; __u8 sqes; __u8 cqes; __u8 rsvd514[2]; @@ -134,7 +143,13 @@ struct nvme_id_ns { __le16 nawun; __le16 nawupf; __le16 nacwu; - __u8 rsvd40[80]; + __le16 nabsn; + __le16 nabo; + __le16 nabspf; + __u16 rsvd46; + __u8 nvmcap[16]; + __u8 rsvd64[40]; + __u8 nguid[16]; __u8 eui64[8]; struct nvme_lbaf lbaf[16]; __u8 rsvd192[192]; @@ -586,6 +601,8 @@ struct nvme_bar { #define nvme_admin_cmd nvme_passthru_cmd +#define NVME_VS(major, minor) (((major) << 16) | ((minor) << 8)) + #define NVME_IOCTL_ID _IO('N', 0x40) #define NVME_IOCTL_ADMIN_CMD _IOWR('N', 0x41, struct nvme_admin_cmd) #define NVME_IOCTL_SUBMIT_IO _IOW('N', 0x42, struct nvme_user_io) diff --git a/nvme.c b/nvme.c index ddfc9b0b..d39aae4b 100644 --- a/nvme.c +++ b/nvme.c @@ -436,8 +436,12 @@ static void show_nvme_id_ctrl(struct nvme_id_ctrl *ctrl, int vs) printf("rab : %d\n", ctrl->rab); printf("ieee : %02x%02x%02x\n", ctrl->ieee[0], ctrl->ieee[1], ctrl->ieee[2]); - printf("mic : %#x\n", ctrl->mic); + printf("cmic : %#x\n", ctrl->cmic); printf("mdts : %d\n", ctrl->mdts); + printf("cntlid : %x\n", ctrl->cntlid); + printf("ver : %x\n", ctrl->ver); + printf("rtd3r : %x\n", ctrl->rtd3r); + printf("rtd3e : %x\n", ctrl->rtd3e); printf("oacs : %#x\n", ctrl->oacs); printf("acl : %d\n", ctrl->acl); printf("aerl : %d\n", ctrl->aerl); @@ -445,10 +449,15 @@ static void show_nvme_id_ctrl(struct nvme_id_ctrl *ctrl, int vs) printf("lpa : %#x\n", ctrl->lpa); printf("elpe : %d\n", ctrl->elpe); printf("npss : %d\n", ctrl->npss); - printf("avscc : %d\n", ctrl->avscc); - printf("apsta : %d\n", ctrl->apsta); + printf("avscc : %#x\n", ctrl->avscc); + printf("apsta : %#x\n", ctrl->apsta); printf("wctemp : %d\n", ctrl->wctemp); printf("cctemp : %d\n", ctrl->cctemp); + printf("mtfa : %d\n", ctrl->mtfa); + printf("hmmin : %d\n", ctrl->hmmin); + printf("tnvmcap : %.0Lf\n", int128_to_double(ctrl->tnvmcap)); + printf("unvmcap : %.0Lf\n", int128_to_double(ctrl->unvmcap)); + printf("rpmbs : %#x\n", ctrl->rpmbs); printf("sqes : %#x\n", ctrl->sqes); printf("cqes : %#x\n", ctrl->cqes); printf("nn : %d\n", ctrl->nn); @@ -511,8 +520,19 @@ static void show_nvme_id_ns(struct nvme_id_ns *ns, int id, int vs) printf("nmic : %#x\n", ns->nmic); printf("rescap : %#x\n", ns->rescap); printf("fpi : %#x\n", ns->fpi); - printf("nawun : %#x\n", ns->nawun); - printf("nawupf : %#x\n", ns->nawupf); + printf("nawun : %d\n", ns->nawun); + printf("nawupf : %d\n", ns->nawupf); + printf("nacwu : %d\n", ns->nacwu); + printf("nabsn : %d\n", ns->nabsn); + printf("nabo : %d\n", ns->nabo); + printf("nabspf : %d\n", ns->nabspf); + printf("nvmcap : %.0Lf\n", int128_to_double(ns->nvmcap)); + + printf("nguid : "); + for (i = 0; i < 16; i++) + printf("%02x", ns->nguid[i]); + printf("\n"); + printf("eui64 : "); for (i = 0; i < 8; i++) printf("%02x", ns->eui64[i]);