@@ -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 */
639640enum 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 */
672675enum 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 */
12451251enum 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 */
12671277enum 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 */
12821312enum 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 */
14551489enum 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 */
14981537enum 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