From: alison.schofield@intel.com
To: nvdimm@lists.linux.dev, linux-cxl@vger.kernel.org
Cc: Alison Schofield <alison.schofield@intel.com>,
Dan Williams <dan.j.williams@intel.com>
Subject: [ndctl PATCH] cxl/list: add firmware_version to default memdev listing
Date: Thu, 25 Jul 2024 00:30:50 -0700 [thread overview]
Message-ID: <20240725073050.219952-1-alison.schofield@intel.com> (raw)
From: Alison Schofield <alison.schofield@intel.com>
cxl list users may discover the firmware revision of a memory
device by using the -F option to cxl list. That option uses
the CXL GET_FW_INFO command and emits this json:
"firmware":{
"num_slots":2,
"active_slot":1,
"staged_slot":1,
"online_activate_capable":false,
"slot_1_version":"BWFW VERSION 0",
"fw_update_in_progress":false
}
Since device support for GET_FW_INFO is optional, the above method
is not guaranteed. However, the IDENTIFY command is mandatory and
provides the current firmware revision.
Accessors already exist for retrieval from sysfs so simply add
the new json member to the default memdev listing.
This means users of the -F option will get the same info twice if
GET_FW_INFO is supported.
[
{
"memdev":"mem9",
"pmem_size":268435456,
"serial":0,
"host":"0000:c0:00.0"
"firmware_version":"BWFW VERSION 00",
}
]
Suggested-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Alison Schofield <alison.schofield@intel.com>
---
cxl/json.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/cxl/json.c b/cxl/json.c
index 0c27abaea0bd..0b0b186a2594 100644
--- a/cxl/json.c
+++ b/cxl/json.c
@@ -577,6 +577,7 @@ struct json_object *util_cxl_memdev_to_json(struct cxl_memdev *memdev,
const char *devname = cxl_memdev_get_devname(memdev);
struct json_object *jdev, *jobj;
unsigned long long serial, size;
+ const char *fw_version;
int numa_node;
int qos_class;
@@ -646,6 +647,13 @@ struct json_object *util_cxl_memdev_to_json(struct cxl_memdev *memdev,
if (jobj)
json_object_object_add(jdev, "host", jobj);
+ fw_version = cxl_memdev_get_firmware_version(memdev);
+ if (fw_version) {
+ jobj = json_object_new_string(fw_version);
+ if (jobj)
+ json_object_object_add(jdev, "firmware_version", jobj);
+ }
+
if (!cxl_memdev_is_enabled(memdev)) {
jobj = json_object_new_string("disabled");
if (jobj)
--
2.37.3
next reply other threads:[~2024-07-25 7:30 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-25 7:30 alison.schofield [this message]
2024-07-25 8:34 ` [ndctl PATCH] cxl/list: add firmware_version to default memdev listing Xingtao Yao (Fujitsu)
2024-07-25 19:22 ` fan
2024-07-25 20:15 ` Dave Jiang
2024-08-09 22:56 ` Dan Williams
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240725073050.219952-1-alison.schofield@intel.com \
--to=alison.schofield@intel.com \
--cc=dan.j.williams@intel.com \
--cc=linux-cxl@vger.kernel.org \
--cc=nvdimm@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox