1853e2bd2SBhanu Gollapudi #ifndef __BNX2FC_CONSTANTS_H_ 2853e2bd2SBhanu Gollapudi #define __BNX2FC_CONSTANTS_H_ 3853e2bd2SBhanu Gollapudi 4853e2bd2SBhanu Gollapudi /** 5853e2bd2SBhanu Gollapudi * This file defines HSI constants for the FCoE flows 6853e2bd2SBhanu Gollapudi */ 7853e2bd2SBhanu Gollapudi 8853e2bd2SBhanu Gollapudi /* KWQ/KCQ FCoE layer code */ 9853e2bd2SBhanu Gollapudi #define FCOE_KWQE_LAYER_CODE (7) 10853e2bd2SBhanu Gollapudi 11853e2bd2SBhanu Gollapudi /* KWQ (kernel work queue) request op codes */ 12853e2bd2SBhanu Gollapudi #define FCOE_KWQE_OPCODE_INIT1 (0) 13853e2bd2SBhanu Gollapudi #define FCOE_KWQE_OPCODE_INIT2 (1) 14853e2bd2SBhanu Gollapudi #define FCOE_KWQE_OPCODE_INIT3 (2) 15853e2bd2SBhanu Gollapudi #define FCOE_KWQE_OPCODE_OFFLOAD_CONN1 (3) 16853e2bd2SBhanu Gollapudi #define FCOE_KWQE_OPCODE_OFFLOAD_CONN2 (4) 17853e2bd2SBhanu Gollapudi #define FCOE_KWQE_OPCODE_OFFLOAD_CONN3 (5) 18853e2bd2SBhanu Gollapudi #define FCOE_KWQE_OPCODE_OFFLOAD_CONN4 (6) 19853e2bd2SBhanu Gollapudi #define FCOE_KWQE_OPCODE_ENABLE_CONN (7) 20853e2bd2SBhanu Gollapudi #define FCOE_KWQE_OPCODE_DISABLE_CONN (8) 21853e2bd2SBhanu Gollapudi #define FCOE_KWQE_OPCODE_DESTROY_CONN (9) 22853e2bd2SBhanu Gollapudi #define FCOE_KWQE_OPCODE_DESTROY (10) 23853e2bd2SBhanu Gollapudi #define FCOE_KWQE_OPCODE_STAT (11) 24853e2bd2SBhanu Gollapudi 25853e2bd2SBhanu Gollapudi /* KCQ (kernel completion queue) response op codes */ 26853e2bd2SBhanu Gollapudi #define FCOE_KCQE_OPCODE_INIT_FUNC (0x10) 27853e2bd2SBhanu Gollapudi #define FCOE_KCQE_OPCODE_DESTROY_FUNC (0x11) 28853e2bd2SBhanu Gollapudi #define FCOE_KCQE_OPCODE_STAT_FUNC (0x12) 29853e2bd2SBhanu Gollapudi #define FCOE_KCQE_OPCODE_OFFLOAD_CONN (0x15) 30853e2bd2SBhanu Gollapudi #define FCOE_KCQE_OPCODE_ENABLE_CONN (0x16) 31853e2bd2SBhanu Gollapudi #define FCOE_KCQE_OPCODE_DISABLE_CONN (0x17) 32853e2bd2SBhanu Gollapudi #define FCOE_KCQE_OPCODE_DESTROY_CONN (0x18) 33853e2bd2SBhanu Gollapudi #define FCOE_KCQE_OPCODE_CQ_EVENT_NOTIFICATION (0x20) 34853e2bd2SBhanu Gollapudi #define FCOE_KCQE_OPCODE_FCOE_ERROR (0x21) 35853e2bd2SBhanu Gollapudi 36853e2bd2SBhanu Gollapudi /* KCQ (kernel completion queue) completion status */ 37853e2bd2SBhanu Gollapudi #define FCOE_KCQE_COMPLETION_STATUS_SUCCESS (0x0) 38853e2bd2SBhanu Gollapudi #define FCOE_KCQE_COMPLETION_STATUS_ERROR (0x1) 39853e2bd2SBhanu Gollapudi #define FCOE_KCQE_COMPLETION_STATUS_INVALID_OPCODE (0x2) 40853e2bd2SBhanu Gollapudi #define FCOE_KCQE_COMPLETION_STATUS_CTX_ALLOC_FAILURE (0x3) 41853e2bd2SBhanu Gollapudi #define FCOE_KCQE_COMPLETION_STATUS_CTX_FREE_FAILURE (0x4) 42853e2bd2SBhanu Gollapudi #define FCOE_KCQE_COMPLETION_STATUS_NIC_ERROR (0x5) 43853e2bd2SBhanu Gollapudi 44853e2bd2SBhanu Gollapudi /* Unsolicited CQE type */ 45853e2bd2SBhanu Gollapudi #define FCOE_UNSOLICITED_FRAME_CQE_TYPE 0 46853e2bd2SBhanu Gollapudi #define FCOE_ERROR_DETECTION_CQE_TYPE 1 47853e2bd2SBhanu Gollapudi #define FCOE_WARNING_DETECTION_CQE_TYPE 2 48853e2bd2SBhanu Gollapudi 49853e2bd2SBhanu Gollapudi /* Task context constants */ 50853e2bd2SBhanu Gollapudi /* After driver has initialize the task in case timer services required */ 51853e2bd2SBhanu Gollapudi #define FCOE_TASK_TX_STATE_INIT 0 52853e2bd2SBhanu Gollapudi /* In case timer services are required then shall be updated by Xstorm after 53853e2bd2SBhanu Gollapudi * start processing the task. In case no timer facilities are required then the 54853e2bd2SBhanu Gollapudi * driver would initialize the state to this value */ 55853e2bd2SBhanu Gollapudi #define FCOE_TASK_TX_STATE_NORMAL 1 56853e2bd2SBhanu Gollapudi /* Task is under abort procedure. Updated in order to stop processing of 57853e2bd2SBhanu Gollapudi * pending WQEs on this task */ 58853e2bd2SBhanu Gollapudi #define FCOE_TASK_TX_STATE_ABORT 2 59853e2bd2SBhanu Gollapudi /* For E_D_T_TOV timer expiration in Xstorm (Class 2 only) */ 60853e2bd2SBhanu Gollapudi #define FCOE_TASK_TX_STATE_ERROR 3 61853e2bd2SBhanu Gollapudi /* For REC_TOV timer expiration indication received from Xstorm */ 62853e2bd2SBhanu Gollapudi #define FCOE_TASK_TX_STATE_WARNING 4 63853e2bd2SBhanu Gollapudi /* For completed unsolicited task */ 64853e2bd2SBhanu Gollapudi #define FCOE_TASK_TX_STATE_UNSOLICITED_COMPLETED 5 65853e2bd2SBhanu Gollapudi /* For exchange cleanup request task */ 66853e2bd2SBhanu Gollapudi #define FCOE_TASK_TX_STATE_EXCHANGE_CLEANUP 6 67853e2bd2SBhanu Gollapudi /* For sequence cleanup request task */ 68853e2bd2SBhanu Gollapudi #define FCOE_TASK_TX_STATE_SEQUENCE_CLEANUP 7 69853e2bd2SBhanu Gollapudi /* Mark task as aborted and indicate that ABTS was not transmitted */ 70853e2bd2SBhanu Gollapudi #define FCOE_TASK_TX_STATE_BEFORE_ABTS_TX 8 71853e2bd2SBhanu Gollapudi /* Mark task as aborted and indicate that ABTS was transmitted */ 72853e2bd2SBhanu Gollapudi #define FCOE_TASK_TX_STATE_AFTER_ABTS_TX 9 73853e2bd2SBhanu Gollapudi /* For completion the ABTS task. */ 74853e2bd2SBhanu Gollapudi #define FCOE_TASK_TX_STATE_ABTS_TX_COMPLETED 10 75853e2bd2SBhanu Gollapudi /* Mark task as aborted and indicate that Exchange cleanup was not transmitted 76853e2bd2SBhanu Gollapudi */ 77853e2bd2SBhanu Gollapudi #define FCOE_TASK_TX_STATE_BEFORE_EXCHANGE_CLEANUP_TX 11 78853e2bd2SBhanu Gollapudi /* Mark task as aborted and indicate that Exchange cleanup was transmitted */ 79853e2bd2SBhanu Gollapudi #define FCOE_TASK_TX_STATE_AFTER_EXCHANGE_CLEANUP_TX 12 80853e2bd2SBhanu Gollapudi 81853e2bd2SBhanu Gollapudi #define FCOE_TASK_RX_STATE_NORMAL 0 82853e2bd2SBhanu Gollapudi #define FCOE_TASK_RX_STATE_COMPLETED 1 83853e2bd2SBhanu Gollapudi /* Obsolete: Intermediate completion (middle path with local completion) */ 84853e2bd2SBhanu Gollapudi #define FCOE_TASK_RX_STATE_INTER_COMP 2 85853e2bd2SBhanu Gollapudi /* For REC_TOV timer expiration indication received from Xstorm */ 86853e2bd2SBhanu Gollapudi #define FCOE_TASK_RX_STATE_WARNING 3 87853e2bd2SBhanu Gollapudi /* For E_D_T_TOV timer expiration in Ustorm */ 88853e2bd2SBhanu Gollapudi #define FCOE_TASK_RX_STATE_ERROR 4 89853e2bd2SBhanu Gollapudi /* ABTS ACC arrived wait for local completion to finally complete the task. */ 90853e2bd2SBhanu Gollapudi #define FCOE_TASK_RX_STATE_ABTS_ACC_ARRIVED 5 91853e2bd2SBhanu Gollapudi /* local completion arrived wait for ABTS ACC to finally complete the task. */ 92853e2bd2SBhanu Gollapudi #define FCOE_TASK_RX_STATE_ABTS_LOCAL_COMP_ARRIVED 6 93853e2bd2SBhanu Gollapudi /* Special completion indication in case of task was aborted. */ 94853e2bd2SBhanu Gollapudi #define FCOE_TASK_RX_STATE_ABTS_COMPLETED 7 95853e2bd2SBhanu Gollapudi /* Special completion indication in case of task was cleaned. */ 96853e2bd2SBhanu Gollapudi #define FCOE_TASK_RX_STATE_EXCHANGE_CLEANUP_COMPLETED 8 97853e2bd2SBhanu Gollapudi /* Special completion indication (in task requested the exchange cleanup) in 98853e2bd2SBhanu Gollapudi * case cleaned task is in non-valid. */ 99853e2bd2SBhanu Gollapudi #define FCOE_TASK_RX_STATE_ABORT_CLEANUP_COMPLETED 9 100853e2bd2SBhanu Gollapudi /* Special completion indication (in task requested the sequence cleanup) in 101853e2bd2SBhanu Gollapudi * case cleaned task was already returned to normal. */ 102853e2bd2SBhanu Gollapudi #define FCOE_TASK_RX_STATE_IGNORED_SEQUENCE_CLEANUP 10 103853e2bd2SBhanu Gollapudi /* Exchange cleanup arrived wait until xfer will be handled to finally 104853e2bd2SBhanu Gollapudi * complete the task. */ 105853e2bd2SBhanu Gollapudi #define FCOE_TASK_RX_STATE_EXCHANGE_CLEANUP_ARRIVED 11 106853e2bd2SBhanu Gollapudi /* Xfer handled, wait for exchange cleanup to finally complete the task. */ 107853e2bd2SBhanu Gollapudi #define FCOE_TASK_RX_STATE_EXCHANGE_CLEANUP_HANDLED_XFER 12 108853e2bd2SBhanu Gollapudi 109853e2bd2SBhanu Gollapudi #define FCOE_TASK_TYPE_WRITE 0 110853e2bd2SBhanu Gollapudi #define FCOE_TASK_TYPE_READ 1 111853e2bd2SBhanu Gollapudi #define FCOE_TASK_TYPE_MIDPATH 2 112853e2bd2SBhanu Gollapudi #define FCOE_TASK_TYPE_UNSOLICITED 3 113853e2bd2SBhanu Gollapudi #define FCOE_TASK_TYPE_ABTS 4 114853e2bd2SBhanu Gollapudi #define FCOE_TASK_TYPE_EXCHANGE_CLEANUP 5 115853e2bd2SBhanu Gollapudi #define FCOE_TASK_TYPE_SEQUENCE_CLEANUP 6 116853e2bd2SBhanu Gollapudi 117853e2bd2SBhanu Gollapudi #define FCOE_TASK_DEV_TYPE_DISK 0 118853e2bd2SBhanu Gollapudi #define FCOE_TASK_DEV_TYPE_TAPE 1 119853e2bd2SBhanu Gollapudi 120853e2bd2SBhanu Gollapudi #define FCOE_TASK_CLASS_TYPE_3 0 121853e2bd2SBhanu Gollapudi #define FCOE_TASK_CLASS_TYPE_2 1 122853e2bd2SBhanu Gollapudi 123853e2bd2SBhanu Gollapudi /* Everest FCoE connection type */ 124853e2bd2SBhanu Gollapudi #define B577XX_FCOE_CONNECTION_TYPE 4 125853e2bd2SBhanu Gollapudi 126853e2bd2SBhanu Gollapudi /* Error codes for Error Reporting in fast path flows */ 127853e2bd2SBhanu Gollapudi /* XFER error codes */ 128853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_XFER_OOO_RO 0 129853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_XFER_RO_NOT_ALIGNED 1 130853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_XFER_NULL_BURST_LEN 2 131853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_XFER_RO_GREATER_THAN_DATA2TRNS 3 132853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_XFER_INVALID_PAYLOAD_SIZE 4 133853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_XFER_TASK_TYPE_NOT_WRITE 5 134853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_XFER_PEND_XFER_SET 6 135853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_XFER_OPENED_SEQ 7 136853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_XFER_FCTL 8 137853e2bd2SBhanu Gollapudi 138853e2bd2SBhanu Gollapudi /* FCP RSP error codes */ 139853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_FCP_RSP_BIDI_FLAGS_SET 9 140853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_FCP_RSP_UNDERFLOW 10 141853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_FCP_RSP_OVERFLOW 11 142853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_FCP_RSP_INVALID_LENGTH_FIELD 12 143853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_FCP_RSP_INVALID_SNS_FIELD 13 144853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_FCP_RSP_INVALID_PAYLOAD_SIZE 14 145853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_FCP_RSP_PEND_XFER_SET 15 146853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_FCP_RSP_OPENED_SEQ 16 147853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_FCP_RSP_FCTL 17 148853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_FCP_RSP_LAST_SEQ_RESET 18 149853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_FCP_RSP_CONF_REQ_NOT_SUPPORTED_YET 19 150853e2bd2SBhanu Gollapudi 151853e2bd2SBhanu Gollapudi /* FCP DATA error codes */ 152853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_DATA_OOO_RO 20 153853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_DATA_EXCEEDS_DEFINED_MAX_FRAME_SIZE 21 154853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_DATA_EXCEEDS_DATA2TRNS 22 155853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_DATA_SOFI3_SEQ_ACTIVE_SET 23 156853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_DATA_SOFN_SEQ_ACTIVE_RESET 24 157853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_DATA_EOFN_END_SEQ_SET 25 158853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_DATA_EOFT_END_SEQ_RESET 26 159853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_DATA_TASK_TYPE_NOT_READ 27 160853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_DATA_FCTL 28 161853e2bd2SBhanu Gollapudi 162853e2bd2SBhanu Gollapudi /* Middle path error codes */ 163853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_MIDPATH_TYPE_NOT_ELS 29 164853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_MIDPATH_SOFI3_SEQ_ACTIVE_SET 30 165853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_MIDPATH_SOFN_SEQ_ACTIVE_RESET 31 166853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_MIDPATH_EOFN_END_SEQ_SET 32 167853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_MIDPATH_EOFT_END_SEQ_RESET 33 168853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_MIDPATH_ELS_REPLY_FCTL 34 169853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_MIDPATH_INVALID_REPLY 35 170853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_MIDPATH_ELS_REPLY_RCTL 36 171853e2bd2SBhanu Gollapudi 172853e2bd2SBhanu Gollapudi /* ABTS error codes */ 173853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_ABTS_REPLY_F_CTL 37 174853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_ABTS_REPLY_DDF_RCTL_FIELD 38 175853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_ABTS_REPLY_INVALID_BLS_RCTL 39 176853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_ABTS_REPLY_INVALID_RCTL 40 177853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_ABTS_REPLY_RCTL_GENERAL_MISMATCH 41 178853e2bd2SBhanu Gollapudi 179853e2bd2SBhanu Gollapudi /* Common error codes */ 180853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_COMMON_MIDDLE_FRAME_WITH_PAD 42 181853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_COMMON_SEQ_INIT_IN_TCE 43 182853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_COMMON_FC_HDR_RX_ID_MISMATCH 44 183853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_COMMON_INCORRECT_SEQ_CNT 45 184853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_COMMON_DATA_FC_HDR_FCP_TYPE_MISMATCH 46 185853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_COMMON_DATA_NO_MORE_SGES 47 186853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_COMMON_OPTIONAL_FC_HDR 48 187853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_COMMON_READ_TCE_OX_ID_TOO_BIG 49 188853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_COMMON_DATA_WAS_NOT_TRANSMITTED 50 189853e2bd2SBhanu Gollapudi 190853e2bd2SBhanu Gollapudi /* Unsolicited Rx error codes */ 191853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_UNSOLICITED_TYPE_NOT_ELS 51 192853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_UNSOLICITED_TYPE_NOT_BLS 52 193853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_UNSOLICITED_FCTL_ELS 53 194853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_UNSOLICITED_FCTL_BLS 54 195853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_UNSOLICITED_R_CTL 55 196853e2bd2SBhanu Gollapudi 197853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_RW_TASK_DDF_RCTL_INFO_FIELD 56 198853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_RW_TASK_INVALID_RCTL 57 199853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_RW_TASK_RCTL_GENERAL_MISMATCH 58 200853e2bd2SBhanu Gollapudi 201853e2bd2SBhanu Gollapudi /* Timer error codes */ 202853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_E_D_TOV_TIMER_EXPIRATION 60 203853e2bd2SBhanu Gollapudi #define FCOE_ERROR_CODE_REC_TOV_TIMER_EXPIRATION 61 204853e2bd2SBhanu Gollapudi 205853e2bd2SBhanu Gollapudi 206853e2bd2SBhanu Gollapudi #endif /* BNX2FC_CONSTANTS_H_ */ 207