Skip to content

Commit 9026076

Browse files
authored
Merge pull request #370 from ankit-sam/master
types.h: add missing fields for identify controller DS
2 parents 848a8a5 + 0236cb9 commit 9026076

1 file changed

Lines changed: 46 additions & 6 deletions

File tree

src/nvme/types.h

Lines changed: 46 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -633,10 +633,12 @@ enum nvme_psd_flags {
633633
* enum nvme_psd_ps - Known values for &struct nvme_psd %ips and %aps. Use with
634634
* nvme_psd_power_scale() to extract the power scale field
635635
* to match this enum.
636+
* @NVME_PSD_PS_NOT_REPORTED: Not reported
636637
* @NVME_PSD_PS_100_MICRO_WATT: 0.0001 watt scale
637638
* @NVME_PSD_PS_10_MILLI_WATT: 0.01 watt scale
638639
*/
639640
enum nvme_psd_ps {
641+
NVME_PSD_PS_NOT_REPORTED = 0,
640642
NVME_PSD_PS_100_MICRO_WATT = 1,
641643
NVME_PSD_PS_10_MILLI_WATT = 2,
642644
};
@@ -655,6 +657,7 @@ static inline unsigned int nvme_psd_power_scale(__u8 ps)
655657
* Feature (see &struct nvme_psd.apw) to inform the
656658
* NVM subsystem or indicate the conditions for the
657659
* active power level.
660+
* @NVME_PSD_WORKLOAD_NP: The workload is unkown or not provided.
658661
* @NVME_PSD_WORKLOAD_1: Extended Idle Period with a Burst of Random Write
659662
* consists of five minutes of idle followed by
660663
* thirty-two random write commands of size 1 MiB
@@ -670,6 +673,7 @@ static inline unsigned int nvme_psd_power_scale(__u8 ps)
670673
* times during the workload.
671674
*/
672675
enum nvme_psd_workload {
676+
NVME_PSD_WORKLOAD_NP = 0,
673677
NVME_PSD_WORKLOAD_1 = 1,
674678
NVME_PSD_WORKLOAD_2 = 2,
675679
};
@@ -914,7 +918,7 @@ struct nvme_id_psd {
914918
* and Write fused operation. This field is specified in logical
915919
* blocks and is a 0’s based value.
916920
* @ocfs: Optional Copy Formats Supported, each bit n means controller
917-
* supports Copy Format n.
921+
* supports Copy Format n.
918922
* @sgls: SGL Support, see &enum nvme_id_ctrl_sgls
919923
* @mnan: Maximum Number of Allowed Namespaces indicates the maximum
920924
* number of namespaces supported by the NVM subsystem.
@@ -1241,6 +1245,8 @@ enum nvme_id_ctrl_mec {
12411245
* Doorbell Buffer Config command.
12421246
* @NVME_CTRL_OACS_LBA_STATUS: If set, then the controller supports the Get LBA
12431247
* Status capability.
1248+
* @NVME_CTRL_OACS_CMD_FEAT_LD: If set, then the controller supports the command
1249+
* and feature lockdown capability.
12441250
*/
12451251
enum nvme_id_ctrl_oacs {
12461252
NVME_CTRL_OACS_SECURITY = 1 << 0,
@@ -1253,6 +1259,7 @@ enum nvme_id_ctrl_oacs {
12531259
NVME_CTRL_OACS_VIRT_MGMT = 1 << 7,
12541260
NVME_CTRL_OACS_DBBUF_CFG = 1 << 8,
12551261
NVME_CTRL_OACS_LBA_STATUS = 1 << 9,
1262+
NVME_CTRL_OACS_CMD_FEAT_LD = 1 << 10,
12561263
};
12571264

12581265
/**
@@ -1263,28 +1270,53 @@ enum nvme_id_ctrl_oacs {
12631270
* firmware slots that the controller supports.
12641271
* @NVME_CTRL_FRMW_FW_ACT_NO_RESET: If set, the controller supports firmware
12651272
* activation without a reset.
1273+
* @NVME_CTRL_FRMW_FW_MP_UP_DETECTION: If set, the controller is able to detect
1274+
* overlapping firmware/boot partition
1275+
* image update.
12661276
*/
12671277
enum nvme_id_ctrl_frmw {
12681278
NVME_CTRL_FRMW_1ST_RO = 1 << 0,
12691279
NVME_CTRL_FRMW_NR_SLOTS = 3 << 1,
12701280
NVME_CTRL_FRMW_FW_ACT_NO_RESET = 1 << 4,
1281+
NVME_CTRL_FRMW_MP_UP_DETECTION = 1 << 5,
12711282
};
12721283

12731284
/**
12741285
* enum nvme_id_ctrl_lpa - Flags indicating optional attributes for log pages
12751286
* that are accessed via the Get Log Page command.
1276-
* @NVME_CTRL_LPA_SMART_PER_NS:
1277-
* @NVME_CTRL_LPA_CMD_EFFECTS:
1278-
* @NVME_CTRL_LPA_EXTENDED:
1279-
* @NVME_CTRL_LPA_TELEMETRY:
1280-
* @NVME_CTRL_LPA_PERSETENT_EVENT:
1287+
* @NVME_CTRL_LPA_SMART_PER_NS: If set, controller supports SMART/Health log
1288+
* page on a per namespace basis.
1289+
* @NVME_CTRL_LPA_CMD_EFFECTS: If Set, the controller supports the commands
1290+
* supported and effects log page.
1291+
* @NVME_CTRL_LPA_EXTENDED: If set, the controller supports extended data
1292+
* for log page command including extended number
1293+
* of dwords and log page offset fields.
1294+
* @NVME_CTRL_LPA_TELEMETRY: If set, the controller supports the telemetry
1295+
* host-initiated and telemetry controller-initiated
1296+
* log pages and sending telemetry log notices.
1297+
* @NVME_CTRL_LPA_PERSETENT_EVENT: If set, the controller supports
1298+
* persistent event log.
1299+
* @NVME_CTRL_LPA_LI0_LI5_LI12_LI13: If set, the controller supports
1300+
* - log pages log page.
1301+
* - returning scope of each command in
1302+
* commands supported and effects log
1303+
* page.
1304+
* - feature identifiers supported and
1305+
* effects log page.
1306+
* - NVMe-MI commands supported and
1307+
* effects log page.
1308+
* @NVME_CTRL_LPA_DA4_TELEMETRY: If set, the controller supports data
1309+
* area 4 for telemetry host-initiated and
1310+
* telemetry.
12811311
*/
12821312
enum nvme_id_ctrl_lpa {
12831313
NVME_CTRL_LPA_SMART_PER_NS = 1 << 0,
12841314
NVME_CTRL_LPA_CMD_EFFECTS = 1 << 1,
12851315
NVME_CTRL_LPA_EXTENDED = 1 << 2,
12861316
NVME_CTRL_LPA_TELEMETRY = 1 << 3,
12871317
NVME_CTRL_LPA_PERSETENT_EVENT = 1 << 4,
1318+
NVME_CTRL_LPA_LI0_LI5_LI12_LI13 = 1 << 5,
1319+
NVME_CTRL_LPA_DA4_TELEMETRY = 1 << 6,
12881320
};
12891321

12901322
/**
@@ -1451,6 +1483,8 @@ enum nvme_id_ctrl_cqes {
14511483
* the Timestamp feature.
14521484
* @NVME_CTRL_ONCS_VERIFY: If set, then the controller supports
14531485
* the Verify command.
1486+
* @NVME_CTRL_ONCS_COPY: If set, then the controller supports
1487+
* the copy command.
14541488
*/
14551489
enum nvme_id_ctrl_oncs {
14561490
NVME_CTRL_ONCS_COMPARE = 1 << 0,
@@ -1461,6 +1495,7 @@ enum nvme_id_ctrl_oncs {
14611495
NVME_CTRL_ONCS_RESERVATIONS = 1 << 5,
14621496
NVME_CTRL_ONCS_TIMESTAMP = 1 << 6,
14631497
NVME_CTRL_ONCS_VERIFY = 1 << 7,
1498+
NVME_CTRL_ONCS_COPY = 1 << 8,
14641499
};
14651500

14661501
/**
@@ -1494,11 +1529,16 @@ enum nvme_id_ctrl_fuses {
14941529
* @NVME_CTRL_FNA_CRYPTO_ERASE: If set, then cryptographic erase is
14951530
* supported. If cleared, then cryptographic
14961531
* erase is not supported.
1532+
* @NVME_CTRL_FNA_NSID_FFFFFFFF: If set, then format does not support
1533+
* nsid value set to FFFFFFFFh. If cleared,
1534+
* format supports nsid value set to
1535+
* FFFFFFFFh.
14971536
*/
14981537
enum nvme_id_ctrl_fna {
14991538
NVME_CTRL_FNA_FMT_ALL_NAMESPACES = 1 << 0,
15001539
NVME_CTRL_FNA_SEC_ALL_NAMESPACES = 1 << 1,
15011540
NVME_CTRL_FNA_CRYPTO_ERASE = 1 << 2,
1541+
NVME_CTRL_FNA_NSID_FFFFFFFF = 1 << 3,
15021542
};
15031543

15041544
/**

0 commit comments

Comments
 (0)