This patch contains several HSI changes. The changes are part of features like RDMA VF and OVS, the patch also contains a fix to how the init code determines if the dmae is ready to be used.
Showing the changes to include/linux (2 of 7 files). Show all
Unified · Split
| @@ -76,7 +76,6 @@ · 75 unmodified lines | |||
| 76 | 76 | ||
| 77 | #define FW_ASSERT_GENERAL_ATTN_IDX 32 | 77 | #define FW_ASSERT_GENERAL_ATTN_IDX 32 |
| 78 | 78 | ||
| 79 | #define MAX_PINNED_CCFC 32 | ||
| 80 | 79 | ||
| 81 | /* Queue Zone sizes in bytes */ | 80 | /* Queue Zone sizes in bytes */ |
| 82 | #define TSTORM_QZONE_SIZE 8 | 81 | #define TSTORM_QZONE_SIZE 8 |
| @@ -139,10 +138,10 @@ · 56 unmodified lines | |||
| 139 | #define MAX_NUM_VFS (MAX_NUM_VFS_K2) | 138 | #define MAX_NUM_VFS (MAX_NUM_VFS_K2) |
| 140 | 139 | ||
| 141 | #define MAX_NUM_FUNCTIONS_BB (MAX_NUM_PFS_BB + MAX_NUM_VFS_BB) | 140 | #define MAX_NUM_FUNCTIONS_BB (MAX_NUM_PFS_BB + MAX_NUM_VFS_BB) |
| 142 | #define MAX_NUM_FUNCTIONS (MAX_NUM_PFS + MAX_NUM_VFS) | ||
| 143 | 141 | ||
| 144 | #define MAX_FUNCTION_NUMBER_BB (MAX_NUM_PFS + MAX_NUM_VFS_BB) | 142 | #define MAX_FUNCTION_NUMBER_BB (MAX_NUM_PFS + MAX_NUM_VFS_BB) |
| 145 | #define MAX_FUNCTION_NUMBER (MAX_NUM_PFS + MAX_NUM_VFS) | 143 | #define MAX_FUNCTION_NUMBER_K2 (MAX_NUM_PFS + MAX_NUM_VFS_K2) |
| 144 | #define MAX_NUM_FUNCTIONS (MAX_FUNCTION_NUMBER_K2) | ||
| 146 | 145 | ||
| 147 | #define MAX_NUM_VPORTS_K2 (208) | 146 | #define MAX_NUM_VPORTS_K2 (208) |
| 148 | #define MAX_NUM_VPORTS_BB (160) | 147 | #define MAX_NUM_VPORTS_BB (160) |
| @@ -229,6 +228,7 @@ · 80 unmodified lines | |||
| 229 | #define DQ_XCM_TOE_TX_BD_PROD_CMD DQ_XCM_AGG_VAL_SEL_WORD4 | 228 | #define DQ_XCM_TOE_TX_BD_PROD_CMD DQ_XCM_AGG_VAL_SEL_WORD4 |
| 230 | #define DQ_XCM_TOE_MORE_TO_SEND_SEQ_CMD DQ_XCM_AGG_VAL_SEL_REG3 | 229 | #define DQ_XCM_TOE_MORE_TO_SEND_SEQ_CMD DQ_XCM_AGG_VAL_SEL_REG3 |
| 231 | #define DQ_XCM_TOE_LOCAL_ADV_WND_SEQ_CMD DQ_XCM_AGG_VAL_SEL_REG4 | 230 | #define DQ_XCM_TOE_LOCAL_ADV_WND_SEQ_CMD DQ_XCM_AGG_VAL_SEL_REG4 |
| 231 | #define DQ_XCM_ROCE_ACK_EDPM_DORQ_SEQ_CMD DQ_XCM_AGG_VAL_SEL_WORD5 | ||
| 232 | 232 | ||
| 233 | /* UCM agg val selection (HW) */ | 233 | /* UCM agg val selection (HW) */ |
| 234 | #define DQ_UCM_AGG_VAL_SEL_WORD0 0 | 234 | #define DQ_UCM_AGG_VAL_SEL_WORD0 0 |
| @@ -406,6 +406,7 @@ · 171 unmodified lines | |||
| 406 | 406 | ||
| 407 | /* Number of Protocol Indices per Status Block */ | 407 | /* Number of Protocol Indices per Status Block */ |
| 408 | #define PIS_PER_SB_E4 12 | 408 | #define PIS_PER_SB_E4 12 |
| 409 | #define MAX_PIS_PER_SB PIS_PER_SB | ||
| 409 | 410 | ||
| 410 | #define CAU_HC_STOPPED_STATE 3 | 411 | #define CAU_HC_STOPPED_STATE 3 |
| 411 | #define CAU_HC_DISABLE_STATE 4 | 412 | #define CAU_HC_DISABLE_STATE 4 |
| @@ -436,8 +437,6 @@ · 24 unmodified lines | |||
| 436 | #define IGU_MEM_PBA_MSIX_RESERVED_UPPER 0x03ff | 437 | #define IGU_MEM_PBA_MSIX_RESERVED_UPPER 0x03ff |
| 437 | 438 | ||
| 438 | #define IGU_CMD_INT_ACK_BASE 0x0400 | 439 | #define IGU_CMD_INT_ACK_BASE 0x0400 |
| 439 | #define IGU_CMD_INT_ACK_UPPER (IGU_CMD_INT_ACK_BASE + \ | ||
| 440 | MAX_TOT_SB_PER_PATH - 1) | ||
| 441 | #define IGU_CMD_INT_ACK_RESERVED_UPPER 0x05ff | 440 | #define IGU_CMD_INT_ACK_RESERVED_UPPER 0x05ff |
| 442 | 441 | ||
| 443 | #define IGU_CMD_ATTN_BIT_UPD_UPPER 0x05f0 | 442 | #define IGU_CMD_ATTN_BIT_UPD_UPPER 0x05f0 |
| @@ -450,8 +449,6 @@ · 6 unmodified lines | |||
| 450 | #define IGU_REG_SISR_MDPC_WOMASK_UPPER 0x05f6 | 449 | #define IGU_REG_SISR_MDPC_WOMASK_UPPER 0x05f6 |
| 451 | 450 | ||
| 452 | #define IGU_CMD_PROD_UPD_BASE 0x0600 | 451 | #define IGU_CMD_PROD_UPD_BASE 0x0600 |
| 453 | #define IGU_CMD_PROD_UPD_UPPER (IGU_CMD_PROD_UPD_BASE +\ | ||
| 454 | MAX_TOT_SB_PER_PATH - 1) | ||
| 455 | #define IGU_CMD_PROD_UPD_RESERVED_UPPER 0x07ff | 452 | #define IGU_CMD_PROD_UPD_RESERVED_UPPER 0x07ff |
| 456 | 453 | ||
| 457 | /*****************/ | 454 | /*****************/ |
| @@ -741,6 +738,8 @@ enum protocol_type { · 283 unmodified lines | |||
| 741 | PROTOCOLID_PREROCE, | 738 | PROTOCOLID_PREROCE, |
| 742 | PROTOCOLID_COMMON, | 739 | PROTOCOLID_COMMON, |
| 743 | PROTOCOLID_RESERVED1, | 740 | PROTOCOLID_RESERVED1, |
| 741 | PROTOCOLID_RDMA, | ||
| 742 | PROTOCOLID_SCSI, | ||
| 744 | MAX_PROTOCOL_TYPE | 743 | MAX_PROTOCOL_TYPE |
| 745 | }; | 744 | }; |
| 746 | 745 | ||
| @@ -761,6 +760,10 @@ union rdma_eqe_data { · 14 unmodified lines | |||
| 761 | struct rdma_eqe_destroy_qp rdma_destroy_qp_data; | 760 | struct rdma_eqe_destroy_qp rdma_destroy_qp_data; |
| 762 | }; | 761 | }; |
| 763 | 762 | ||
| 763 | struct tstorm_queue_zone { | ||
| 764 | __le32 reserved[2]; | ||
| 765 | }; | ||
| 766 | |||
| 764 | /* Ustorm Queue Zone */ | 767 | /* Ustorm Queue Zone */ |
| 765 | struct ustorm_eth_queue_zone { | 768 | struct ustorm_eth_queue_zone { |
| 766 | struct coalescing_timeset int_coalescing_timeset; | 769 | struct coalescing_timeset int_coalescing_timeset; |
| @@ -883,8 +886,8 @@ struct db_l2_dpm_data { · 116 unmodified lines | |||
| 883 | #define DB_L2_DPM_DATA_RESERVED0_SHIFT 27 | 886 | #define DB_L2_DPM_DATA_RESERVED0_SHIFT 27 |
| 884 | #define DB_L2_DPM_DATA_SGE_NUM_MASK 0x7 | 887 | #define DB_L2_DPM_DATA_SGE_NUM_MASK 0x7 |
| 885 | #define DB_L2_DPM_DATA_SGE_NUM_SHIFT 28 | 888 | #define DB_L2_DPM_DATA_SGE_NUM_SHIFT 28 |
| 886 | #define DB_L2_DPM_DATA_GFS_SRC_EN_MASK 0x1 | 889 | #define DB_L2_DPM_DATA_TGFS_SRC_EN_MASK 0x1 |
| 887 | #define DB_L2_DPM_DATA_GFS_SRC_EN_SHIFT 31 | 890 | #define DB_L2_DPM_DATA_TGFS_SRC_EN_SHIFT 31 |
| 888 | }; | 891 | }; |
| 889 | 892 | ||
| 890 | /* Structure for SGE in a DPM doorbell of type DPM_L2_BD */ | 893 | /* Structure for SGE in a DPM doorbell of type DPM_L2_BD */ |
| @@ -38,9 +38,11 @@ · 37 unmodified lines | |||
| 38 | /********************/ | 38 | /********************/ |
| 39 | 39 | ||
| 40 | #define ETH_HSI_VER_MAJOR 3 | 40 | #define ETH_HSI_VER_MAJOR 3 |
| 41 | #define ETH_HSI_VER_MINOR 10 | 41 | #define ETH_HSI_VER_MINOR 11 |
| 42 | 42 | ||
| 43 | #define ETH_HSI_VER_NO_PKT_LEN_TUNN 5 | 43 | #define ETH_HSI_VER_NO_PKT_LEN_TUNN 5 |
| 44 | /* Maximum number of pinned L2 connections (CIDs) */ | ||
| 45 | #define ETH_PINNED_CONN_MAX_NUM 32 | ||
| 44 | 46 | ||
| 45 | #define ETH_CACHE_LINE_SIZE 64 | 47 | #define ETH_CACHE_LINE_SIZE 64 |
| 46 | #define ETH_RX_CQE_GAP 32 | 48 | #define ETH_RX_CQE_GAP 32 |
| @@ -61,6 +63,7 @@ · 14 unmodified lines | |||
| 61 | #define ETH_TX_MIN_BDS_PER_TUNN_IPV6_WITH_EXT_PKT 3 | 63 | #define ETH_TX_MIN_BDS_PER_TUNN_IPV6_WITH_EXT_PKT 3 |
| 62 | #define ETH_TX_MIN_BDS_PER_IPV6_WITH_EXT_PKT 2 | 64 | #define ETH_TX_MIN_BDS_PER_IPV6_WITH_EXT_PKT 2 |
| 63 | #define ETH_TX_MIN_BDS_PER_PKT_W_LOOPBACK_MODE 2 | 65 | #define ETH_TX_MIN_BDS_PER_PKT_W_LOOPBACK_MODE 2 |
| 66 | #define ETH_TX_MIN_BDS_PER_PKT_W_VPORT_FORWARDING 4 | ||
| 64 | #define ETH_TX_MAX_NON_LSO_PKT_LEN (9700 - (4 + 4 + 12 + 8)) | 67 | #define ETH_TX_MAX_NON_LSO_PKT_LEN (9700 - (4 + 4 + 12 + 8)) |
| 65 | #define ETH_TX_MAX_LSO_HDR_BYTES 510 | 68 | #define ETH_TX_MAX_LSO_HDR_BYTES 510 |
| 66 | #define ETH_TX_LSO_WINDOW_BDS_NUM (18 - 1) | 69 | #define ETH_TX_LSO_WINDOW_BDS_NUM (18 - 1) |
| @@ -75,9 +78,8 @@ · 8 unmodified lines | |||
| 75 | #define ETH_NUM_STATISTIC_COUNTERS_QUAD_VF_ZONE \ | 78 | #define ETH_NUM_STATISTIC_COUNTERS_QUAD_VF_ZONE \ |
| 76 | (ETH_NUM_STATISTIC_COUNTERS - 3 * MAX_NUM_VFS / 4) | 79 | (ETH_NUM_STATISTIC_COUNTERS - 3 * MAX_NUM_VFS / 4) |
| 77 | 80 | ||
| 78 | /* Maximum number of buffers, used for RX packet placement */ | ||
| 79 | #define ETH_RX_MAX_BUFF_PER_PKT 5 | 81 | #define ETH_RX_MAX_BUFF_PER_PKT 5 |
| 80 | #define ETH_RX_BD_THRESHOLD 12 | 82 | #define ETH_RX_BD_THRESHOLD 16 |
| 81 | 83 | ||
| 82 | /* Num of MAC/VLAN filters */ | 84 | /* Num of MAC/VLAN filters */ |
| 83 | #define ETH_NUM_MAC_FILTERS 512 | 85 | #define ETH_NUM_MAC_FILTERS 512 |
| @@ -96,24 +98,24 @@ · 12 unmodified lines | |||
| 96 | #define ETH_RSS_ENGINE_NUM_BB 127 | 98 | #define ETH_RSS_ENGINE_NUM_BB 127 |
| 97 | 99 | ||
| 98 | /* TPA constants */ | 100 | /* TPA constants */ |
| 99 | #define ETH_TPA_MAX_AGGS_NUM 64 | 101 | #define ETH_TPA_MAX_AGGS_NUM 64 |
| 100 | #define ETH_TPA_CQE_START_LEN_LIST_SIZE ETH_RX_MAX_BUFF_PER_PKT | 102 | #define ETH_TPA_CQE_START_BW_LEN_LIST_SIZE 2 |
| 101 | #define ETH_TPA_CQE_CONT_LEN_LIST_SIZE 6 | 103 | #define ETH_TPA_CQE_CONT_LEN_LIST_SIZE 6 |
| 102 | #define ETH_TPA_CQE_END_LEN_LIST_SIZE 4 | 104 | #define ETH_TPA_CQE_END_LEN_LIST_SIZE 4 |
| 103 | 105 | ||
| 104 | /* Control frame check constants */ | 106 | /* Control frame check constants */ |
| 105 | #define ETH_CTL_FRAME_ETH_TYPE_NUM 4 | 107 | #define ETH_CTL_FRAME_ETH_TYPE_NUM 4 |
| 106 | 108 | ||
| 107 | /* GFS constants */ | 109 | /* GFS constants */ |
| 108 | #define ETH_GFT_TRASHCAN_VPORT 0x1FF /* GFT drop flow vport number */ | 110 | #define ETH_GFT_TRASHCAN_VPORT 0x1FF /* GFT drop flow vport number */ |
| 109 | 111 | ||
| 110 | /* Destination port mode */ | 112 | /* Destination port mode */ |
| 111 | enum dest_port_mode { | 113 | enum dst_port_mode { |
| 112 | DEST_PORT_PHY, | 114 | DST_PORT_PHY, |
| 113 | DEST_PORT_LOOPBACK, | 115 | DST_PORT_LOOPBACK, |
| 114 | DEST_PORT_PHY_LOOPBACK, | 116 | DST_PORT_PHY_LOOPBACK, |
| 115 | DEST_PORT_DROP, | 117 | DST_PORT_DROP, |
| 116 | MAX_DEST_PORT_MODE | 118 | MAX_DST_PORT_MODE |
| 117 | }; | 119 | }; |
| 118 | 120 | ||
| 119 | /* Ethernet address type */ | 121 | /* Ethernet address type */ |
| @@ -167,8 +169,8 @@ struct eth_tx_data_2nd_bd { · 47 unmodified lines | |||
| 167 | #define ETH_TX_DATA_2ND_BD_TUNN_INNER_L2_HDR_SIZE_W_SHIFT 0 | 169 | #define ETH_TX_DATA_2ND_BD_TUNN_INNER_L2_HDR_SIZE_W_SHIFT 0 |
| 168 | #define ETH_TX_DATA_2ND_BD_TUNN_INNER_ETH_TYPE_MASK 0x3 | 170 | #define ETH_TX_DATA_2ND_BD_TUNN_INNER_ETH_TYPE_MASK 0x3 |
| 169 | #define ETH_TX_DATA_2ND_BD_TUNN_INNER_ETH_TYPE_SHIFT 4 | 171 | #define ETH_TX_DATA_2ND_BD_TUNN_INNER_ETH_TYPE_SHIFT 4 |
| 170 | #define ETH_TX_DATA_2ND_BD_DEST_PORT_MODE_MASK 0x3 | 172 | #define ETH_TX_DATA_2ND_BD_DST_PORT_MODE_MASK 0x3 |
| 171 | #define ETH_TX_DATA_2ND_BD_DEST_PORT_MODE_SHIFT 6 | 173 | #define ETH_TX_DATA_2ND_BD_DST_PORT_MODE_SHIFT 6 |
| 172 | #define ETH_TX_DATA_2ND_BD_START_BD_MASK 0x1 | 174 | #define ETH_TX_DATA_2ND_BD_START_BD_MASK 0x1 |
| 173 | #define ETH_TX_DATA_2ND_BD_START_BD_SHIFT 8 | 175 | #define ETH_TX_DATA_2ND_BD_START_BD_SHIFT 8 |
| 174 | #define ETH_TX_DATA_2ND_BD_TUNN_TYPE_MASK 0x3 | 176 | #define ETH_TX_DATA_2ND_BD_TUNN_TYPE_MASK 0x3 |
| @@ -244,8 +246,9 @@ struct eth_fast_path_rx_reg_cqe { · 69 unmodified lines | |||
| 244 | struct eth_tunnel_parsing_flags tunnel_pars_flags; | 246 | struct eth_tunnel_parsing_flags tunnel_pars_flags; |
| 245 | u8 bd_num; | 247 | u8 bd_num; |
| 246 | u8 reserved; | 248 | u8 reserved; |
| 247 | __le16 flow_id; | 249 | __le16 reserved2; |
| 248 | u8 reserved1[11]; | 250 | __le32 flow_id_or_resource_id; |
| 251 | u8 reserved1[7]; | ||
| 249 | struct eth_pmd_flow_flags pmd_flags; | 252 | struct eth_pmd_flow_flags pmd_flags; |
| 250 | }; | 253 | }; |
| 251 | 254 | ||
| @@ -296,9 +299,10 @@ struct eth_fast_path_rx_tpa_start_cqe { · 44 unmodified lines | |||
| 296 | struct eth_tunnel_parsing_flags tunnel_pars_flags; | 299 | struct eth_tunnel_parsing_flags tunnel_pars_flags; |
| 297 | u8 tpa_agg_index; | 300 | u8 tpa_agg_index; |
| 298 | u8 header_len; | 301 | u8 header_len; |
| 299 | __le16 ext_bd_len_list[ETH_TPA_CQE_START_LEN_LIST_SIZE]; | 302 | __le16 bw_ext_bd_len_list[ETH_TPA_CQE_START_BW_LEN_LIST_SIZE]; |
| 300 | __le16 flow_id; | 303 | __le16 reserved2; |
| 301 | u8 reserved; | 304 | __le32 flow_id_or_resource_id; |
| 305 | u8 reserved[3]; | ||
| 302 | struct eth_pmd_flow_flags pmd_flags; | 306 | struct eth_pmd_flow_flags pmd_flags; |
| 303 | }; | 307 | }; |
| 304 | 308 | ||
| @@ -407,6 +411,29 @@ struct eth_tx_3rd_bd { · 102 unmodified lines | |||
| 407 | struct eth_tx_data_3rd_bd data; | 411 | struct eth_tx_data_3rd_bd data; |
| 408 | }; | 412 | }; |
| 409 | 413 | ||
| 414 | /* The parsing information data for the forth tx bd of a given packet. */ | ||
| 415 | struct eth_tx_data_4th_bd { | ||
| 416 | u8 dst_vport_id; | ||
| 417 | u8 reserved4; | ||
| 418 | __le16 bitfields; | ||
| 419 | #define ETH_TX_DATA_4TH_BD_DST_VPORT_ID_VALID_MASK 0x1 | ||
| 420 | #define ETH_TX_DATA_4TH_BD_DST_VPORT_ID_VALID_SHIFT 0 | ||
| 421 | #define ETH_TX_DATA_4TH_BD_RESERVED1_MASK 0x7F | ||
| 422 | #define ETH_TX_DATA_4TH_BD_RESERVED1_SHIFT 1 | ||
| 423 | #define ETH_TX_DATA_4TH_BD_START_BD_MASK 0x1 | ||
| 424 | #define ETH_TX_DATA_4TH_BD_START_BD_SHIFT 8 | ||
| 425 | #define ETH_TX_DATA_4TH_BD_RESERVED2_MASK 0x7F | ||
| 426 | #define ETH_TX_DATA_4TH_BD_RESERVED2_SHIFT 9 | ||
| 427 | __le16 reserved3; | ||
| 428 | }; | ||
| 429 | |||
| 430 | /* The forth tx bd of a given packet */ | ||
| 431 | struct eth_tx_4th_bd { | ||
| 432 | struct regpair addr; /* Single continuous buffer */ | ||
| 433 | __le16 nbytes; /* Number of bytes in this BD */ | ||
| 434 | struct eth_tx_data_4th_bd data; /* Parsing information data */ | ||
| 435 | }; | ||
| 436 | |||
| 410 | /* Complementary information for the regular tx bd of a given packet */ | 437 | /* Complementary information for the regular tx bd of a given packet */ |
| 411 | struct eth_tx_data_bd { | 438 | struct eth_tx_data_bd { |
| 412 | __le16 reserved0; | 439 | __le16 reserved0; |
| @@ -431,6 +458,7 @@ union eth_tx_bd_types { · 18 unmodified lines | |||
| 431 | struct eth_tx_1st_bd first_bd; | 458 | struct eth_tx_1st_bd first_bd; |
| 432 | struct eth_tx_2nd_bd second_bd; | 459 | struct eth_tx_2nd_bd second_bd; |
| 433 | struct eth_tx_3rd_bd third_bd; | 460 | struct eth_tx_3rd_bd third_bd; |
| 461 | struct eth_tx_4th_bd fourth_bd; | ||
| 434 | struct eth_tx_bd reg_bd; | 462 | struct eth_tx_bd reg_bd; |
| 435 | }; | 463 | }; |
| 436 | 464 | ||
| @@ -443,6 +471,12 @@ enum eth_tx_tunn_type { · 6 unmodified lines | |||
| 443 | MAX_ETH_TX_TUNN_TYPE | 471 | MAX_ETH_TX_TUNN_TYPE |
| 444 | }; | 472 | }; |
| 445 | 473 | ||
| 474 | /* Mstorm Queue Zone */ | ||
| 475 | struct mstorm_eth_queue_zone { | ||
| 476 | struct eth_rx_prod_data rx_producers; | ||
| 477 | __le32 reserved[3]; | ||
| 478 | }; | ||
| 479 | |||
| 446 | /* Ystorm Queue Zone */ | 480 | /* Ystorm Queue Zone */ |
| 447 | struct xstorm_eth_queue_zone { | 481 | struct xstorm_eth_queue_zone { |
| 448 | struct coalescing_timeset int_coalescing_timeset; | 482 | struct coalescing_timeset int_coalescing_timeset; |