From 103a27352b349f95ea06c9501ef3d770b0f8040d Mon Sep 17 00:00:00 2001 From: Francis Pravin Date: Wed, 7 Aug 2024 18:08:05 +0530 Subject: [PATCH] nvme-print: print the new fields added in TP4165 Print the new fields added in TP4165. Signed-off-by: Francis Pravin Reviewed-by: Steven Seungcheol Lee --- nvme-print-json.c | 2 ++ nvme-print-stdout.c | 18 ++++++++++++++++++ nvme.c | 3 +++ 3 files changed, 23 insertions(+) diff --git a/nvme-print-json.c b/nvme-print-json.c index 6c3e45f4..e71dea54 100644 --- a/nvme-print-json.c +++ b/nvme-print-json.c @@ -3033,6 +3033,7 @@ static void json_nvme_id_ctrl_nvm(struct nvme_id_ctrl_nvm *ctrl_nvm) obj_add_uint(r, "dmrl", ctrl_nvm->dmrl); obj_add_uint(r, "dmrsl", le32_to_cpu(ctrl_nvm->dmrsl)); obj_add_uint64(r, "dmsl", le64_to_cpu(ctrl_nvm->dmsl)); + obj_add_uint(r, "aocs", le16_to_cpu(ctrl_nvm->aocs)); json_print(r); } @@ -3066,6 +3067,7 @@ static void json_nvme_nvm_id_ns(struct nvme_nvm_id_ns *nvm_ns, } if (ns->nsfeat & 0x20) obj_add_int(r, "npdgl", le32_to_cpu(nvm_ns->npdgl)); + obj_add_uint(r, "tlbaag", le32_to_cpu(nvm_ns->tlbaag)); json_print(r); } diff --git a/nvme-print-stdout.c b/nvme-print-stdout.c index 568704a2..b9d902ab 100644 --- a/nvme-print-stdout.c +++ b/nvme-print-stdout.c @@ -3053,8 +3053,22 @@ static void stdout_id_ctrl(struct nvme_id_ctrl *ctrl, } } +static void stdout_id_ctrl_nvm_aocs(__u16 aocs) +{ + __u16 rsvd = (aocs & 0xfffe) >> 1; + __u8 ralbas = aocs & 0x1; + + if (rsvd) + printf(" [15:1] : %#x\tReserved\n", rsvd); + printf(" [0:0] : %#x\tReporting Allocated LBA %sSupported\n", ralbas, + ralbas ? "" : "Not "); + printf("\n"); +} + static void stdout_id_ctrl_nvm(struct nvme_id_ctrl_nvm *ctrl_nvm) { + int verbose = stdout_print_ops.flags & VERBOSE; + printf("NVMe Identify Controller NVM:\n"); printf("vsl : %u\n", ctrl_nvm->vsl); printf("wzsl : %u\n", ctrl_nvm->wzsl); @@ -3062,6 +3076,9 @@ static void stdout_id_ctrl_nvm(struct nvme_id_ctrl_nvm *ctrl_nvm) printf("dmrl : %u\n", ctrl_nvm->dmrl); printf("dmrsl : %u\n", le32_to_cpu(ctrl_nvm->dmrsl)); printf("dmsl : %"PRIu64"\n", le64_to_cpu(ctrl_nvm->dmsl)); + printf("aocs : %u\n", le16_to_cpu(ctrl_nvm->aocs)); + if (verbose) + stdout_id_ctrl_nvm_aocs(le16_to_cpu(ctrl_nvm->aocs)); } static void stdout_nvm_id_ns_pic(__u8 pic) @@ -3159,6 +3176,7 @@ static void stdout_nvm_id_ns(struct nvme_nvm_id_ns *nvm_ns, unsigned int nsid, } if (ns->nsfeat & 0x20) printf("npdgl : %#x\n", le32_to_cpu(nvm_ns->npdgl)); + printf("tlbaag: %#x\n", le32_to_cpu(nvm_ns->tlbaag)); } static void stdout_zns_id_ctrl(struct nvme_zns_id_ctrl *ctrl) diff --git a/nvme.c b/nvme.c index 20dfee64..a69ac9cd 100644 --- a/nvme.c +++ b/nvme.c @@ -3467,6 +3467,9 @@ static int nvm_id_ctrl(int argc, char **argv, struct command *cmd, return err; } + if (argconfig_parse_seen(opts, "verbose")) + flags |= VERBOSE; + ctrl_nvm = nvme_alloc(sizeof(*ctrl_nvm)); if (!ctrl_nvm) return -ENOMEM; -- 2.50.1