qed: Add MFW interfaces for TLV request support.
authorSudarsana Reddy Kalluru <sudarsana.kalluru@cavium.com>
Tue, 22 May 2018 07:28:37 +0000 (00:28 -0700)
committerDavid S. Miller <davem@davemloft.net>
Wed, 23 May 2018 03:29:53 +0000 (23:29 -0400)
The patch adds required management firmware (MFW) interfaces such as
mailbox commands, TLV types etc.

Signed-off-by: Sudarsana Reddy Kalluru <Sudarsana.Kalluru@cavium.com>
Signed-off-by: Ariel Elior <ariel.elior@cavium.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/qlogic/qed/qed_hsi.h

index b5f70ef..8e1e6e1 100644 (file)
@@ -11863,6 +11863,8 @@ struct public_global {
        u32 running_bundle_id;
        s32 external_temperature;
        u32 mdump_reason;
+       u32 data_ptr;
+       u32 data_size;
 };
 
 struct fw_flr_mb {
@@ -12322,6 +12324,7 @@ struct public_drv_mb {
 #define DRV_MSG_CODE_BIST_TEST                 0x001e0000
 #define DRV_MSG_CODE_SET_LED_MODE              0x00200000
 #define DRV_MSG_CODE_RESOURCE_CMD      0x00230000
+#define DRV_MSG_CODE_GET_TLV_DONE              0x002f0000
 
 #define RESOURCE_CMD_REQ_RESC_MASK             0x0000001F
 #define RESOURCE_CMD_REQ_RESC_SHIFT            0
@@ -12523,6 +12526,7 @@ enum MFW_DRV_MSG_TYPE {
        MFW_DRV_MSG_TRANSCEIVER_STATE_CHANGE,
        MFW_DRV_MSG_BW_UPDATE11,
        MFW_DRV_MSG_OEM_CFG_UPDATE,
+       MFW_DRV_MSG_GET_TLV_REQ,
        MFW_DRV_MSG_MAX
 };
 
@@ -12558,6 +12562,233 @@ struct mcp_public_data {
        struct public_func func[MCP_GLOB_FUNC_MAX];
 };
 
+/* OCBB definitions */
+enum tlvs {
+       /* Category 1: Device Properties */
+       DRV_TLV_CLP_STR,
+       DRV_TLV_CLP_STR_CTD,
+       /* Category 6: Device Configuration */
+       DRV_TLV_SCSI_TO,
+       DRV_TLV_R_T_TOV,
+       DRV_TLV_R_A_TOV,
+       DRV_TLV_E_D_TOV,
+       DRV_TLV_CR_TOV,
+       DRV_TLV_BOOT_TYPE,
+       /* Category 8: Port Configuration */
+       DRV_TLV_NPIV_ENABLED,
+       /* Category 10: Function Configuration */
+       DRV_TLV_FEATURE_FLAGS,
+       DRV_TLV_LOCAL_ADMIN_ADDR,
+       DRV_TLV_ADDITIONAL_MAC_ADDR_1,
+       DRV_TLV_ADDITIONAL_MAC_ADDR_2,
+       DRV_TLV_LSO_MAX_OFFLOAD_SIZE,
+       DRV_TLV_LSO_MIN_SEGMENT_COUNT,
+       DRV_TLV_PROMISCUOUS_MODE,
+       DRV_TLV_TX_DESCRIPTORS_QUEUE_SIZE,
+       DRV_TLV_RX_DESCRIPTORS_QUEUE_SIZE,
+       DRV_TLV_NUM_OF_NET_QUEUE_VMQ_CFG,
+       DRV_TLV_FLEX_NIC_OUTER_VLAN_ID,
+       DRV_TLV_OS_DRIVER_STATES,
+       DRV_TLV_PXE_BOOT_PROGRESS,
+       /* Category 12: FC/FCoE Configuration */
+       DRV_TLV_NPIV_STATE,
+       DRV_TLV_NUM_OF_NPIV_IDS,
+       DRV_TLV_SWITCH_NAME,
+       DRV_TLV_SWITCH_PORT_NUM,
+       DRV_TLV_SWITCH_PORT_ID,
+       DRV_TLV_VENDOR_NAME,
+       DRV_TLV_SWITCH_MODEL,
+       DRV_TLV_SWITCH_FW_VER,
+       DRV_TLV_QOS_PRIORITY_PER_802_1P,
+       DRV_TLV_PORT_ALIAS,
+       DRV_TLV_PORT_STATE,
+       DRV_TLV_FIP_TX_DESCRIPTORS_QUEUE_SIZE,
+       DRV_TLV_FCOE_RX_DESCRIPTORS_QUEUE_SIZE,
+       DRV_TLV_LINK_FAILURE_COUNT,
+       DRV_TLV_FCOE_BOOT_PROGRESS,
+       /* Category 13: iSCSI Configuration */
+       DRV_TLV_TARGET_LLMNR_ENABLED,
+       DRV_TLV_HEADER_DIGEST_FLAG_ENABLED,
+       DRV_TLV_DATA_DIGEST_FLAG_ENABLED,
+       DRV_TLV_AUTHENTICATION_METHOD,
+       DRV_TLV_ISCSI_BOOT_TARGET_PORTAL,
+       DRV_TLV_MAX_FRAME_SIZE,
+       DRV_TLV_PDU_TX_DESCRIPTORS_QUEUE_SIZE,
+       DRV_TLV_PDU_RX_DESCRIPTORS_QUEUE_SIZE,
+       DRV_TLV_ISCSI_BOOT_PROGRESS,
+       /* Category 20: Device Data */
+       DRV_TLV_PCIE_BUS_RX_UTILIZATION,
+       DRV_TLV_PCIE_BUS_TX_UTILIZATION,
+       DRV_TLV_DEVICE_CPU_CORES_UTILIZATION,
+       DRV_TLV_LAST_VALID_DCC_TLV_RECEIVED,
+       DRV_TLV_NCSI_RX_BYTES_RECEIVED,
+       DRV_TLV_NCSI_TX_BYTES_SENT,
+       /* Category 22: Base Port Data */
+       DRV_TLV_RX_DISCARDS,
+       DRV_TLV_RX_ERRORS,
+       DRV_TLV_TX_ERRORS,
+       DRV_TLV_TX_DISCARDS,
+       DRV_TLV_RX_FRAMES_RECEIVED,
+       DRV_TLV_TX_FRAMES_SENT,
+       /* Category 23: FC/FCoE Port Data */
+       DRV_TLV_RX_BROADCAST_PACKETS,
+       DRV_TLV_TX_BROADCAST_PACKETS,
+       /* Category 28: Base Function Data */
+       DRV_TLV_NUM_OFFLOADED_CONNECTIONS_TCP_IPV4,
+       DRV_TLV_NUM_OFFLOADED_CONNECTIONS_TCP_IPV6,
+       DRV_TLV_TX_DESCRIPTOR_QUEUE_AVG_DEPTH,
+       DRV_TLV_RX_DESCRIPTORS_QUEUE_AVG_DEPTH,
+       DRV_TLV_PF_RX_FRAMES_RECEIVED,
+       DRV_TLV_RX_BYTES_RECEIVED,
+       DRV_TLV_PF_TX_FRAMES_SENT,
+       DRV_TLV_TX_BYTES_SENT,
+       DRV_TLV_IOV_OFFLOAD,
+       DRV_TLV_PCI_ERRORS_CAP_ID,
+       DRV_TLV_UNCORRECTABLE_ERROR_STATUS,
+       DRV_TLV_UNCORRECTABLE_ERROR_MASK,
+       DRV_TLV_CORRECTABLE_ERROR_STATUS,
+       DRV_TLV_CORRECTABLE_ERROR_MASK,
+       DRV_TLV_PCI_ERRORS_AECC_REGISTER,
+       DRV_TLV_TX_QUEUES_EMPTY,
+       DRV_TLV_RX_QUEUES_EMPTY,
+       DRV_TLV_TX_QUEUES_FULL,
+       DRV_TLV_RX_QUEUES_FULL,
+       /* Category 29: FC/FCoE Function Data */
+       DRV_TLV_FCOE_TX_DESCRIPTOR_QUEUE_AVG_DEPTH,
+       DRV_TLV_FCOE_RX_DESCRIPTORS_QUEUE_AVG_DEPTH,
+       DRV_TLV_FCOE_RX_FRAMES_RECEIVED,
+       DRV_TLV_FCOE_RX_BYTES_RECEIVED,
+       DRV_TLV_FCOE_TX_FRAMES_SENT,
+       DRV_TLV_FCOE_TX_BYTES_SENT,
+       DRV_TLV_CRC_ERROR_COUNT,
+       DRV_TLV_CRC_ERROR_1_RECEIVED_SOURCE_FC_ID,
+       DRV_TLV_CRC_ERROR_1_TIMESTAMP,
+       DRV_TLV_CRC_ERROR_2_RECEIVED_SOURCE_FC_ID,
+       DRV_TLV_CRC_ERROR_2_TIMESTAMP,
+       DRV_TLV_CRC_ERROR_3_RECEIVED_SOURCE_FC_ID,
+       DRV_TLV_CRC_ERROR_3_TIMESTAMP,
+       DRV_TLV_CRC_ERROR_4_RECEIVED_SOURCE_FC_ID,
+       DRV_TLV_CRC_ERROR_4_TIMESTAMP,
+       DRV_TLV_CRC_ERROR_5_RECEIVED_SOURCE_FC_ID,
+       DRV_TLV_CRC_ERROR_5_TIMESTAMP,
+       DRV_TLV_LOSS_OF_SYNC_ERROR_COUNT,
+       DRV_TLV_LOSS_OF_SIGNAL_ERRORS,
+       DRV_TLV_PRIMITIVE_SEQUENCE_PROTOCOL_ERROR_COUNT,
+       DRV_TLV_DISPARITY_ERROR_COUNT,
+       DRV_TLV_CODE_VIOLATION_ERROR_COUNT,
+       DRV_TLV_LAST_FLOGI_ISSUED_COMMON_PARAMETERS_WORD_1,
+       DRV_TLV_LAST_FLOGI_ISSUED_COMMON_PARAMETERS_WORD_2,
+       DRV_TLV_LAST_FLOGI_ISSUED_COMMON_PARAMETERS_WORD_3,
+       DRV_TLV_LAST_FLOGI_ISSUED_COMMON_PARAMETERS_WORD_4,
+       DRV_TLV_LAST_FLOGI_TIMESTAMP,
+       DRV_TLV_LAST_FLOGI_ACC_COMMON_PARAMETERS_WORD_1,
+       DRV_TLV_LAST_FLOGI_ACC_COMMON_PARAMETERS_WORD_2,
+       DRV_TLV_LAST_FLOGI_ACC_COMMON_PARAMETERS_WORD_3,
+       DRV_TLV_LAST_FLOGI_ACC_COMMON_PARAMETERS_WORD_4,
+       DRV_TLV_LAST_FLOGI_ACC_TIMESTAMP,
+       DRV_TLV_LAST_FLOGI_RJT,
+       DRV_TLV_LAST_FLOGI_RJT_TIMESTAMP,
+       DRV_TLV_FDISCS_SENT_COUNT,
+       DRV_TLV_FDISC_ACCS_RECEIVED,
+       DRV_TLV_FDISC_RJTS_RECEIVED,
+       DRV_TLV_PLOGI_SENT_COUNT,
+       DRV_TLV_PLOGI_ACCS_RECEIVED,
+       DRV_TLV_PLOGI_RJTS_RECEIVED,
+       DRV_TLV_PLOGI_1_SENT_DESTINATION_FC_ID,
+       DRV_TLV_PLOGI_1_TIMESTAMP,
+       DRV_TLV_PLOGI_2_SENT_DESTINATION_FC_ID,
+       DRV_TLV_PLOGI_2_TIMESTAMP,
+       DRV_TLV_PLOGI_3_SENT_DESTINATION_FC_ID,
+       DRV_TLV_PLOGI_3_TIMESTAMP,
+       DRV_TLV_PLOGI_4_SENT_DESTINATION_FC_ID,
+       DRV_TLV_PLOGI_4_TIMESTAMP,
+       DRV_TLV_PLOGI_5_SENT_DESTINATION_FC_ID,
+       DRV_TLV_PLOGI_5_TIMESTAMP,
+       DRV_TLV_PLOGI_1_ACC_RECEIVED_SOURCE_FC_ID,
+       DRV_TLV_PLOGI_1_ACC_TIMESTAMP,
+       DRV_TLV_PLOGI_2_ACC_RECEIVED_SOURCE_FC_ID,
+       DRV_TLV_PLOGI_2_ACC_TIMESTAMP,
+       DRV_TLV_PLOGI_3_ACC_RECEIVED_SOURCE_FC_ID,
+       DRV_TLV_PLOGI_3_ACC_TIMESTAMP,
+       DRV_TLV_PLOGI_4_ACC_RECEIVED_SOURCE_FC_ID,
+       DRV_TLV_PLOGI_4_ACC_TIMESTAMP,
+       DRV_TLV_PLOGI_5_ACC_RECEIVED_SOURCE_FC_ID,
+       DRV_TLV_PLOGI_5_ACC_TIMESTAMP,
+       DRV_TLV_LOGOS_ISSUED,
+       DRV_TLV_LOGO_ACCS_RECEIVED,
+       DRV_TLV_LOGO_RJTS_RECEIVED,
+       DRV_TLV_LOGO_1_RECEIVED_SOURCE_FC_ID,
+       DRV_TLV_LOGO_1_TIMESTAMP,
+       DRV_TLV_LOGO_2_RECEIVED_SOURCE_FC_ID,
+       DRV_TLV_LOGO_2_TIMESTAMP,
+       DRV_TLV_LOGO_3_RECEIVED_SOURCE_FC_ID,
+       DRV_TLV_LOGO_3_TIMESTAMP,
+       DRV_TLV_LOGO_4_RECEIVED_SOURCE_FC_ID,
+       DRV_TLV_LOGO_4_TIMESTAMP,
+       DRV_TLV_LOGO_5_RECEIVED_SOURCE_FC_ID,
+       DRV_TLV_LOGO_5_TIMESTAMP,
+       DRV_TLV_LOGOS_RECEIVED,
+       DRV_TLV_ACCS_ISSUED,
+       DRV_TLV_PRLIS_ISSUED,
+       DRV_TLV_ACCS_RECEIVED,
+       DRV_TLV_ABTS_SENT_COUNT,
+       DRV_TLV_ABTS_ACCS_RECEIVED,
+       DRV_TLV_ABTS_RJTS_RECEIVED,
+       DRV_TLV_ABTS_1_SENT_DESTINATION_FC_ID,
+       DRV_TLV_ABTS_1_TIMESTAMP,
+       DRV_TLV_ABTS_2_SENT_DESTINATION_FC_ID,
+       DRV_TLV_ABTS_2_TIMESTAMP,
+       DRV_TLV_ABTS_3_SENT_DESTINATION_FC_ID,
+       DRV_TLV_ABTS_3_TIMESTAMP,
+       DRV_TLV_ABTS_4_SENT_DESTINATION_FC_ID,
+       DRV_TLV_ABTS_4_TIMESTAMP,
+       DRV_TLV_ABTS_5_SENT_DESTINATION_FC_ID,
+       DRV_TLV_ABTS_5_TIMESTAMP,
+       DRV_TLV_RSCNS_RECEIVED,
+       DRV_TLV_LAST_RSCN_RECEIVED_N_PORT_1,
+       DRV_TLV_LAST_RSCN_RECEIVED_N_PORT_2,
+       DRV_TLV_LAST_RSCN_RECEIVED_N_PORT_3,
+       DRV_TLV_LAST_RSCN_RECEIVED_N_PORT_4,
+       DRV_TLV_LUN_RESETS_ISSUED,
+       DRV_TLV_ABORT_TASK_SETS_ISSUED,
+       DRV_TLV_TPRLOS_SENT,
+       DRV_TLV_NOS_SENT_COUNT,
+       DRV_TLV_NOS_RECEIVED_COUNT,
+       DRV_TLV_OLS_COUNT,
+       DRV_TLV_LR_COUNT,
+       DRV_TLV_LRR_COUNT,
+       DRV_TLV_LIP_SENT_COUNT,
+       DRV_TLV_LIP_RECEIVED_COUNT,
+       DRV_TLV_EOFA_COUNT,
+       DRV_TLV_EOFNI_COUNT,
+       DRV_TLV_SCSI_STATUS_CHECK_CONDITION_COUNT,
+       DRV_TLV_SCSI_STATUS_CONDITION_MET_COUNT,
+       DRV_TLV_SCSI_STATUS_BUSY_COUNT,
+       DRV_TLV_SCSI_STATUS_INTERMEDIATE_COUNT,
+       DRV_TLV_SCSI_STATUS_INTERMEDIATE_CONDITION_MET_COUNT,
+       DRV_TLV_SCSI_STATUS_RESERVATION_CONFLICT_COUNT,
+       DRV_TLV_SCSI_STATUS_TASK_SET_FULL_COUNT,
+       DRV_TLV_SCSI_STATUS_ACA_ACTIVE_COUNT,
+       DRV_TLV_SCSI_STATUS_TASK_ABORTED_COUNT,
+       DRV_TLV_SCSI_CHECK_CONDITION_1_RECEIVED_SK_ASC_ASCQ,
+       DRV_TLV_SCSI_CHECK_1_TIMESTAMP,
+       DRV_TLV_SCSI_CHECK_CONDITION_2_RECEIVED_SK_ASC_ASCQ,
+       DRV_TLV_SCSI_CHECK_2_TIMESTAMP,
+       DRV_TLV_SCSI_CHECK_CONDITION_3_RECEIVED_SK_ASC_ASCQ,
+       DRV_TLV_SCSI_CHECK_3_TIMESTAMP,
+       DRV_TLV_SCSI_CHECK_CONDITION_4_RECEIVED_SK_ASC_ASCQ,
+       DRV_TLV_SCSI_CHECK_4_TIMESTAMP,
+       DRV_TLV_SCSI_CHECK_CONDITION_5_RECEIVED_SK_ASC_ASCQ,
+       DRV_TLV_SCSI_CHECK_5_TIMESTAMP,
+       /* Category 30: iSCSI Function Data */
+       DRV_TLV_PDU_TX_DESCRIPTOR_QUEUE_AVG_DEPTH,
+       DRV_TLV_PDU_RX_DESCRIPTORS_QUEUE_AVG_DEPTH,
+       DRV_TLV_ISCSI_PDU_RX_FRAMES_RECEIVED,
+       DRV_TLV_ISCSI_PDU_RX_BYTES_RECEIVED,
+       DRV_TLV_ISCSI_PDU_TX_FRAMES_SENT,
+       DRV_TLV_ISCSI_PDU_TX_BYTES_SENT
+};
+
 struct nvm_cfg_mac_address {
        u32 mac_addr_hi;
 #define NVM_CFG_MAC_ADDRESS_HI_MASK    0x0000FFFF