include/nvme_spec.h: update cdata fields for admin command set attributes
Add missing fields from identify controller data structure, for admin command set attributes. Update the identify examples file accordingly. Ignore spdk_nvme_cdata_oacs ABI changes, only reserved fields were changed. So this does not constitute an ABI/API breakage. Signed-off-by: Ankit Kumar <ankit.kumar@samsung.com> Change-Id: I718e3647835a0706a33e7aa6bae774e133071f9b Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/12866 Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
This commit is contained in:
parent
8dcea39ae6
commit
5969ca7aa1
@ -1395,6 +1395,10 @@ print_controller(struct spdk_nvme_ctrlr *ctrlr, const struct spdk_nvme_transport
|
|||||||
cdata->oacs.virtualization_management ? "Supported" : "Not Supported");
|
cdata->oacs.virtualization_management ? "Supported" : "Not Supported");
|
||||||
printf("Doorbell Buffer Config: %s\n",
|
printf("Doorbell Buffer Config: %s\n",
|
||||||
cdata->oacs.doorbell_buffer_config ? "Supported" : "Not Supported");
|
cdata->oacs.doorbell_buffer_config ? "Supported" : "Not Supported");
|
||||||
|
printf("Get LBA Status Capability: %s\n",
|
||||||
|
cdata->oacs.get_lba_status ? "Supported" : "Not Supported");
|
||||||
|
printf("Command & Feature Lockdown Capability: %s\n",
|
||||||
|
cdata->oacs.doorbell_buffer_config ? "Supported" : "Not Supported");
|
||||||
printf("Abort Command Limit: %d\n", cdata->acl + 1);
|
printf("Abort Command Limit: %d\n", cdata->acl + 1);
|
||||||
printf("Async Event Request Limit: %d\n", cdata->aerl + 1);
|
printf("Async Event Request Limit: %d\n", cdata->aerl + 1);
|
||||||
printf("Number of Firmware Slots: ");
|
printf("Number of Firmware Slots: ");
|
||||||
@ -1409,6 +1413,18 @@ print_controller(struct spdk_nvme_ctrlr *ctrlr, const struct spdk_nvme_transport
|
|||||||
} else {
|
} else {
|
||||||
printf("N/A\n");
|
printf("N/A\n");
|
||||||
}
|
}
|
||||||
|
printf("Firmware Activation Without Reset: ");
|
||||||
|
if (cdata->oacs.firmware != 0) {
|
||||||
|
printf("%s\n", cdata->frmw.activation_without_reset ? "Yes" : "No");
|
||||||
|
} else {
|
||||||
|
printf("N/A\n");
|
||||||
|
}
|
||||||
|
printf("Multiple Update Detection Support: ");
|
||||||
|
if (cdata->oacs.firmware != 0) {
|
||||||
|
printf("%s\n", cdata->frmw.multiple_update_detection ? "Yes" : "No");
|
||||||
|
} else {
|
||||||
|
printf("N/A\n");
|
||||||
|
}
|
||||||
if (cdata->fwug == 0x00) {
|
if (cdata->fwug == 0x00) {
|
||||||
printf("Firmware Update Granularity: No Information Provided\n");
|
printf("Firmware Update Granularity: No Information Provided\n");
|
||||||
} else if (cdata->fwug == 0xFF) {
|
} else if (cdata->fwug == 0xFF) {
|
||||||
@ -1451,6 +1467,18 @@ print_controller(struct spdk_nvme_ctrlr *ctrlr, const struct spdk_nvme_transport
|
|||||||
cdata->lpa.edlp ? "Supported" : "Not Supported");
|
cdata->lpa.edlp ? "Supported" : "Not Supported");
|
||||||
printf("Telemetry Log Pages: %s\n",
|
printf("Telemetry Log Pages: %s\n",
|
||||||
cdata->lpa.telemetry ? "Supported" : "Not Supported");
|
cdata->lpa.telemetry ? "Supported" : "Not Supported");
|
||||||
|
printf("Persistent Event Log Pages: %s\n",
|
||||||
|
cdata->lpa.pelp ? "Supported" : "Not Supported");
|
||||||
|
printf("Supported Log Pages Log Page: %s\n",
|
||||||
|
cdata->lpa.lplp ? "Supported" : "May Support");
|
||||||
|
printf("Commands Supported & Effects Log Page: %s\n",
|
||||||
|
cdata->lpa.lplp ? "Supported" : "Not Supported");
|
||||||
|
printf("Feature Identifiers & Effects Log Page:%s\n",
|
||||||
|
cdata->lpa.lplp ? "Supported" : "May Support");
|
||||||
|
printf("NVMe-MI Commands & Effects Log Page: %s\n",
|
||||||
|
cdata->lpa.lplp ? "Supported" : "May Support");
|
||||||
|
printf("Data Area 4 for Telemetry Log: %s\n",
|
||||||
|
cdata->lpa.da4_telemetry ? "Supported" : "Not Supported");
|
||||||
printf("Error Log Page Entries Supported: %d\n", cdata->elpe + 1);
|
printf("Error Log Page Entries Supported: %d\n", cdata->elpe + 1);
|
||||||
if (cdata->kas == 0) {
|
if (cdata->kas == 0) {
|
||||||
printf("Keep Alive: Not Supported\n");
|
printf("Keep Alive: Not Supported\n");
|
||||||
|
@ -1776,6 +1776,7 @@ enum spdk_nvmf_ctrlr_model {
|
|||||||
#define SPDK_NVME_CTRLR_SN_LEN 20
|
#define SPDK_NVME_CTRLR_SN_LEN 20
|
||||||
#define SPDK_NVME_CTRLR_MN_LEN 40
|
#define SPDK_NVME_CTRLR_MN_LEN 40
|
||||||
#define SPDK_NVME_CTRLR_FR_LEN 8
|
#define SPDK_NVME_CTRLR_FR_LEN 8
|
||||||
|
#define SPDK_NVME_CTRLR_MEGCAP_LEN 16
|
||||||
|
|
||||||
/** Identify Controller data sgls.supported values */
|
/** Identify Controller data sgls.supported values */
|
||||||
enum spdk_nvme_sgls_supported {
|
enum spdk_nvme_sgls_supported {
|
||||||
@ -1888,7 +1889,10 @@ struct spdk_nvme_cdata_oacs {
|
|||||||
/** Supports SPDK_NVME_OPC_GET_LBA_STATUS */
|
/** Supports SPDK_NVME_OPC_GET_LBA_STATUS */
|
||||||
uint16_t get_lba_status : 1;
|
uint16_t get_lba_status : 1;
|
||||||
|
|
||||||
uint16_t oacs_rsvd : 6;
|
/** Supports command and feature lockdown capability */
|
||||||
|
uint16_t command_feature_lockdown : 1;
|
||||||
|
|
||||||
|
uint16_t oacs_rsvd : 5;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct spdk_nvme_cdata_fuses {
|
struct spdk_nvme_cdata_fuses {
|
||||||
@ -2108,7 +2112,10 @@ struct __attribute__((packed)) spdk_nvme_ctrlr_data {
|
|||||||
/* support activation without reset */
|
/* support activation without reset */
|
||||||
uint8_t activation_without_reset : 1;
|
uint8_t activation_without_reset : 1;
|
||||||
|
|
||||||
uint8_t frmw_rsvd : 3;
|
/* Support multiple update detection */
|
||||||
|
uint8_t multiple_update_detection : 1;
|
||||||
|
|
||||||
|
uint8_t frmw_rsvd : 2;
|
||||||
} frmw;
|
} frmw;
|
||||||
|
|
||||||
/** log page attributes */
|
/** log page attributes */
|
||||||
@ -2119,9 +2126,15 @@ struct __attribute__((packed)) spdk_nvme_ctrlr_data {
|
|||||||
uint8_t celp : 1;
|
uint8_t celp : 1;
|
||||||
/* extended data for get log page */
|
/* extended data for get log page */
|
||||||
uint8_t edlp: 1;
|
uint8_t edlp: 1;
|
||||||
/** telemetry log pages and notices */
|
/* telemetry log pages and notices */
|
||||||
uint8_t telemetry : 1;
|
uint8_t telemetry : 1;
|
||||||
uint8_t lpa_rsvd : 4;
|
/* Persistent event log */
|
||||||
|
uint8_t pelp : 1;
|
||||||
|
/* Log pages log page */
|
||||||
|
uint8_t lplp : 1;
|
||||||
|
/* Data Area 4 for telemetry */
|
||||||
|
uint8_t da4_telemetry : 1;
|
||||||
|
uint8_t lpa_rsvd : 1;
|
||||||
} lpa;
|
} lpa;
|
||||||
|
|
||||||
/** error log page entries */
|
/** error log page entries */
|
||||||
@ -2236,8 +2249,17 @@ struct __attribute__((packed)) spdk_nvme_ctrlr_data {
|
|||||||
} bits;
|
} bits;
|
||||||
} sanicap;
|
} sanicap;
|
||||||
|
|
||||||
/* bytes 332-342 */
|
/** Host memory buffer minimum descriptor entry size */
|
||||||
uint8_t reserved3[10];
|
uint32_t hmminds;
|
||||||
|
|
||||||
|
/** Host memory maximum descriptor entries */
|
||||||
|
uint16_t hmmaxd;
|
||||||
|
|
||||||
|
/** NVM set identifier maximum */
|
||||||
|
uint16_t nsetidmax;
|
||||||
|
|
||||||
|
/** Endurance group identifier maximum */
|
||||||
|
uint16_t endgidmax;
|
||||||
|
|
||||||
/** ANA transition time */
|
/** ANA transition time */
|
||||||
uint8_t anatt;
|
uint8_t anatt;
|
||||||
@ -2259,8 +2281,19 @@ struct __attribute__((packed)) spdk_nvme_ctrlr_data {
|
|||||||
/* bytes 348-351: number of ANA group identifiers */
|
/* bytes 348-351: number of ANA group identifiers */
|
||||||
uint32_t nanagrpid;
|
uint32_t nanagrpid;
|
||||||
|
|
||||||
/* bytes 352-511 */
|
/* bytes 352-355: persistent event log size */
|
||||||
uint8_t reserved352[160];
|
uint32_t pels;
|
||||||
|
|
||||||
|
/* Domain identifier that contains this controller */
|
||||||
|
uint16_t domain_identifier;
|
||||||
|
|
||||||
|
uint8_t reserved3[10];
|
||||||
|
|
||||||
|
/* Maximum capacity of a single endurance group */
|
||||||
|
uint8_t megcap[SPDK_NVME_CTRLR_MEGCAP_LEN];
|
||||||
|
|
||||||
|
/* bytes 384-511 */
|
||||||
|
uint8_t reserved384[128];
|
||||||
|
|
||||||
/* bytes 512-703: nvm command set attributes */
|
/* bytes 512-703: nvm command set attributes */
|
||||||
|
|
||||||
|
@ -53,6 +53,8 @@ function confirm_abi_deps() {
|
|||||||
name = spdk_nvme_power_state
|
name = spdk_nvme_power_state
|
||||||
[suppress_type]
|
[suppress_type]
|
||||||
name = spdk_nvme_ctrlr_data
|
name = spdk_nvme_ctrlr_data
|
||||||
|
[suppress_type]
|
||||||
|
name = spdk_nvme_cdata_oacs
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
for object in "$libdir"/libspdk_*.so; do
|
for object in "$libdir"/libspdk_*.so; do
|
||||||
|
Loading…
Reference in New Issue
Block a user