19 #define ERRFILE ERRFILE_tg3 28 #define dma_addr_t unsigned long 37 #define DRV_MODULE_NAME "bnxt" 38 #define IPXE_VERSION_MAJOR 1 39 #define IPXE_VERSION_MINOR 0 40 #define IPXE_VERSION_UPDATE 0 45 #define FLAG_SET(f, b) ((f) |= (b)) 46 #define FLAG_TEST(f, b) ((f) & (b)) 47 #define FLAG_RESET(f, b) ((f) &= ~(b)) 48 #define BNXT_FLAG_HWRM_SHORT_CMD_SUPP 0x0001 49 #define BNXT_FLAG_HWRM_SHORT_CMD_REQ 0x0002 50 #define BNXT_FLAG_RESOURCE_QCAPS_SUPPORT 0x0004 51 #define BNXT_FLAG_MULTI_HOST 0x0008 52 #define BNXT_FLAG_NPAR_MODE 0x0010 53 #define BNXT_FLAG_ATOMICS_ENABLE 0x0020 54 #define BNXT_FLAG_PCI_VF 0x0040 55 #define BNXT_FLAG_LINK_SPEEDS2 0x0080 56 #define BNXT_FLAG_IS_CHIP_P5 0x0100 57 #define BNXT_FLAG_IS_CHIP_P5_PLUS 0x0200 58 #define BNXT_FLAG_IS_CHIP_P7 0x0400 62 #define STATUS_SUCCESS 0 63 #define STATUS_FAILURE 1 64 #define STATUS_NO_RESOURCE 2 65 #define STATUS_INVALID_PARAMETER 3 66 #define STATUS_LINK_ACTIVE 4 67 #define STATUS_LINK_DOWN 5 68 #define STATUS_LINK_SETTING_MISMATCH 6 69 #define STATUS_TOO_MANY_FRAGMENTS 7 70 #define STATUS_TRANSMIT_ABORTED 8 71 #define STATUS_TRANSMIT_ERROR 9 72 #define STATUS_RECEIVE_ABORTED 10 73 #define STATUS_RECEIVE_ERROR 11 74 #define STATUS_INVALID_PACKET_SIZE 12 75 #define STATUS_NO_MAP_REGISTER 13 76 #define STATUS_UNKNOWN_ADAPTER 14 77 #define STATUS_NO_COALESCE_BUFFER 15 78 #define STATUS_UNKNOWN_PHY 16 79 #define STATUS_PENDING 17 80 #define STATUS_NO_TX_DESC 18 81 #define STATUS_NO_TX_BD 19 82 #define STATUS_UNKNOWN_MEDIUM 20 83 #define STATUS_RESOURCE 21 84 #define STATUS_ABORT_REASON_DISCONNECT 22 85 #define STATUS_ABORT_REASON_UPLOAD 23 86 #define STATUS_TIMEOUT 0xffff 90 #define RX_MASK_ACCEPT_NONE 0x0000 91 #define RX_MASK_ACCEPT_UNICAST 0x0001 92 #define RX_MASK_ACCEPT_MULTICAST 0x0002 93 #define RX_MASK_ACCEPT_ALL_MULTICAST 0x0004 94 #define RX_MASK_ACCEPT_BROADCAST 0x0008 95 #define RX_MASK_ACCEPT_ERROR_PACKET 0x0010 96 #define RX_MASK_PROMISCUOUS_MODE 0x10000 100 #define MEDIUM_SPEED_AUTONEG 0x0000L 101 #define MEDIUM_SPEED_UNKNOWN 0x0000L 102 #define MEDIUM_SPEED_10MBPS 0x0100L 103 #define MEDIUM_SPEED_100MBPS 0x0200L 104 #define MEDIUM_SPEED_1000MBPS 0x0300L 105 #define MEDIUM_SPEED_2500MBPS 0x0400L 106 #define MEDIUM_SPEED_10GBPS 0x0600L 107 #define MEDIUM_SPEED_20GBPS 0x0700L 108 #define MEDIUM_SPEED_25GBPS 0x0800L 109 #define MEDIUM_SPEED_40GBPS 0x0900L 110 #define MEDIUM_SPEED_50GBPS 0x0a00L 111 #define MEDIUM_SPEED_100GBPS 0x0b00L 112 #define MEDIUM_SPEED_200GBPS 0x0c00L 113 #define MEDIUM_SPEED_50PAM4GBPS 0x0d00L 114 #define MEDIUM_SPEED_100PAM4GBPS 0x0e00L 115 #define MEDIUM_SPEED_100PAM4_112GBPS 0x0f00L 116 #define MEDIUM_SPEED_200PAM4_112GBPS 0x1000L 117 #define MEDIUM_SPEED_400PAM4GBPS 0x2000L 118 #define MEDIUM_SPEED_400PAM4_112GBPS 0x3000L 119 #define MEDIUM_SPEED_AUTONEG_1G_FALLBACK 0x8000L 120 #define MEDIUM_SPEED_AUTONEG_2_5G_FALLBACK 0x8100L 121 #define MEDIUM_SPEED_HARDWARE_DEFAULT 0xff00L 122 #define MEDIUM_SPEED_MASK 0xff00L 123 #define GET_MEDIUM_SPEED(m) ((m) & MEDIUM_SPEED_MASK) 124 #define SET_MEDIUM_SPEED(bp, s) ((bp->medium & ~MEDIUM_SPEED_MASK) | s) 125 #define MEDIUM_UNKNOWN_DUPLEX 0x00000L 126 #define MEDIUM_FULL_DUPLEX 0x00000L 127 #define MEDIUM_HALF_DUPLEX 0x10000L 128 #define GET_MEDIUM_DUPLEX(m) ((m) & MEDIUM_HALF_DUPLEX) 129 #define SET_MEDIUM_DUPLEX(bp, d) ((bp->medium & ~MEDIUM_HALF_DUPLEX) | d) 130 #define MEDIUM_SELECTIVE_AUTONEG 0x01000000L 131 #define GET_MEDIUM_AUTONEG_MODE(m) ((m) & 0xff000000L) 132 #define PCICFG_ME_REGISTER 0x98 133 #define GRC_COM_CHAN_BASE 0 134 #define GRC_COM_CHAN_TRIG 0x100 135 #define GRC_IND_BAR_0_ADDR 0x78 136 #define GRC_IND_BAR_1_ADDR 0x7C 137 #define GRC_IND_BAR_0_DATA 0x80 138 #define GRC_IND_BAR_1_DATA 0x84 139 #define GRC_BASE_WIN_0 0x400 140 #define GRC_DATA_WIN_0 0x1000 141 #define HWRM_CMD_DEFAULT_TIMEOUT 500 142 #define HWRM_CMD_POLL_WAIT_TIME 100 143 #define HWRM_CMD_DEFAULT_MULTIPLAYER(a) ((a) * 10) 144 #define HWRM_CMD_FLASH_MULTIPLAYER(a) ((a) * 100) 145 #define HWRM_CMD_FLASH_ERASE_MULTIPLAYER(a) ((a) * 1000) 146 #define HWRM_CMD_WAIT(b) ((bp->hwrm_cmd_timeout) * (b)) 147 #define MAX_ETHERNET_PACKET_BUFFER_SIZE 1536 148 #define DEFAULT_NUMBER_OF_CMPL_RINGS 0x01 149 #define DEFAULT_NUMBER_OF_TX_RINGS 0x01 150 #define DEFAULT_NUMBER_OF_RX_RINGS 0x01 151 #define DEFAULT_NUMBER_OF_RING_GRPS 0x01 152 #define DEFAULT_NUMBER_OF_STAT_CTXS 0x01 153 #define NUM_RX_BUFFERS 8 154 #define MAX_RX_DESC_CNT 16 155 #define MAX_TX_DESC_CNT 16 156 #define MAX_CQ_DESC_CNT 64 157 #define TX_RING_BUFFER_SIZE (MAX_TX_DESC_CNT * sizeof(struct tx_bd_short)) 158 #define RX_RING_BUFFER_SIZE \ 159 (MAX_RX_DESC_CNT * sizeof(struct rx_prod_pkt_bd)) 160 #define CQ_RING_BUFFER_SIZE (MAX_CQ_DESC_CNT * sizeof(struct cmpl_base)) 161 #define BNXT_DMA_ALIGNMENT 256 //64 162 #define DMA_ALIGN_4K 4096 //thor tx & rx 163 #define REQ_BUFFER_SIZE 1024 164 #define RESP_BUFFER_SIZE 1024 165 #define DMA_BUFFER_SIZE 1024 166 #define LM_PAGE_BITS(a) (a) 167 #define BNXT_RX_STD_DMA_SZ (1536 + 64 + 2) 168 #define NEXT_IDX(N, S) (((N) + 1) & ((S) - 1)) 169 #define BD_NOW(bd, entry, len) (&((u8 *)(bd))[(entry) * (len)]) 170 #define BNXT_CQ_INTR_MODE(vf) (\ 171 ((vf) ? RING_ALLOC_REQ_INT_MODE_MSIX : RING_ALLOC_REQ_INT_MODE_POLL)) 173 #define LINK_DEFAULT_TIMEOUT 1000 174 #define LINK_POLL_WAIT_TIME 100 176 RX_MASK_ACCEPT_BROADCAST | \ 177 RX_MASK_ACCEPT_ALL_MULTICAST | \ 178 RX_MASK_ACCEPT_MULTICAST) 179 #define MAX_NQ_DESC_CNT 64 180 #define NQ_RING_BUFFER_SIZE (MAX_NQ_DESC_CNT * sizeof(struct cmpl_base)) 181 #define RX_RING_QID (FLAG_TEST(bp->flags, BNXT_FLAG_IS_CHIP_P5_PLUS) ? bp->queue_id : 0) 182 #define STAT_CTX_ID ((bp->vf || FLAG_TEST(bp->flags, BNXT_FLAG_IS_CHIP_P5_PLUS)) ? bp->stat_ctx_id : 0) 183 #define TX_AVAIL(r) (r - 1) 184 #define TX_IN_USE(a, b, c) ((a - b) & (c - 1)) 185 #define NO_MORE_NQ_BD_TO_SERVICE 1 186 #define SERVICE_NEXT_NQ_BD 0 187 #define NO_MORE_CQ_BD_TO_SERVICE 1 188 #define SERVICE_NEXT_CQ_BD 0 189 #define MAC_HDR_SIZE 12 190 #define VLAN_HDR_SIZE 4 191 #define ETHERTYPE_VLAN 0x8100 192 #define BYTE_SWAP_S(w) (\ 193 (((w) & 0xff00) >> 8) | \ 194 (((w) & 0x00ff) << 8)) 195 #define DB_OFFSET_PF 0x10000 196 #define DB_OFFSET_VF 0x4000 197 #define DBC_MSG_IDX(idx) (\ 198 ((idx) << DBC_DBC_INDEX_SFT) & DBC_DBC_INDEX_MASK) 199 #define DBC_MSG_XID(xid, flg) (\ 200 (((xid) << DBC_DBC_XID_SFT) & DBC_DBC_XID_MASK) | \ 201 DBC_DBC_PATH_L2 | (FLAG_TEST ( bp->flags, BNXT_FLAG_IS_CHIP_P7 ) ? DBC_DBC_VALID : 0) | (flg)) 202 #define DBC_MSG_EPCH(idx) (\ 203 ((idx) << DBC_DBC_EPOCH_SFT)) 204 #define DBC_MSG_TOGGLE(idx) (\ 205 ((idx) << DBC_DBC_TOGGLE_SFT) & DBC_DBC_TOGGLE_MASK) 206 #define PHY_STATUS 0x0001 207 #define PHY_SPEED 0x0002 208 #define DETECT_MEDIA 0x0004 209 #define SUPPORT_SPEEDS 0x0008 210 #define SUPPORT_SPEEDS2 0x0010 211 #define QCFG_PHY_ALL (\ 212 SUPPORT_SPEEDS | SUPPORT_SPEEDS2 | \ 213 DETECT_MEDIA | PHY_SPEED | PHY_STATUS) 214 #define str_mbps "Mbps" 215 #define str_gbps "Gbps" 220 #define LINK_SPEED_DRV_NUM 203 221 #define LINK_SPEED_DRV_MASK 0x0000000F 222 #define LINK_SPEED_DRV_SHIFT 0 223 #define LINK_SPEED_DRV_AUTONEG 0x0 224 #define NS_LINK_SPEED_DRV_AUTONEG 0x0 225 #define LINK_SPEED_DRV_1G 0x1 226 #define NS_LINK_SPEED_DRV_1G 0x1 227 #define LINK_SPEED_DRV_10G 0x2 228 #define NS_LINK_SPEED_DRV_10G 0x2 229 #define LINK_SPEED_DRV_25G 0x3 230 #define NS_LINK_SPEED_DRV_25G 0x3 231 #define LINK_SPEED_DRV_40G 0x4 232 #define NS_LINK_SPEED_DRV_40G 0x4 233 #define LINK_SPEED_DRV_50G 0x5 234 #define NS_LINK_SPEED_DRV_50G 0x5 235 #define LINK_SPEED_DRV_100G 0x6 236 #define NS_LINK_SPEED_DRV_100G 0x6 237 #define LINK_SPEED_DRV_200G 0x7 238 #define NS_LINK_SPEED_DRV_200G 0x7 239 #define LINK_SPEED_DRV_2_5G 0xE 240 #define NS_LINK_SPEED_DRV_2_5G 0xE 241 #define LINK_SPEED_DRV_100M 0xF 242 #define NS_LINK_SPEED_DRV_100M 0xF 244 #define SPEED_CAPABILITY_DRV_MASK 0x0000FFFF 245 #define SPEED_CAPABILITY_DRV_SHIFT 0 246 #define SPEED_CAPABILITY_DRV_1G 0x1 247 #define NS_SPEED_CAPABILITY_DRV_1G 0x1 248 #define SPEED_CAPABILITY_DRV_10G 0x2 249 #define NS_SPEED_CAPABILITY_DRV_10G 0x2 250 #define SPEED_CAPABILITY_DRV_25G 0x4 251 #define NS_SPEED_CAPABILITY_DRV_25G 0x4 252 #define SPEED_CAPABILITY_DRV_40G 0x8 253 #define NS_SPEED_CAPABILITY_DRV_40G 0x8 254 #define SPEED_CAPABILITY_DRV_50G 0x10 255 #define NS_SPEED_CAPABILITY_DRV_50G 0x10 256 #define SPEED_CAPABILITY_DRV_100G 0x20 257 #define NS_SPEED_CAPABILITY_DRV_100G 0x20 258 #define SPEED_CAPABILITY_DRV_200G 0x40 259 #define NS_SPEED_CAPABILITY_DRV_200G 0x40 260 #define SPEED_CAPABILITY_DRV_2_5G 0x4000 261 #define NS_SPEED_CAPABILITY_DRV_2_5G 0x4000 262 #define SPEED_CAPABILITY_DRV_100M 0x8000 263 #define NS_SPEED_CAPABILITY_DRV_100M 0x8000 265 #define SPEED_CAPABILITY_FW_MASK 0xFFFF0000 266 #define SPEED_CAPABILITY_FW_SHIFT 16 267 #define SPEED_CAPABILITY_FW_1G (0x1L << 16) 268 #define NS_SPEED_CAPABILITY_FW_1G (0x1) 269 #define SPEED_CAPABILITY_FW_10G (0x2L << 16) 270 #define NS_SPEED_CAPABILITY_FW_10G (0x2) 271 #define SPEED_CAPABILITY_FW_25G (0x4L << 16) 272 #define NS_SPEED_CAPABILITY_FW_25G (0x4) 273 #define SPEED_CAPABILITY_FW_40G (0x8L << 16) 274 #define NS_SPEED_CAPABILITY_FW_40G (0x8) 275 #define SPEED_CAPABILITY_FW_50G (0x10L << 16) 276 #define NS_SPEED_CAPABILITY_FW_50G (0x10) 277 #define SPEED_CAPABILITY_FW_100G (0x20L << 16) 278 #define NS_SPEED_CAPABILITY_FW_100G (0x20) 279 #define SPEED_CAPABILITY_FW_200G (0x40L << 16) 280 #define NS_SPEED_CAPABILITY_FW_200G (0x40) 281 #define SPEED_CAPABILITY_FW_2_5G (0x4000L << 16) 282 #define NS_SPEED_CAPABILITY_FW_2_5G (0x4000) 283 #define SPEED_CAPABILITY_FW_100M (0x8000UL << 16) 284 #define NS_SPEED_CAPABILITY_FW_100M (0x8000) 286 #define LINK_SPEED_FW_NUM 205 287 #define LINK_SPEED_FW_MASK 0x00000780 288 #define LINK_SPEED_FW_SHIFT 7 289 #define LINK_SPEED_FW_AUTONEG (0x0L << 7) 290 #define NS_LINK_SPEED_FW_AUTONEG (0x0) 291 #define LINK_SPEED_FW_1G (0x1L << 7) 292 #define NS_LINK_SPEED_FW_1G (0x1) 293 #define LINK_SPEED_FW_10G (0x2L << 7) 294 #define NS_LINK_SPEED_FW_10G (0x2) 295 #define LINK_SPEED_FW_25G (0x3L << 7) 296 #define NS_LINK_SPEED_FW_25G (0x3) 297 #define LINK_SPEED_FW_40G (0x4L << 7) 298 #define NS_LINK_SPEED_FW_40G (0x4) 299 #define LINK_SPEED_FW_50G (0x5L << 7) 300 #define NS_LINK_SPEED_FW_50G (0x5) 301 #define LINK_SPEED_FW_100G (0x6L << 7) 302 #define NS_LINK_SPEED_FW_100G (0x6) 303 #define LINK_SPEED_FW_200G (0x7L << 7) 304 #define NS_LINK_SPEED_FW_200G (0x7) 305 #define LINK_SPEED_FW_50G_PAM4 (0x8L << 7) 306 #define NS_LINK_SPEED_FW_50G_PAM4 (0x8) 307 #define LINK_SPEED_FW_100G_PAM4 (0x9L << 7) 308 #define NS_LINK_SPEED_FW_100G_PAM4 (0x9) 309 #define LINK_SPEED_FW_100G_PAM4_112 (0xAL << 7) 310 #define NS_LINK_SPEED_FW_100G_PAM4_112 (0xA) 311 #define LINK_SPEED_FW_200G_PAM4_112 (0xBL << 7) 312 #define NS_LINK_SPEED_FW_200G_PAM4_112 (0xB) 313 #define LINK_SPEED_FW_400G_PAM4 (0xCL << 7) 314 #define NS_LINK_SPEED_FW_400G_PAM4 (0xC) 315 #define LINK_SPEED_FW_400G_PAM4_112 (0xDL << 7) 316 #define NS_LINK_SPEED_FW_400G_PAM4_112 (0xD) 317 #define LINK_SPEED_FW_2_5G (0xEL << 7) 318 #define NS_LINK_SPEED_FW_2_5G (0xE) 319 #define LINK_SPEED_FW_100M (0xFL << 7) 320 #define NS_LINK_SPEED_FW_100M (0xF) 322 #define D3_LINK_SPEED_FW_NUM 210 323 #define D3_LINK_SPEED_FW_MASK 0x000F0000 324 #define D3_LINK_SPEED_FW_SHIFT 16 325 #define D3_LINK_SPEED_FW_AUTONEG (0x0L << 16) 326 #define NS_D3_LINK_SPEED_FW_AUTONEG (0x0) 327 #define D3_LINK_SPEED_FW_1G (0x1L << 16) 328 #define NS_D3_LINK_SPEED_FW_1G (0x1) 329 #define D3_LINK_SPEED_FW_10G (0x2L << 16) 330 #define NS_D3_LINK_SPEED_FW_10G (0x2) 331 #define D3_LINK_SPEED_FW_25G (0x3L << 16) 332 #define NS_D3_LINK_SPEED_FW_25G (0x3) 333 #define D3_LINK_SPEED_FW_40G (0x4L << 16) 334 #define NS_D3_LINK_SPEED_FW_40G (0x4) 335 #define D3_LINK_SPEED_FW_50G (0x5L << 16) 336 #define NS_D3_LINK_SPEED_FW_50G (0x5) 337 #define D3_LINK_SPEED_FW_100G (0x6L << 16) 338 #define NS_D3_LINK_SPEED_FW_100G (0x6) 339 #define D3_LINK_SPEED_FW_200G (0x7L << 16) 340 #define NS_D3_LINK_SPEED_FW_200G (0x7) 341 #define D3_LINK_SPEED_FW_2_5G (0xEL << 16) 342 #define NS_D3_LINK_SPEED_FW_2_5G (0xE) 343 #define D3_LINK_SPEED_FW_100M (0xFL << 16) 344 #define NS_D3_LINK_SPEED_FW_100M (0xF) 346 #define D3_FLOW_CONTROL_FW_NUM 211 347 #define D3_FLOW_CONTROL_FW_MASK 0x00700000 348 #define D3_FLOW_CONTROL_FW_SHIFT 20 349 #define D3_FLOW_CONTROL_FW_AUTO (0x0L << 20) 350 #define NS_D3_FLOW_CONTROL_FW_AUTO (0x0) 351 #define D3_FLOW_CONTROL_FW_TX (0x1L << 20) 352 #define NS_D3_FLOW_CONTROL_FW_TX (0x1) 353 #define D3_FLOW_CONTROL_FW_RX (0x2L << 20) 354 #define NS_D3_FLOW_CONTROL_FW_RX (0x2) 355 #define D3_FLOW_CONTROL_FW_BOTH (0x3L << 20) 356 #define NS_D3_FLOW_CONTROL_FW_BOTH (0x3) 357 #define D3_FLOW_CONTROL_FW_NONE (0x4L << 20) 358 #define NS_D3_FLOW_CONTROL_FW_NONE (0x4) 360 #define PORT_CFG_LINK_SETTINGS_MEDIA_AUTO_DETECT_NUM 213 361 #define PORT_CFG_LINK_SETTINGS_MEDIA_AUTO_DETECT_MASK 0x02000000 362 #define PORT_CFG_LINK_SETTINGS_MEDIA_AUTO_DETECT_SHIFT 25 363 #define PORT_CFG_LINK_SETTINGS_MEDIA_AUTO_DETECT_DISABLED (0x0L << 25) 364 #define NS_PORT_CFG_LINK_SETTINGS_MEDIA_AUTO_DETECT_DISABLED (0x0) 365 #define PORT_CFG_LINK_SETTINGS_MEDIA_AUTO_DETECT_ENABLED (0x1L << 25) 366 #define NS_PORT_CFG_LINK_SETTINGS_MEDIA_AUTO_DETECT_ENABLED (0x1) 368 #define FUNC_CFG_PRE_BOOT_MBA_VLAN_VALUE_NUM 357 369 #define FUNC_CFG_PRE_BOOT_MBA_VLAN_VALUE_MASK 0x0000FFFF 370 #define FUNC_CFG_PRE_BOOT_MBA_VLAN_VALUE_SHIFT 0 372 #define FUNC_CFG_PRE_BOOT_MBA_VLAN_NUM 358 373 #define FUNC_CFG_PRE_BOOT_MBA_VLAN_MASK 0x00010000 374 #define FUNC_CFG_PRE_BOOT_MBA_VLAN_SHIFT 16 375 #define FUNC_CFG_PRE_BOOT_MBA_VLAN_DISABLED (0x0L << 16) 376 #define NS_FUNC_CFG_PRE_BOOT_MBA_VLAN_DISABLED (0x0) 377 #define FUNC_CFG_PRE_BOOT_MBA_VLAN_ENABLED (0x1L << 16) 378 #define NS_FUNC_CFG_PRE_BOOT_MBA_VLAN_ENABLED (0x1) 382 #define TX_DOORBELL_IDX_MASK 0xffffffUL 383 #define TX_DOORBELL_IDX_SFT 0 384 #define TX_DOORBELL_KEY_MASK 0xf0000000UL 385 #define TX_DOORBELL_KEY_SFT 28 386 #define TX_DOORBELL_KEY_TX (0x0UL << 28) 387 #define TX_DOORBELL_KEY_LAST TX_DOORBELL_KEY_TX 392 #define RX_DOORBELL_IDX_MASK 0xffffffUL 393 #define RX_DOORBELL_IDX_SFT 0 394 #define RX_DOORBELL_KEY_MASK 0xf0000000UL 395 #define RX_DOORBELL_KEY_SFT 28 396 #define RX_DOORBELL_KEY_RX (0x1UL << 28) 397 #define RX_DOORBELL_KEY_LAST RX_DOORBELL_KEY_RX 402 #define CMPL_DOORBELL_IDX_MASK 0xffffffUL 403 #define CMPL_DOORBELL_IDX_SFT 0 404 #define CMPL_DOORBELL_IDX_VALID 0x4000000UL 405 #define CMPL_DOORBELL_MASK 0x8000000UL 406 #define CMPL_DOORBELL_KEY_MASK 0xf0000000UL 407 #define CMPL_DOORBELL_KEY_SFT 28 408 #define CMPL_DOORBELL_KEY_CMPL (0x2UL << 28) 409 #define CMPL_DOORBELL_KEY_LAST CMPL_DOORBELL_KEY_CMPL 415 #define DBC_DBC_INDEX_MASK 0xffffffUL 416 #define DBC_DBC_INDEX_SFT 0 417 #define DBC_DBC_EPOCH 0x1000000UL 418 #define DBC_DBC_EPOCH_SFT 24 419 #define DBC_DBC_TOGGLE_MASK 0x6000000UL 420 #define DBC_DBC_TOGGLE_SFT 25 422 #define DBC_DBC_XID_MASK 0xfffffUL 423 #define DBC_DBC_XID_SFT 0 424 #define DBC_DBC_PATH_MASK 0x3000000UL 425 #define DBC_DBC_PATH_SFT 24 426 #define DBC_DBC_PATH_ROCE (0x0UL << 24) 427 #define DBC_DBC_PATH_L2 (0x1UL << 24) 428 #define DBC_DBC_PATH_ENGINE (0x2UL << 24) 429 #define DBC_DBC_PATH_LAST DBC_DBC_PATH_ENGINE 430 #define DBC_DBC_VALID 0x4000000UL 431 #define DBC_DBC_DEBUG_TRACE 0x8000000UL 432 #define DBC_DBC_TYPE_MASK 0xf0000000UL 433 #define DBC_DBC_TYPE_SFT 28 434 #define DBC_DBC_TYPE_SQ (0x0UL << 28) 435 #define DBC_DBC_TYPE_RQ (0x1UL << 28) 436 #define DBC_DBC_TYPE_SRQ (0x2UL << 28) 437 #define DBC_DBC_TYPE_SRQ_ARM (0x3UL << 28) 438 #define DBC_DBC_TYPE_CQ (0x4UL << 28) 439 #define DBC_DBC_TYPE_CQ_ARMSE (0x5UL << 28) 440 #define DBC_DBC_TYPE_CQ_ARMALL (0x6UL << 28) 441 #define DBC_DBC_TYPE_CQ_ARMENA (0x7UL << 28) 442 #define DBC_DBC_TYPE_SRQ_ARMENA (0x8UL << 28) 443 #define DBC_DBC_TYPE_CQ_CUTOFF_ACK (0x9UL << 28) 444 #define DBC_DBC_TYPE_NQ (0xaUL << 28) 445 #define DBC_DBC_TYPE_NQ_ARM (0xbUL << 28) 446 #define DBC_DBC_TYPE_NULL (0xfUL << 28) 447 #define DBC_DBC_TYPE_LAST DBC_DBC_TYPE_NULL 455 #define TX_BD_SHORT_TYPE_MASK 0x3fUL 456 #define TX_BD_SHORT_TYPE_SFT 0 457 #define TX_BD_SHORT_TYPE_TX_BD_SHORT 0x0UL 458 #define TX_BD_SHORT_TYPE_LAST TX_BD_SHORT_TYPE_TX_BD_SHORT 459 #define TX_BD_SHORT_FLAGS_MASK 0xffc0UL 460 #define TX_BD_SHORT_FLAGS_SFT 6 461 #define TX_BD_SHORT_FLAGS_PACKET_END 0x40UL 462 #define TX_BD_SHORT_FLAGS_NO_CMPL 0x80UL 463 #define TX_BD_SHORT_FLAGS_BD_CNT_MASK 0x1f00UL 464 #define TX_BD_SHORT_FLAGS_BD_CNT_SFT 8 465 #define TX_BD_SHORT_FLAGS_LHINT_MASK 0x6000UL 466 #define TX_BD_SHORT_FLAGS_LHINT_SFT 13 467 #define TX_BD_SHORT_FLAGS_LHINT_LT512 (0x0UL << 13) 468 #define TX_BD_SHORT_FLAGS_LHINT_LT1K (0x1UL << 13) 469 #define TX_BD_SHORT_FLAGS_LHINT_LT2K (0x2UL << 13) 470 #define TX_BD_SHORT_FLAGS_LHINT_GTE2K (0x3UL << 13) 471 #define TX_BD_SHORT_FLAGS_LHINT_LAST TX_BD_SHORT_FLAGS_LHINT_GTE2K 472 #define TX_BD_SHORT_FLAGS_COAL_NOW 0x8000UL 480 #define TX_CMPL_TYPE_MASK 0x3fUL 481 #define TX_CMPL_TYPE_SFT 0 482 #define TX_CMPL_TYPE_TX_L2 0x0UL 483 #define TX_CMPL_TYPE_LAST TX_CMPL_TYPE_TX_L2 484 #define TX_CMPL_FLAGS_MASK 0xffc0UL 485 #define TX_CMPL_FLAGS_SFT 6 486 #define TX_CMPL_FLAGS_ERROR 0x40UL 487 #define TX_CMPL_FLAGS_PUSH 0x80UL 491 #define TX_CMPL_V 0x1UL 492 #define TX_CMPL_ERRORS_MASK 0xfffeUL 493 #define TX_CMPL_ERRORS_SFT 1 494 #define TX_CMPL_ERRORS_BUFFER_ERROR_MASK 0xeUL 495 #define TX_CMPL_ERRORS_BUFFER_ERROR_SFT 1 496 #define TX_CMPL_ERRORS_BUFFER_ERROR_NO_ERROR (0x0UL << 1) 497 #define TX_CMPL_ERRORS_BUFFER_ERROR_BAD_FMT (0x2UL << 1) 498 #define TX_CMPL_ERRORS_BUFFER_ERROR_LAST TX_CMPL_ERRORS_BUFFER_ERROR_BAD_FMT 499 #define TX_CMPL_ERRORS_ZERO_LENGTH_PKT 0x10UL 500 #define TX_CMPL_ERRORS_EXCESSIVE_BD_LENGTH 0x20UL 501 #define TX_CMPL_ERRORS_DMA_ERROR 0x40UL 502 #define TX_CMPL_ERRORS_HINT_TOO_SHORT 0x80UL 503 #define TX_CMPL_ERRORS_POISON_TLP_ERROR 0x100UL 522 #define CMPL_BASE_TYPE_MASK 0x3fUL 523 #define CMPL_BASE_TYPE_SFT 0 524 #define CMPL_BASE_TYPE_TX_L2 0x0UL 525 #define CMPL_BASE_TYPE_RX_L2 0x11UL 526 #define CMPL_BASE_TYPE_RX_AGG 0x12UL 527 #define CMPL_BASE_TYPE_RX_TPA_START 0x13UL 528 #define CMPL_BASE_TYPE_RX_TPA_END 0x15UL 529 #define CMPL_BASE_TYPE_RX_L2_V3 0x17UL 530 #define CMPL_BASE_TYPE_STAT_EJECT 0x1aUL 531 #define CMPL_BASE_TYPE_HWRM_DONE 0x20UL 532 #define CMPL_BASE_TYPE_HWRM_FWD_REQ 0x22UL 533 #define CMPL_BASE_TYPE_HWRM_FWD_RESP 0x24UL 534 #define CMPL_BASE_TYPE_HWRM_ASYNC_EVENT 0x2eUL 535 #define CMPL_BASE_TYPE_CQ_NOTIFICATION 0x30UL 536 #define CMPL_BASE_TYPE_SRQ_EVENT 0x32UL 537 #define CMPL_BASE_TYPE_DBQ_EVENT 0x34UL 538 #define CMPL_BASE_TYPE_QP_EVENT 0x38UL 539 #define CMPL_BASE_TYPE_FUNC_EVENT 0x3aUL 540 #define CMPL_BASE_TYPE_LAST CMPL_BASE_TYPE_FUNC_EVENT 544 #define CMPL_BASE_V 0x1UL 545 #define CMPL_BASE_INFO3_MASK 0xfffffffeUL 546 #define CMPL_BASE_INFO3_SFT 1 570 #define NQ_CN_TYPE_MASK 0x3fUL 571 #define NQ_CN_TYPE_SFT 0 572 #define NQ_CN_TOGGLE_MASK 0xc0UL 573 #define NQ_CN_TOGGLE_SFT 6 575 #define NQ_CN_TYPE_CQ_NOTIFICATION 0x30UL 576 #define NQ_CN_TYPE_LAST NQ_CN_TYPE_CQ_NOTIFICATION 589 #define NQ_CN_V 0x1UL 609 #define RX_PKT_CMPL_TYPE_MASK 0x3fUL 610 #define RX_PKT_CMPL_TYPE_SFT 0 611 #define RX_PKT_CMPL_TYPE_RX_L2 0x11UL 612 #define RX_PKT_CMPL_TYPE_LAST RX_PKT_CMPL_TYPE_RX_L2 613 #define RX_PKT_CMPL_FLAGS_MASK 0xffc0UL 614 #define RX_PKT_CMPL_FLAGS_SFT 6 615 #define RX_PKT_CMPL_FLAGS_ERROR 0x40UL 616 #define RX_PKT_CMPL_FLAGS_PLACEMENT_MASK 0x380UL 617 #define RX_PKT_CMPL_FLAGS_PLACEMENT_SFT 7 618 #define RX_PKT_CMPL_FLAGS_PLACEMENT_NORMAL (0x0UL << 7) 619 #define RX_PKT_CMPL_FLAGS_PLACEMENT_JUMBO (0x1UL << 7) 620 #define RX_PKT_CMPL_FLAGS_PLACEMENT_HDS (0x2UL << 7) 621 #define RX_PKT_CMPL_FLAGS_PLACEMENT_LAST RX_PKT_CMPL_FLAGS_PLACEMENT_HDS 622 #define RX_PKT_CMPL_FLAGS_RSS_VALID 0x400UL 623 #define RX_PKT_CMPL_FLAGS_UNUSED 0x800UL 624 #define RX_PKT_CMPL_FLAGS_ITYPE_MASK 0xf000UL 625 #define RX_PKT_CMPL_FLAGS_ITYPE_SFT 12 626 #define RX_PKT_CMPL_FLAGS_ITYPE_NOT_KNOWN (0x0UL << 12) 627 #define RX_PKT_CMPL_FLAGS_ITYPE_IP (0x1UL << 12) 628 #define RX_PKT_CMPL_FLAGS_ITYPE_TCP (0x2UL << 12) 629 #define RX_PKT_CMPL_FLAGS_ITYPE_UDP (0x3UL << 12) 630 #define RX_PKT_CMPL_FLAGS_ITYPE_FCOE (0x4UL << 12) 631 #define RX_PKT_CMPL_FLAGS_ITYPE_ROCE (0x5UL << 12) 632 #define RX_PKT_CMPL_FLAGS_ITYPE_ICMP (0x7UL << 12) 633 #define RX_PKT_CMPL_FLAGS_ITYPE_PTP_WO_TIMESTAMP (0x8UL << 12) 634 #define RX_PKT_CMPL_FLAGS_ITYPE_PTP_W_TIMESTAMP (0x9UL << 12) 635 #define RX_PKT_CMPL_FLAGS_ITYPE_LAST RX_PKT_CMPL_FLAGS_ITYPE_PTP_W_TIMESTAMP 639 #define RX_PKT_CMPL_V1 0x1UL 640 #define RX_PKT_CMPL_AGG_BUFS_MASK 0x3eUL 641 #define RX_PKT_CMPL_AGG_BUFS_SFT 1 642 #define RX_PKT_CMPL_UNUSED1_MASK 0xc0UL 643 #define RX_PKT_CMPL_UNUSED1_SFT 6 652 #define RX_PKT_CMPL_FLAGS2_IP_CS_CALC 0x1UL 653 #define RX_PKT_CMPL_FLAGS2_L4_CS_CALC 0x2UL 654 #define RX_PKT_CMPL_FLAGS2_T_IP_CS_CALC 0x4UL 655 #define RX_PKT_CMPL_FLAGS2_T_L4_CS_CALC 0x8UL 656 #define RX_PKT_CMPL_FLAGS2_META_FORMAT_MASK 0xf0UL 657 #define RX_PKT_CMPL_FLAGS2_META_FORMAT_SFT 4 658 #define RX_PKT_CMPL_FLAGS2_META_FORMAT_NONE (0x0UL << 4) 659 #define RX_PKT_CMPL_FLAGS2_META_FORMAT_VLAN (0x1UL << 4) 660 #define RX_PKT_CMPL_FLAGS2_META_FORMAT_LAST \ 661 RX_PKT_CMPL_FLAGS2_META_FORMAT_VLAN 662 #define RX_PKT_CMPL_FLAGS2_IP_TYPE 0x100UL 664 #define RX_PKT_CMPL_METADATA_VID_MASK 0xfffUL 665 #define RX_PKT_CMPL_METADATA_VID_SFT 0 666 #define RX_PKT_CMPL_METADATA_DE 0x1000UL 667 #define RX_PKT_CMPL_METADATA_PRI_MASK 0xe000UL 668 #define RX_PKT_CMPL_METADATA_PRI_SFT 13 669 #define RX_PKT_CMPL_METADATA_TPID_MASK 0xffff0000UL 670 #define RX_PKT_CMPL_METADATA_TPID_SFT 16 672 #define RX_PKT_CMPL_V2 0x1UL 673 #define RX_PKT_CMPL_ERRORS_MASK 0xfffeUL 674 #define RX_PKT_CMPL_ERRORS_SFT 1 675 #define RX_PKT_CMPL_ERRORS_BUFFER_ERROR_MASK 0xeUL 676 #define RX_PKT_CMPL_ERRORS_BUFFER_ERROR_SFT 1 677 #define RX_PKT_CMPL_ERRORS_BUFFER_ERROR_NO_BUFFER (0x0UL << 1) 678 #define RX_PKT_CMPL_ERRORS_BUFFER_ERROR_DID_NOT_FIT (0x1UL << 1) 679 #define RX_PKT_CMPL_ERRORS_BUFFER_ERROR_NOT_ON_CHIP (0x2UL << 1) 680 #define RX_PKT_CMPL_ERRORS_BUFFER_ERROR_BAD_FORMAT (0x3UL << 1) 681 #define RX_PKT_CMPL_ERRORS_BUFFER_ERROR_LAST \ 682 RX_PKT_CMPL_ERRORS_BUFFER_ERROR_BAD_FORMAT 683 #define RX_PKT_CMPL_ERRORS_IP_CS_ERROR 0x10UL 684 #define RX_PKT_CMPL_ERRORS_L4_CS_ERROR 0x20UL 685 #define RX_PKT_CMPL_ERRORS_T_IP_CS_ERROR 0x40UL 686 #define RX_PKT_CMPL_ERRORS_T_L4_CS_ERROR 0x80UL 687 #define RX_PKT_CMPL_ERRORS_CRC_ERROR 0x100UL 688 #define RX_PKT_CMPL_ERRORS_T_PKT_ERROR_MASK 0xe00UL 689 #define RX_PKT_CMPL_ERRORS_T_PKT_ERROR_SFT 9 690 #define RX_PKT_CMPL_ERRORS_T_PKT_ERROR_NO_ERROR (0x0UL << 9) 691 #define RX_PKT_CMPL_ERRORS_T_PKT_ERROR_T_L3_BAD_VERSION (0x1UL << 9) 692 #define RX_PKT_CMPL_ERRORS_T_PKT_ERROR_T_L3_BAD_HDR_LEN (0x2UL << 9) 693 #define RX_PKT_CMPL_ERRORS_T_PKT_ERROR_TUNNEL_TOTAL_ERROR (0x3UL << 9) 694 #define RX_PKT_CMPL_ERRORS_T_PKT_ERROR_T_IP_TOTAL_ERROR (0x4UL << 9) 695 #define RX_PKT_CMPL_ERRORS_T_PKT_ERROR_T_UDP_TOTAL_ERROR (0x5UL << 9) 696 #define RX_PKT_CMPL_ERRORS_T_PKT_ERROR_T_L3_BAD_TTL (0x6UL << 9) 697 #define RX_PKT_CMPL_ERRORS_T_PKT_ERROR_LAST \ 698 RX_PKT_CMPL_ERRORS_T_PKT_ERROR_T_L3_BAD_TTL 699 #define RX_PKT_CMPL_ERRORS_PKT_ERROR_MASK 0xf000UL 700 #define RX_PKT_CMPL_ERRORS_PKT_ERROR_SFT 12 701 #define RX_PKT_CMPL_ERRORS_PKT_ERROR_NO_ERROR (0x0UL << 12) 702 #define RX_PKT_CMPL_ERRORS_PKT_ERROR_L3_BAD_VERSION (0x1UL << 12) 703 #define RX_PKT_CMPL_ERRORS_PKT_ERROR_L3_BAD_HDR_LEN (0x2UL << 12) 704 #define RX_PKT_CMPL_ERRORS_PKT_ERROR_L3_BAD_TTL (0x3UL << 12) 705 #define RX_PKT_CMPL_ERRORS_PKT_ERROR_IP_TOTAL_ERROR (0x4UL << 12) 706 #define RX_PKT_CMPL_ERRORS_PKT_ERROR_UDP_TOTAL_ERROR (0x5UL << 12) 707 #define RX_PKT_CMPL_ERRORS_PKT_ERROR_L4_BAD_HDR_LEN (0x6UL << 12) 708 #define RX_PKT_CMPL_ERRORS_PKT_ERROR_L4_BAD_HDR_LEN_TOO_SMALL (0x7UL << 12) 709 #define RX_PKT_CMPL_ERRORS_PKT_ERROR_L4_BAD_OPT_LEN (0x8UL << 12) 710 #define RX_PKT_CMPL_ERRORS_PKT_ERROR_LAST \ 711 RX_PKT_CMPL_ERRORS_PKT_ERROR_L4_BAD_OPT_LEN 714 #define RX_PKT_CMPL_REORDER_MASK 0xffffffUL 715 #define RX_PKT_CMPL_REORDER_SFT 0 720 #define RX_PKT_V3_CMPL_TYPE_MASK 0x3fUL 721 #define RX_PKT_V3_CMPL_TYPE_SFT 0 728 #define RX_PKT_V3_CMPL_TYPE_RX_L2_V3 0x17UL 729 #define RX_PKT_V3_CMPL_TYPE_LAST RX_PKT_V3_CMPL_TYPE_RX_L2_V3 730 #define RX_PKT_V3_CMPL_FLAGS_MASK 0xffc0UL 731 #define RX_PKT_V3_CMPL_FLAGS_SFT 6 732 #define RX_PKT_V3_CMPL_FLAGS_ERROR 0x40UL 733 #define RX_PKT_V3_CMPL_FLAGS_PLACEMENT_MASK 0x380UL 734 #define RX_PKT_V3_CMPL_FLAGS_PLACEMENT_SFT 7 735 #define RX_PKT_V3_CMPL_FLAGS_PLACEMENT_NORMAL (0x0UL << 7) 736 #define RX_PKT_V3_CMPL_FLAGS_PLACEMENT_JUMBO (0x1UL << 7) 737 #define RX_PKT_V3_CMPL_FLAGS_PLACEMENT_HDS (0x2UL << 7) 738 #define RX_PKT_V3_CMPL_FLAGS_PLACEMENT_TRUNCATION (0x3UL << 7) 739 #define RX_PKT_V3_CMPL_FLAGS_PLACEMENT_LAST RX_PKT_V3_CMPL_FLAGS_PLACEMENT_TRUNCATION 740 #define RX_PKT_V3_CMPL_FLAGS_RSS_VALID 0x400UL 741 #define RX_PKT_V3_CMPL_FLAGS_PKT_METADATA_PRESENT 0x800UL 742 #define RX_PKT_V3_CMPL_FLAGS_ITYPE_MASK 0xf000UL 743 #define RX_PKT_V3_CMPL_FLAGS_ITYPE_SFT 12 744 #define RX_PKT_V3_CMPL_FLAGS_ITYPE_NOT_KNOWN (0x0UL << 12) 745 #define RX_PKT_V3_CMPL_FLAGS_ITYPE_IP (0x1UL << 12) 746 #define RX_PKT_V3_CMPL_FLAGS_ITYPE_TCP (0x2UL << 12) 747 #define RX_PKT_V3_CMPL_FLAGS_ITYPE_UDP (0x3UL << 12) 748 #define RX_PKT_V3_CMPL_FLAGS_ITYPE_FCOE (0x4UL << 12) 749 #define RX_PKT_V3_CMPL_FLAGS_ITYPE_ROCE (0x5UL << 12) 750 #define RX_PKT_V3_CMPL_FLAGS_ITYPE_ICMP (0x7UL << 12) 751 #define RX_PKT_V3_CMPL_FLAGS_ITYPE_PTP_WO_TIMESTAMP (0x8UL << 12) 752 #define RX_PKT_V3_CMPL_FLAGS_ITYPE_PTP_W_TIMESTAMP (0x9UL << 12) 753 #define RX_PKT_V3_CMPL_FLAGS_ITYPE_LAST RX_PKT_V3_CMPL_FLAGS_ITYPE_PTP_W_TIMESTAMP 757 #define RX_PKT_V3_CMPL_V1 0x1UL 758 #define RX_PKT_V3_CMPL_AGG_BUFS_MASK 0x3eUL 759 #define RX_PKT_V3_CMPL_AGG_BUFS_SFT 1 760 #define RX_PKT_V3_CMPL_UNUSED1 0x40UL 761 #define RX_PKT_V3_CMPL_RSS_HASH_TYPE_MASK 0xff80UL 762 #define RX_PKT_V3_CMPL_RSS_HASH_TYPE_SFT 7 763 #define RX_PKT_V3_CMPL_RSS_HASH_TYPE_ENUM_0 (0x0UL << 7) 764 #define RX_PKT_V3_CMPL_RSS_HASH_TYPE_ENUM_1 (0x1UL << 7) 765 #define RX_PKT_V3_CMPL_RSS_HASH_TYPE_ENUM_3 (0x3UL << 7) 766 #define RX_PKT_V3_CMPL_RSS_HASH_TYPE_ENUM_4 (0x4UL << 7) 767 #define RX_PKT_V3_CMPL_RSS_HASH_TYPE_ENUM_5 (0x5UL << 7) 768 #define RX_PKT_V3_CMPL_RSS_HASH_TYPE_ENUM_6 (0x6UL << 7) 769 #define RX_PKT_V3_CMPL_RSS_HASH_TYPE_ENUM_7 (0x7UL << 7) 770 #define RX_PKT_V3_CMPL_RSS_HASH_TYPE_ENUM_8 (0x8UL << 7) 771 #define RX_PKT_V3_CMPL_RSS_HASH_TYPE_ENUM_9 (0x9UL << 7) 772 #define RX_PKT_V3_CMPL_RSS_HASH_TYPE_ENUM_10 (0xaUL << 7) 773 #define RX_PKT_V3_CMPL_RSS_HASH_TYPE_ENUM_11 (0xbUL << 7) 774 #define RX_PKT_V3_CMPL_RSS_HASH_TYPE_ENUM_12 (0xcUL << 7) 775 #define RX_PKT_V3_CMPL_RSS_HASH_TYPE_ENUM_13 (0xdUL << 7) 776 #define RX_PKT_V3_CMPL_RSS_HASH_TYPE_ENUM_14 (0xeUL << 7) 777 #define RX_PKT_V3_CMPL_RSS_HASH_TYPE_LAST RX_PKT_V3_CMPL_RSS_HASH_TYPE_ENUM_14 779 #define RX_PKT_V3_CMPL_PAYLOAD_OFFSET_MASK 0x1ffUL 780 #define RX_PKT_V3_CMPL_PAYLOAD_OFFSET_SFT 0 781 #define RX_PKT_V3_CMPL_METADATA1_MASK 0xf000UL 782 #define RX_PKT_V3_CMPL_METADATA1_SFT 12 783 #define RX_PKT_V3_CMPL_METADATA1_TPID_SEL_MASK 0x7000UL 784 #define RX_PKT_V3_CMPL_METADATA1_TPID_SEL_SFT 12 785 #define RX_PKT_V3_CMPL_METADATA1_TPID_SEL_TPID88A8 (0x0UL << 12) 786 #define RX_PKT_V3_CMPL_METADATA1_TPID_SEL_TPID8100 (0x1UL << 12) 787 #define RX_PKT_V3_CMPL_METADATA1_TPID_SEL_TPID9100 (0x2UL << 12) 788 #define RX_PKT_V3_CMPL_METADATA1_TPID_SEL_TPID9200 (0x3UL << 12) 789 #define RX_PKT_V3_CMPL_METADATA1_TPID_SEL_TPID9300 (0x4UL << 12) 790 #define RX_PKT_V3_CMPL_METADATA1_TPID_SEL_TPIDCFG (0x5UL << 12) 791 #define RX_PKT_V3_CMPL_METADATA1_TPID_SEL_LAST RX_PKT_V3_CMPL_METADATA1_TPID_SEL_TPIDCFG 792 #define RX_PKT_V3_CMPL_METADATA1_VALID 0x8000UL 798 #define RX_PKT_V3_CMPL_HI_FLAGS2_IP_CS_CALC 0x1UL 799 #define RX_PKT_V3_CMPL_HI_FLAGS2_L4_CS_CALC 0x2UL 800 #define RX_PKT_V3_CMPL_HI_FLAGS2_T_IP_CS_CALC 0x4UL 801 #define RX_PKT_V3_CMPL_HI_FLAGS2_T_L4_CS_CALC 0x8UL 802 #define RX_PKT_V3_CMPL_HI_FLAGS2_META_FORMAT_MASK 0xf0UL 803 #define RX_PKT_V3_CMPL_HI_FLAGS2_META_FORMAT_SFT 4 804 #define RX_PKT_V3_CMPL_HI_FLAGS2_META_FORMAT_NONE (0x0UL << 4) 805 #define RX_PKT_V3_CMPL_HI_FLAGS2_META_FORMAT_ACT_REC_PTR (0x1UL << 4) 806 #define RX_PKT_V3_CMPL_HI_FLAGS2_META_FORMAT_TUNNEL_ID (0x2UL << 4) 807 #define RX_PKT_V3_CMPL_HI_FLAGS2_META_FORMAT_CHDR_DATA (0x3UL << 4) 808 #define RX_PKT_V3_CMPL_HI_FLAGS2_META_FORMAT_HDR_OFFSET (0x4UL << 4) 809 #define RX_PKT_V3_CMPL_HI_FLAGS2_META_FORMAT_LAST RX_PKT_V3_CMPL_HI_FLAGS2_META_FORMAT_HDR_OFFSET 810 #define RX_PKT_V3_CMPL_HI_FLAGS2_IP_TYPE 0x100UL 811 #define RX_PKT_V3_CMPL_HI_FLAGS2_COMPLETE_CHECKSUM_CALC 0x200UL 812 #define RX_PKT_V3_CMPL_HI_FLAGS2_T_IP_TYPE 0x400UL 813 #define RX_PKT_V3_CMPL_HI_FLAGS2_T_IP_TYPE_IPV4 (0x0UL << 10) 814 #define RX_PKT_V3_CMPL_HI_FLAGS2_T_IP_TYPE_IPV6 (0x1UL << 10) 815 #define RX_PKT_V3_CMPL_HI_FLAGS2_T_IP_TYPE_LAST RX_PKT_V3_CMPL_HI_FLAGS2_T_IP_TYPE_IPV6 816 #define RX_PKT_V3_CMPL_HI_FLAGS2_COMPLETE_CHECKSUM_MASK 0xffff0000UL 817 #define RX_PKT_V3_CMPL_HI_FLAGS2_COMPLETE_CHECKSUM_SFT 16 820 #define RX_PKT_V3_CMPL_HI_V2 0x1UL 821 #define RX_PKT_V3_CMPL_HI_ERRORS_MASK 0xfffeUL 822 #define RX_PKT_V3_CMPL_HI_ERRORS_SFT 1 823 #define RX_PKT_V3_CMPL_HI_ERRORS_BUFFER_ERROR_MASK 0xeUL 824 #define RX_PKT_V3_CMPL_HI_ERRORS_BUFFER_ERROR_SFT 1 825 #define RX_PKT_V3_CMPL_HI_ERRORS_BUFFER_ERROR_NO_BUFFER (0x0UL << 1) 826 #define RX_PKT_V3_CMPL_HI_ERRORS_BUFFER_ERROR_DID_NOT_FIT (0x1UL << 1) 827 #define RX_PKT_V3_CMPL_HI_ERRORS_BUFFER_ERROR_NOT_ON_CHIP (0x2UL << 1) 828 #define RX_PKT_V3_CMPL_HI_ERRORS_BUFFER_ERROR_BAD_FORMAT (0x3UL << 1) 829 #define RX_PKT_V3_CMPL_HI_ERRORS_BUFFER_ERROR_FLUSH (0x5UL << 1) 830 #define RX_PKT_V3_CMPL_HI_ERRORS_BUFFER_ERROR_LAST RX_PKT_V3_CMPL_HI_ERRORS_BUFFER_ERROR_FLUSH 831 #define RX_PKT_V3_CMPL_HI_ERRORS_IP_CS_ERROR 0x10UL 832 #define RX_PKT_V3_CMPL_HI_ERRORS_L4_CS_ERROR 0x20UL 833 #define RX_PKT_V3_CMPL_HI_ERRORS_T_IP_CS_ERROR 0x40UL 834 #define RX_PKT_V3_CMPL_HI_ERRORS_T_L4_CS_ERROR 0x80UL 835 #define RX_PKT_V3_CMPL_HI_ERRORS_CRC_ERROR 0x100UL 836 #define RX_PKT_V3_CMPL_HI_ERRORS_T_PKT_ERROR_MASK 0xe00UL 837 #define RX_PKT_V3_CMPL_HI_ERRORS_T_PKT_ERROR_SFT 9 838 #define RX_PKT_V3_CMPL_HI_ERRORS_T_PKT_ERROR_NO_ERROR (0x0UL << 9) 839 #define RX_PKT_V3_CMPL_HI_ERRORS_T_PKT_ERROR_T_L3_BAD_VERSION (0x1UL << 9) 840 #define RX_PKT_V3_CMPL_HI_ERRORS_T_PKT_ERROR_T_L3_BAD_HDR_LEN (0x2UL << 9) 841 #define RX_PKT_V3_CMPL_HI_ERRORS_T_PKT_ERROR_T_IP_TOTAL_ERROR (0x3UL << 9) 842 #define RX_PKT_V3_CMPL_HI_ERRORS_T_PKT_ERROR_T_UDP_TOTAL_ERROR (0x4UL << 9) 843 #define RX_PKT_V3_CMPL_HI_ERRORS_T_PKT_ERROR_T_L3_BAD_TTL (0x5UL << 9) 844 #define RX_PKT_V3_CMPL_HI_ERRORS_T_PKT_ERROR_T_TOTAL_ERROR (0x6UL << 9) 845 #define RX_PKT_V3_CMPL_HI_ERRORS_T_PKT_ERROR_LAST RX_PKT_V3_CMPL_HI_ERRORS_T_PKT_ERROR_T_TOTAL_ERROR 846 #define RX_PKT_V3_CMPL_HI_ERRORS_PKT_ERROR_MASK 0xf000UL 847 #define RX_PKT_V3_CMPL_HI_ERRORS_PKT_ERROR_SFT 12 848 #define RX_PKT_V3_CMPL_HI_ERRORS_PKT_ERROR_NO_ERROR (0x0UL << 12) 849 #define RX_PKT_V3_CMPL_HI_ERRORS_PKT_ERROR_L3_BAD_VERSION (0x1UL << 12) 850 #define RX_PKT_V3_CMPL_HI_ERRORS_PKT_ERROR_L3_BAD_HDR_LEN (0x2UL << 12) 851 #define RX_PKT_V3_CMPL_HI_ERRORS_PKT_ERROR_L3_BAD_TTL (0x3UL << 12) 852 #define RX_PKT_V3_CMPL_HI_ERRORS_PKT_ERROR_IP_TOTAL_ERROR (0x4UL << 12) 853 #define RX_PKT_V3_CMPL_HI_ERRORS_PKT_ERROR_UDP_TOTAL_ERROR (0x5UL << 12) 854 #define RX_PKT_V3_CMPL_HI_ERRORS_PKT_ERROR_L4_BAD_HDR_LEN (0x6UL << 12) 855 #define RX_PKT_V3_CMPL_HI_ERRORS_PKT_ERROR_L4_BAD_HDR_LEN_TOO_SMALL (0x7UL << 12) 856 #define RX_PKT_V3_CMPL_HI_ERRORS_PKT_ERROR_L4_BAD_OPT_LEN (0x8UL << 12) 857 #define RX_PKT_V3_CMPL_HI_ERRORS_PKT_ERROR_LAST RX_PKT_V3_CMPL_HI_ERRORS_PKT_ERROR_L4_BAD_OPT_LEN 859 #define RX_PKT_V3_CMPL_HI_METADATA0_VID_MASK 0xfffUL 860 #define RX_PKT_V3_CMPL_HI_METADATA0_VID_SFT 0 861 #define RX_PKT_V3_CMPL_HI_METADATA0_DE 0x1000UL 863 #define RX_PKT_V3_CMPL_HI_METADATA0_PRI_MASK 0xe000UL 864 #define RX_PKT_V3_CMPL_HI_METADATA0_PRI_SFT 13 870 #define RX_PROD_PKT_BD_TYPE_MASK 0x3fUL 871 #define RX_PROD_PKT_BD_TYPE_SFT 0 872 #define RX_PROD_PKT_BD_TYPE_RX_PROD_PKT 0x4UL 873 #define RX_PROD_PKT_BD_TYPE_LAST RX_PROD_PKT_BD_TYPE_RX_PROD_PKT 874 #define RX_PROD_PKT_BD_FLAGS_MASK 0xffc0UL 875 #define RX_PROD_PKT_BD_FLAGS_SFT 6 876 #define RX_PROD_PKT_BD_FLAGS_SOP_PAD 0x40UL 877 #define RX_PROD_PKT_BD_FLAGS_EOP_PAD 0x80UL 878 #define RX_PROD_PKT_BD_FLAGS_BUFFERS_MASK 0x300UL 879 #define RX_PROD_PKT_BD_FLAGS_BUFFERS_SFT 8 902 #define VALID_DRIVER_REG 0x0001 903 #define VALID_STAT_CTX 0x0002 904 #define VALID_RING_CQ 0x0004 905 #define VALID_RING_TX 0x0008 906 #define VALID_RING_RX 0x0010 907 #define VALID_RING_GRP 0x0020 908 #define VALID_VNIC_ID 0x0040 909 #define VALID_RX_IOB 0x0080 910 #define VALID_L2_FILTER 0x0100 911 #define VALID_RING_NQ 0x0200 1018 #define write32 writel 1019 #define write64 writeq 1020 #define pci_read_byte pci_read_config_byte 1021 #define pci_read_word16 pci_read_config_word 1022 #define pci_write_word pci_write_config_word 1023 #define SHORT_CMD_SUPPORTED VER_GET_RESP_DEV_CAPS_CFG_SHORT_CMD_SUPPORTED 1024 #define SHORT_CMD_REQUIRED VER_GET_RESP_DEV_CAPS_CFG_SHORT_CMD_REQUIRED 1025 #define CQ_DOORBELL_KEY_MASK(a) (\ 1026 CMPL_DOORBELL_KEY_CMPL | \ 1027 CMPL_DOORBELL_IDX_VALID | \ 1028 CMPL_DOORBELL_MASK | \ 1030 #define CQ_DOORBELL_KEY_IDX(a) (\ 1031 CMPL_DOORBELL_KEY_CMPL | \ 1032 CMPL_DOORBELL_IDX_VALID | \ 1034 #define TX_BD_FLAGS (\ 1035 TX_BD_SHORT_TYPE_TX_BD_SHORT |\ 1036 TX_BD_SHORT_FLAGS_COAL_NOW |\ 1037 TX_BD_SHORT_FLAGS_PACKET_END |\ 1038 (1 << TX_BD_SHORT_FLAGS_BD_CNT_SFT)) 1039 #define PORT_PHY_FLAGS (\ 1040 BNXT_FLAG_NPAR_MODE | \ 1041 BNXT_FLAG_MULTI_HOST) 1042 #define RING_FREE(bp, rid, flag) bnxt_hwrm_ring_free(bp, rid, flag) 1043 #define SET_LINK(p, m, s) ((p & (m >> s)) << s) 1044 #define SET_MBA(p, m, s) ((p & (m >> s)) << s) 1045 #define SPEED_DRV_MASK LINK_SPEED_DRV_MASK 1046 #define SPEED_DRV_SHIFT LINK_SPEED_DRV_SHIFT 1047 #define SPEED_FW_MASK LINK_SPEED_FW_MASK 1048 #define SPEED_FW_SHIFT LINK_SPEED_FW_SHIFT 1049 #define D3_SPEED_FW_MASK D3_LINK_SPEED_FW_MASK 1050 #define D3_SPEED_FW_SHIFT D3_LINK_SPEED_FW_SHIFT 1051 #define MEDIA_AUTO_DETECT_MASK PORT_CFG_LINK_SETTINGS_MEDIA_AUTO_DETECT_MASK 1052 #define MEDIA_AUTO_DETECT_SHIFT PORT_CFG_LINK_SETTINGS_MEDIA_AUTO_DETECT_SHIFT 1053 #define VLAN_MASK FUNC_CFG_PRE_BOOT_MBA_VLAN_MASK 1054 #define VLAN_SHIFT FUNC_CFG_PRE_BOOT_MBA_VLAN_SHIFT 1055 #define VLAN_VALUE_MASK FUNC_CFG_PRE_BOOT_MBA_VLAN_VALUE_MASK 1056 #define VLAN_VALUE_SHIFT FUNC_CFG_PRE_BOOT_MBA_VLAN_VALUE_SHIFT 1057 #define VF_CFG_ENABLE_FLAGS (\ 1058 FUNC_VF_CFG_REQ_ENABLES_MTU | \ 1059 FUNC_VF_CFG_REQ_ENABLES_GUEST_VLAN | \ 1060 FUNC_VF_CFG_REQ_ENABLES_ASYNC_EVENT_CR | \ 1061 FUNC_VF_CFG_REQ_ENABLES_DFLT_MAC_ADDR) 1063 #define CHIP_NUM_57508 0x1750 1064 #define CHIP_NUM_57504 0x1751 1065 #define CHIP_NUM_57502 0x1752 1067 #define CHIP_NUM_57608 0x1760
dma_addr_t req_addr_mapping
u16 rss_hash_type_agg_bufs_v1
dma_addr_t dma_addr_mapping
struct io_buffer * iob[MAX_TX_DESC_CNT]
u16 auto_link_speeds2_mask
u16 metadata1_payload_offset
struct io_buffer * iob[NUM_RX_BUFFERS]
dma_addr_t resp_addr_mapping