Skip to content

Commit 59ae541

Browse files
ikegami-tigaw
authored andcommitted
nvme: Add show-regs and get-property commands NSSD print outputs
Output the NVM Subsystem Shutdown property. Signed-off-by: Tokunori Ikegami <ikegami.t@gmail.com>
1 parent c90d3d7 commit 59ae541

File tree

3 files changed

+29
-1
lines changed

3 files changed

+29
-1
lines changed

nvme-print-json.c

+19
Original file line numberDiff line numberDiff line change
@@ -1017,6 +1017,11 @@ static void json_registers_nssr(__u32 nssr, struct json_object *r)
10171017
obj_add_uint(r, "NVM Subsystem Reset Control (NSSRC)", nssr);
10181018
}
10191019

1020+
static void json_registers_nssd(__u32 nssd, struct json_object *r)
1021+
{
1022+
obj_add_uint_nx(r, "NVM Subsystem Shutdown Control (NSSC)", nssd);
1023+
}
1024+
10201025
static void json_registers_crto(__u32 crto, struct json_object *r)
10211026
{
10221027
obj_add_uint_x(r, "crto", crto);
@@ -1254,6 +1259,9 @@ static void json_single_property_human(int offset, uint64_t value64, struct json
12541259
case NVME_REG_NSSR:
12551260
json_registers_nssr(value32, r);
12561261
break;
1262+
case NVME_REG_NSSD:
1263+
json_registers_nssd(value32, r);
1264+
break;
12571265
case NVME_REG_CRTO:
12581266
json_registers_crto(value32, r);
12591267
break;
@@ -2482,6 +2490,16 @@ static void json_ctrl_registers_nssr(void *bar, struct json_object *r)
24822490
obj_add_int(r, "nssr", nssr);
24832491
}
24842492

2493+
static void json_ctrl_registers_nssd(void *bar, struct json_object *r)
2494+
{
2495+
uint32_t nssd = mmio_read32(bar + NVME_REG_NSSD);
2496+
2497+
if (human())
2498+
json_registers_nssd(nssd, obj_create_array_obj(r, "nssd"));
2499+
else
2500+
obj_add_int(r, "nssd", nssd);
2501+
}
2502+
24852503
static void json_ctrl_registers_crto(void *bar, struct json_object *r)
24862504
{
24872505
uint32_t crto = mmio_read32(bar + NVME_REG_CRTO);
@@ -2673,6 +2691,7 @@ static void json_ctrl_registers(void *bar, bool fabrics)
26732691
json_ctrl_registers_cc(bar, r);
26742692
json_ctrl_registers_csts(bar, r);
26752693
json_ctrl_registers_nssr(bar, r);
2694+
json_ctrl_registers_nssd(bar, r);
26762695
json_ctrl_registers_crto(bar, r);
26772696
json_ctrl_registers_aqa(bar, r);
26782697
json_ctrl_registers_asq(bar, r);

nvme-print-stdout.c

+9
Original file line numberDiff line numberDiff line change
@@ -1223,6 +1223,11 @@ static void stdout_registers_csts(__u32 csts)
12231223

12241224
}
12251225

1226+
static void stdout_registers_nssd(__u32 nssd)
1227+
{
1228+
printf("\tNVM Subsystem Shutdown Control (NSSC): %#x\n\n", nssd);
1229+
}
1230+
12261231
static void stdout_registers_crto(__u32 crto)
12271232
{
12281233
printf("\tCRIMT : %d secs\n", NVME_CRTO_CRIMT(crto) / 2);
@@ -1621,6 +1626,10 @@ static void stdout_single_property(int offset, uint64_t value64)
16211626
printf("nssr : %x\n", value32);
16221627
printf("\tNVM Subsystem Reset Control (NSSRC): %u\n\n", value32);
16231628
break;
1629+
case NVME_REG_NSSD:
1630+
printf("nssd : %x\n", value32);
1631+
stdout_registers_nssd(value32);
1632+
break;
16241633
case NVME_REG_CRTO:
16251634
printf("crto : %x\n", value32);
16261635
stdout_registers_crto(value32);

nvme.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -5380,7 +5380,7 @@ static int get_property(int argc, char **argv, struct command *cmd, struct plugi
53805380
{
53815381
const char *desc = "Reads and shows the defined NVMe controller property\n"
53825382
"for NVMe over Fabric. Property offset must be one of:\n"
5383-
"CAP=0x0, VS=0x8, CC=0x14, CSTS=0x1c, NSSR=0x20";
5383+
"CAP=0x0, VS=0x8, CC=0x14, CSTS=0x1c, NSSR=0x20, NSSD=0x64, CRTO=0x68";
53845384
const char *offset = "offset of the requested property";
53855385
const char *human_readable = "show property in readable format";
53865386

0 commit comments

Comments
 (0)