History

qed: FW 8.42.2.0 HSI changes

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.

Michal Kalderon committed 6 years ago

Commit 0500a701 parent 6459d937 files · +280 −154Browse files

Unified · Split

7 files
  1. drivers/net/ethernet/qlogic/qed/qed_hsi.h +201 −116
  2. drivers/net/ethernet/qlogic/qed/qed_init_ops.c +4 −2
  3. drivers/net/ethernet/qlogic/qed/qed_mcp.c +2 −0
  4. drivers/net/ethernet/qlogic/qed/qed_roce.c +1 −1
  5. drivers/net/ethernet/qlogic/qede/qede_fp.c +4 −4
  6. include/linux/qed/common_hsi.h +12 −9
  7. include/linux/qed/eth_common.h +56 −22
drivers/net/ethernet/qlogic/qed/qed_hsi.h+201−116
@@ -250,7 +250,8 @@ struct core_rx_gsi_offload_cqe { · 249 unmodified lines
250 __le16 src_mac_addrlo;250 __le16 src_mac_addrlo;
251 __le16 qp_id;251 __le16 qp_id;
252 __le32 src_qp;252 __le32 src_qp;
253 __le32 reserved[3];253 struct core_rx_cqe_opaque_data opaque_data;
254 __le32 reserved;
254};255};
255 256
256/* Core RX CQE for Light L2 */257/* Core RX CQE for Light L2 */
@@ -405,7 +406,7 @@ struct ystorm_core_conn_st_ctx { · 148 unmodified lines
405 406
406/* The core storm context for the Pstorm */407/* The core storm context for the Pstorm */
407struct pstorm_core_conn_st_ctx {408struct pstorm_core_conn_st_ctx {
408 __le32 reserved[4];409 __le32 reserved[20];
409};410};
410 411
411/* Core Slowpath Connection storm context of Xstorm */412/* Core Slowpath Connection storm context of Xstorm */
@@ -856,12 +857,12 @@ struct e4_ustorm_core_conn_ag_ctx { · 444 unmodified lines
856 857
857/* The core storm context for the Mstorm */858/* The core storm context for the Mstorm */
858struct mstorm_core_conn_st_ctx {859struct mstorm_core_conn_st_ctx {
859 __le32 reserved[24];860 __le32 reserved[40];
860};861};
861 862
862/* The core storm context for the Ustorm */863/* The core storm context for the Ustorm */
863struct ustorm_core_conn_st_ctx {864struct ustorm_core_conn_st_ctx {
864 __le32 reserved[4];865 __le32 reserved[20];
865};866};
866 867
867/* The core storm context for the Tstorm */868/* The core storm context for the Tstorm */
@@ -915,12 +916,21 @@ struct eth_pstorm_per_pf_stat { · 47 unmodified lines
915 struct regpair sent_gre_bytes;916 struct regpair sent_gre_bytes;
916 struct regpair sent_vxlan_bytes;917 struct regpair sent_vxlan_bytes;
917 struct regpair sent_geneve_bytes;918 struct regpair sent_geneve_bytes;
919 struct regpair sent_mpls_bytes;
920 struct regpair sent_gre_mpls_bytes;
921 struct regpair sent_udp_mpls_bytes;
918 struct regpair sent_gre_pkts;922 struct regpair sent_gre_pkts;
919 struct regpair sent_vxlan_pkts;923 struct regpair sent_vxlan_pkts;
920 struct regpair sent_geneve_pkts;924 struct regpair sent_geneve_pkts;
925 struct regpair sent_mpls_pkts;
926 struct regpair sent_gre_mpls_pkts;
927 struct regpair sent_udp_mpls_pkts;
921 struct regpair gre_drop_pkts;928 struct regpair gre_drop_pkts;
922 struct regpair vxlan_drop_pkts;929 struct regpair vxlan_drop_pkts;
923 struct regpair geneve_drop_pkts;930 struct regpair geneve_drop_pkts;
931 struct regpair mpls_drop_pkts;
932 struct regpair gre_mpls_drop_pkts;
933 struct regpair udp_mpls_drop_pkts;
924};934};
925 935
926/* Ethernet TX Per Queue Stats */936/* Ethernet TX Per Queue Stats */
@@ -1010,7 +1020,8 @@ union event_ring_data { · 83 unmodified lines
1010struct event_ring_entry {1020struct event_ring_entry {
1011 u8 protocol_id;1021 u8 protocol_id;
1012 u8 opcode;1022 u8 opcode;
1013 __le16 reserved0;1023 u8 reserved0;
1024 u8 vf_id;
1014 __le16 echo;1025 __le16 echo;
1015 u8 fw_return_code;1026 u8 fw_return_code;
1016 u8 flags;1027 u8 flags;
@@ -1088,7 +1099,20 @@ enum malicious_vf_error_id { · 71 unmodified lines
1088 ETH_CONTROL_PACKET_VIOLATION,1099 ETH_CONTROL_PACKET_VIOLATION,
1089 ETH_ANTI_SPOOFING_ERR,1100 ETH_ANTI_SPOOFING_ERR,
1090 ETH_PACKET_SIZE_TOO_LARGE,1101 ETH_PACKET_SIZE_TOO_LARGE,
1091 MAX_MALICIOUS_VF_ERROR_ID1102 CORE_ILLEGAL_VLAN_MODE,
1103 CORE_ILLEGAL_NBDS,
1104 CORE_FIRST_BD_WO_SOP,
1105 CORE_INSUFFICIENT_BDS,
1106 CORE_PACKET_TOO_SMALL,
1107 CORE_ILLEGAL_INBAND_TAGS,
1108 CORE_VLAN_INSERT_AND_INBAND_VLAN,
1109 CORE_MTU_VIOLATION,
1110 CORE_CONTROL_PACKET_VIOLATION,
1111 CORE_ANTI_SPOOFING_ERR,
1112 CORE_PACKET_SIZE_TOO_LARGE,
1113 CORE_ILLEGAL_BD_FLAGS,
1114 CORE_GSI_PACKET_VIOLATION,
1115 MAX_MALICIOUS_VF_ERROR_ID,
1092};1116};
1093 1117
1094/* Mstorm non-triggering VF zone */1118/* Mstorm non-triggering VF zone */
@@ -1394,6 +1418,16 @@ enum vf_zone_size_mode { · 299 unmodified lines
1394 MAX_VF_ZONE_SIZE_MODE1418 MAX_VF_ZONE_SIZE_MODE
1395};1419};
1396 1420
1421/* Xstorm non-triggering VF zone */
1422struct xstorm_non_trigger_vf_zone {
1423 struct regpair non_edpm_ack_pkts;
1424};
1425
1426/* Tstorm VF zone */
1427struct xstorm_vf_zone {
1428 struct xstorm_non_trigger_vf_zone non_trigger;
1429};
1430
1397/* Attentions status block */1431/* Attentions status block */
1398struct atten_status_block {1432struct atten_status_block {
1399 __le32 atten_bits;1433 __le32 atten_bits;
@@ -2748,8 +2782,8 @@ enum chip_ids { · 1348 unmodified lines
2748};2782};
2749 2783
2750struct fw_asserts_ram_section {2784struct fw_asserts_ram_section {
2751 u16 section_ram_line_offset;2785 __le16 section_ram_line_offset;
2752 u16 section_ram_line_size;2786 __le16 section_ram_line_size;
2753 u8 list_dword_offset;2787 u8 list_dword_offset;
2754 u8 list_element_dword_size;2788 u8 list_element_dword_size;
2755 u8 list_num_elements;2789 u8 list_num_elements;
@@ -2799,6 +2833,7 @@ enum init_modes { · 43 unmodified lines
2799 MODE_PORTS_PER_ENG_4,2833 MODE_PORTS_PER_ENG_4,
2800 MODE_100G,2834 MODE_100G,
2801 MODE_RESERVED6,2835 MODE_RESERVED6,
2836 MODE_RESERVED7,
2802 MAX_INIT_MODES2837 MAX_INIT_MODES
2803};2838};
2804 2839
@@ -2833,6 +2868,7 @@ enum bin_init_buffer_type { · 28 unmodified lines
2833 BIN_BUF_INIT_VAL,2868 BIN_BUF_INIT_VAL,
2834 BIN_BUF_INIT_MODE_TREE,2869 BIN_BUF_INIT_MODE_TREE,
2835 BIN_BUF_INIT_IRO,2870 BIN_BUF_INIT_IRO,
2871 BIN_BUF_INIT_OVERLAYS,
2836 MAX_BIN_INIT_BUFFER_TYPE2872 MAX_BIN_INIT_BUFFER_TYPE
2837};2873};
2838 2874
@@ -2929,10 +2965,8 @@ struct init_if_phase_op { · 90 unmodified lines
2929 u32 op_data;2965 u32 op_data;
2930#define INIT_IF_PHASE_OP_OP_MASK 0xF2966#define INIT_IF_PHASE_OP_OP_MASK 0xF
2931#define INIT_IF_PHASE_OP_OP_SHIFT 02967#define INIT_IF_PHASE_OP_OP_SHIFT 0
2932#define INIT_IF_PHASE_OP_DMAE_ENABLE_MASK 0x12968#define INIT_IF_PHASE_OP_RESERVED1_MASK 0xFFF
2933#define INIT_IF_PHASE_OP_DMAE_ENABLE_SHIFT 42969#define INIT_IF_PHASE_OP_RESERVED1_SHIFT 4
2934#define INIT_IF_PHASE_OP_RESERVED1_MASK 0x7FF
2935#define INIT_IF_PHASE_OP_RESERVED1_SHIFT 5
2936#define INIT_IF_PHASE_OP_CMD_OFFSET_MASK 0xFFFF2970#define INIT_IF_PHASE_OP_CMD_OFFSET_MASK 0xFFFF
2937#define INIT_IF_PHASE_OP_CMD_OFFSET_SHIFT 162971#define INIT_IF_PHASE_OP_CMD_OFFSET_SHIFT 16
2938 u32 phase_data;2972 u32 phase_data;
@@ -4226,7 +4260,7 @@ void qed_gft_disable(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt, u16 pf_id); · 1287 unmodified lines
4226/**4260/**
4227 * @brief qed_gft_config - Enable and configure HW for GFT4261 * @brief qed_gft_config - Enable and configure HW for GFT
4228 *4262 *
4229 * @param p_hwfn4263 * @param p_hwfn - HW device data
4230 * @param p_ptt - ptt window used for writing the registers.4264 * @param p_ptt - ptt window used for writing the registers.
4231 * @param pf_id - pf on which to enable GFT.4265 * @param pf_id - pf on which to enable GFT.
4232 * @param tcp - set profile tcp packets.4266 * @param tcp - set profile tcp packets.
@@ -5673,9 +5707,9 @@ struct e4_eth_conn_context { · 1440 unmodified lines
5673 struct pstorm_eth_conn_st_ctx pstorm_st_context;5707 struct pstorm_eth_conn_st_ctx pstorm_st_context;
5674 struct xstorm_eth_conn_st_ctx xstorm_st_context;5708 struct xstorm_eth_conn_st_ctx xstorm_st_context;
5675 struct e4_xstorm_eth_conn_ag_ctx xstorm_ag_context;5709 struct e4_xstorm_eth_conn_ag_ctx xstorm_ag_context;
5710 struct e4_tstorm_eth_conn_ag_ctx tstorm_ag_context;
5676 struct ystorm_eth_conn_st_ctx ystorm_st_context;5711 struct ystorm_eth_conn_st_ctx ystorm_st_context;
5677 struct e4_ystorm_eth_conn_ag_ctx ystorm_ag_context;5712 struct e4_ystorm_eth_conn_ag_ctx ystorm_ag_context;
5678 struct e4_tstorm_eth_conn_ag_ctx tstorm_ag_context;
5679 struct e4_ustorm_eth_conn_ag_ctx ustorm_ag_context;5713 struct e4_ustorm_eth_conn_ag_ctx ustorm_ag_context;
5680 struct ustorm_eth_conn_st_ctx ustorm_st_context;5714 struct ustorm_eth_conn_st_ctx ustorm_st_context;
5681 struct mstorm_eth_conn_st_ctx mstorm_st_context;5715 struct mstorm_eth_conn_st_ctx mstorm_st_context;
@@ -5705,6 +5739,16 @@ enum eth_error_code { · 23 unmodified lines
5705 ETH_FILTERS_VNI_ADD_FAIL_FULL,5739 ETH_FILTERS_VNI_ADD_FAIL_FULL,
5706 ETH_FILTERS_VNI_ADD_FAIL_DUP,5740 ETH_FILTERS_VNI_ADD_FAIL_DUP,
5707 ETH_FILTERS_GFT_UPDATE_FAIL,5741 ETH_FILTERS_GFT_UPDATE_FAIL,
5742 ETH_RX_QUEUE_FAIL_LOAD_VF_DATA,
5743 ETH_FILTERS_GFS_ADD_FILTER_FAIL_MAX_HOPS,
5744 ETH_FILTERS_GFS_ADD_FILTER_FAIL_NO_FREE_ENRTY,
5745 ETH_FILTERS_GFS_ADD_FILTER_FAIL_ALREADY_EXISTS,
5746 ETH_FILTERS_GFS_ADD_FILTER_FAIL_PCI_ERROR,
5747 ETH_FILTERS_GFS_ADD_FINLER_FAIL_MAGIC_NUM_ERROR,
5748 ETH_FILTERS_GFS_DEL_FILTER_FAIL_MAX_HOPS,
5749 ETH_FILTERS_GFS_DEL_FILTER_FAIL_NO_MATCH_ENRTY,
5750 ETH_FILTERS_GFS_DEL_FILTER_FAIL_PCI_ERROR,
5751 ETH_FILTERS_GFS_DEL_FILTER_FAIL_MAGIC_NUM_ERROR,
5708 MAX_ETH_ERROR_CODE5752 MAX_ETH_ERROR_CODE
5709};5753};
5710 5754
@@ -5728,6 +5772,11 @@ enum eth_event_opcode { · 17 unmodified lines
5728 ETH_EVENT_RX_CREATE_GFT_ACTION,5772 ETH_EVENT_RX_CREATE_GFT_ACTION,
5729 ETH_EVENT_RX_GFT_UPDATE_FILTER,5773 ETH_EVENT_RX_GFT_UPDATE_FILTER,
5730 ETH_EVENT_TX_QUEUE_UPDATE,5774 ETH_EVENT_TX_QUEUE_UPDATE,
5775 ETH_EVENT_RGFS_ADD_FILTER,
5776 ETH_EVENT_RGFS_DEL_FILTER,
5777 ETH_EVENT_TGFS_ADD_FILTER,
5778 ETH_EVENT_TGFS_DEL_FILTER,
5779 ETH_EVENT_GFS_COUNTERS_REPORT_REQUEST,
5731 MAX_ETH_EVENT_OPCODE5780 MAX_ETH_EVENT_OPCODE
5732};5781};
5733 5782
@@ -5820,18 +5869,31 @@ enum eth_ramrod_cmd_id { · 86 unmodified lines
5820 ETH_RAMROD_RX_CREATE_GFT_ACTION,5869 ETH_RAMROD_RX_CREATE_GFT_ACTION,
5821 ETH_RAMROD_GFT_UPDATE_FILTER,5870 ETH_RAMROD_GFT_UPDATE_FILTER,
5822 ETH_RAMROD_TX_QUEUE_UPDATE,5871 ETH_RAMROD_TX_QUEUE_UPDATE,
5872 ETH_RAMROD_RGFS_FILTER_ADD,
5873 ETH_RAMROD_RGFS_FILTER_DEL,
5874 ETH_RAMROD_TGFS_FILTER_ADD,
5875 ETH_RAMROD_TGFS_FILTER_DEL,
5876 ETH_RAMROD_GFS_COUNTERS_REPORT_REQUEST,
5823 MAX_ETH_RAMROD_CMD_ID5877 MAX_ETH_RAMROD_CMD_ID
5824};5878};
5825 5879
5826/* Return code from eth sp ramrods */5880/* Return code from eth sp ramrods */
5827struct eth_return_code {5881struct eth_return_code {
5828 u8 value;5882 u8 value;
5829#define ETH_RETURN_CODE_ERR_CODE_MASK 0x1F5883#define ETH_RETURN_CODE_ERR_CODE_MASK 0x3F
5830#define ETH_RETURN_CODE_ERR_CODE_SHIFT 05884#define ETH_RETURN_CODE_ERR_CODE_SHIFT 0
5831#define ETH_RETURN_CODE_RESERVED_MASK 0x35885#define ETH_RETURN_CODE_RESERVED_MASK 0x1
5832#define ETH_RETURN_CODE_RESERVED_SHIFT 55886#define ETH_RETURN_CODE_RESERVED_SHIFT 6
5833#define ETH_RETURN_CODE_RX_TX_MASK 0x15887#define ETH_RETURN_CODE_RX_TX_MASK 0x1
5834#define ETH_RETURN_CODE_RX_TX_SHIFT 75888#define ETH_RETURN_CODE_RX_TX_SHIFT 7
5889};
5890
5891/* tx destination enum */
5892enum eth_tx_dst_mode_config_enum {
5893 ETH_TX_DST_MODE_CONFIG_DISABLE,
5894 ETH_TX_DST_MODE_CONFIG_FORWARD_DATA_IN_BD,
5895 ETH_TX_DST_MODE_CONFIG_FORWARD_DATA_IN_VPORT,
5896 MAX_ETH_TX_DST_MODE_CONFIG_ENUM
5835};5897};
5836 5898
5837/* What to do in case an error occurs */5899/* What to do in case an error occurs */
@@ -5858,8 +5920,10 @@ struct eth_tx_err_vals { · 20 unmodified lines
5858#define ETH_TX_ERR_VALS_MTU_VIOLATION_SHIFT 55920#define ETH_TX_ERR_VALS_MTU_VIOLATION_SHIFT 5
5859#define ETH_TX_ERR_VALS_ILLEGAL_CONTROL_FRAME_MASK 0x15921#define ETH_TX_ERR_VALS_ILLEGAL_CONTROL_FRAME_MASK 0x1
5860#define ETH_TX_ERR_VALS_ILLEGAL_CONTROL_FRAME_SHIFT 65922#define ETH_TX_ERR_VALS_ILLEGAL_CONTROL_FRAME_SHIFT 6
5861#define ETH_TX_ERR_VALS_RESERVED_MASK 0x1FF5923#define ETH_TX_ERR_VALS_ILLEGAL_BD_FLAGS_MASK 0x1
5862#define ETH_TX_ERR_VALS_RESERVED_SHIFT 75924#define ETH_TX_ERR_VALS_ILLEGAL_BD_FLAGS_SHIFT 7
5925#define ETH_TX_ERR_VALS_RESERVED_MASK 0xFF
5926#define ETH_TX_ERR_VALS_RESERVED_SHIFT 8
5863};5927};
5864 5928
5865/* vport rss configuration data */5929/* vport rss configuration data */
@@ -5889,7 +5953,6 @@ struct eth_vport_rss_config { · 23 unmodified lines
5889 u8 tbl_size;5953 u8 tbl_size;
5890 __le32 reserved2[2];5954 __le32 reserved2[2];
5891 __le16 indirection_table[ETH_RSS_IND_TABLE_ENTRIES_NUM];5955 __le16 indirection_table[ETH_RSS_IND_TABLE_ENTRIES_NUM];
5892
5893 __le32 rss_key[ETH_RSS_KEY_SIZE_REGS];5956 __le32 rss_key[ETH_RSS_KEY_SIZE_REGS];
5894 __le32 reserved3[2];5957 __le32 reserved3[2];
5895};5958};
@@ -6091,7 +6154,7 @@ struct rx_update_gft_filter_data { · 195 unmodified lines
6091 u8 inner_vlan_removal_en;6154 u8 inner_vlan_removal_en;
6092};6155};
6093 6156
6094/* Ramrod data for rx queue start ramrod */6157/* Ramrod data for tx queue start ramrod */
6095struct tx_queue_start_ramrod_data {6158struct tx_queue_start_ramrod_data {
6096 __le16 sb_id;6159 __le16 sb_id;
6097 u8 sb_index;6160 u8 sb_index;
@@ -6104,16 +6167,14 @@ struct tx_queue_start_ramrod_data { · 6 unmodified lines
6104#define TX_QUEUE_START_RAMROD_DATA_DISABLE_OPPORTUNISTIC_SHIFT 06167#define TX_QUEUE_START_RAMROD_DATA_DISABLE_OPPORTUNISTIC_SHIFT 0
6105#define TX_QUEUE_START_RAMROD_DATA_TEST_MODE_PKT_DUP_MASK 0x16168#define TX_QUEUE_START_RAMROD_DATA_TEST_MODE_PKT_DUP_MASK 0x1
6106#define TX_QUEUE_START_RAMROD_DATA_TEST_MODE_PKT_DUP_SHIFT 16169#define TX_QUEUE_START_RAMROD_DATA_TEST_MODE_PKT_DUP_SHIFT 1
6107#define TX_QUEUE_START_RAMROD_DATA_TEST_MODE_TX_DEST_MASK 0x1
6108#define TX_QUEUE_START_RAMROD_DATA_TEST_MODE_TX_DEST_SHIFT 2
6109#define TX_QUEUE_START_RAMROD_DATA_PMD_MODE_MASK 0x16170#define TX_QUEUE_START_RAMROD_DATA_PMD_MODE_MASK 0x1
6110#define TX_QUEUE_START_RAMROD_DATA_PMD_MODE_SHIFT 36171#define TX_QUEUE_START_RAMROD_DATA_PMD_MODE_SHIFT 2
6111#define TX_QUEUE_START_RAMROD_DATA_NOTIFY_EN_MASK 0x16172#define TX_QUEUE_START_RAMROD_DATA_NOTIFY_EN_MASK 0x1
6112#define TX_QUEUE_START_RAMROD_DATA_NOTIFY_EN_SHIFT 46173#define TX_QUEUE_START_RAMROD_DATA_NOTIFY_EN_SHIFT 3
6113#define TX_QUEUE_START_RAMROD_DATA_PIN_CONTEXT_MASK 0x16174#define TX_QUEUE_START_RAMROD_DATA_PIN_CONTEXT_MASK 0x1
6114#define TX_QUEUE_START_RAMROD_DATA_PIN_CONTEXT_SHIFT 56175#define TX_QUEUE_START_RAMROD_DATA_PIN_CONTEXT_SHIFT 4
6115#define TX_QUEUE_START_RAMROD_DATA_RESERVED1_MASK 0x36176#define TX_QUEUE_START_RAMROD_DATA_RESERVED1_MASK 0x7
6116#define TX_QUEUE_START_RAMROD_DATA_RESERVED1_SHIFT 66177#define TX_QUEUE_START_RAMROD_DATA_RESERVED1_SHIFT 5
6117 u8 pxp_st_hint;6178 u8 pxp_st_hint;
6118 u8 pxp_tph_valid_bd;6179 u8 pxp_tph_valid_bd;
6119 u8 pxp_tph_valid_pkt;6180 u8 pxp_tph_valid_pkt;
@@ -6169,18 +6230,22 @@ struct vport_start_ramrod_data { · 49 unmodified lines
6169 __le16 default_vlan;6230 __le16 default_vlan;
6170 u8 tx_switching_en;6231 u8 tx_switching_en;
6171 u8 anti_spoofing_en;6232 u8 anti_spoofing_en;
6172
6173 u8 default_vlan_en;6233 u8 default_vlan_en;
6174
6175 u8 handle_ptp_pkts;6234 u8 handle_ptp_pkts;
6176 u8 silent_vlan_removal_en;6235 u8 silent_vlan_removal_en;
6177 u8 untagged;6236 u8 untagged;
6178 struct eth_tx_err_vals tx_err_behav;6237 struct eth_tx_err_vals tx_err_behav;
6179
6180 u8 zero_placement_offset;6238 u8 zero_placement_offset;
6181 u8 ctl_frame_mac_check_en;6239 u8 ctl_frame_mac_check_en;
6182 u8 ctl_frame_ethtype_check_en;6240 u8 ctl_frame_ethtype_check_en;
6241 u8 reserved0;
6242 u8 reserved1;
6243 u8 tx_dst_port_mode_config;
6244 u8 dst_vport_id;
6245 u8 tx_dst_port_mode;
6246 u8 dst_vport_id_valid;
6183 u8 wipe_inner_vlan_pri_en;6247 u8 wipe_inner_vlan_pri_en;
6248 u8 reserved2[2];
6184 struct eth_in_to_in_pri_map_cfg in_to_in_vlan_pri_map_cfg;6249 struct eth_in_to_in_pri_map_cfg in_to_in_vlan_pri_map_cfg;
6185};6250};
6186 6251
@@ -6740,19 +6805,6 @@ struct e4_xstorm_eth_hw_conn_ag_ctx { · 553 unmodified lines
6740 __le16 conn_dpi;6805 __le16 conn_dpi;
6741};6806};
6742 6807
6743/* GFT CAM line struct */
6744struct gft_cam_line {
6745 __le32 camline;
6746#define GFT_CAM_LINE_VALID_MASK 0x1
6747#define GFT_CAM_LINE_VALID_SHIFT 0
6748#define GFT_CAM_LINE_DATA_MASK 0x3FFF
6749#define GFT_CAM_LINE_DATA_SHIFT 1
6750#define GFT_CAM_LINE_MASK_BITS_MASK 0x3FFF
6751#define GFT_CAM_LINE_MASK_BITS_SHIFT 15
6752#define GFT_CAM_LINE_RESERVED1_MASK 0x7
6753#define GFT_CAM_LINE_RESERVED1_SHIFT 29
6754};
6755
6756/* GFT CAM line struct with fields breakout */6808/* GFT CAM line struct with fields breakout */
6757struct gft_cam_line_mapped {6809struct gft_cam_line_mapped {
6758 __le32 camline;6810 __le32 camline;
@@ -6782,10 +6834,6 @@ struct gft_cam_line_mapped { · 23 unmodified lines
6782#define GFT_CAM_LINE_MAPPED_RESERVED1_SHIFT 296834#define GFT_CAM_LINE_MAPPED_RESERVED1_SHIFT 29
6783};6835};
6784 6836
6785union gft_cam_line_union {
6786 struct gft_cam_line cam_line;
6787 struct gft_cam_line_mapped cam_line_mapped;
6788};
6789 6837
6790/* Used in gft_profile_key: Indication for ip version */6838/* Used in gft_profile_key: Indication for ip version */
6791enum gft_profile_ip_version {6839enum gft_profile_ip_version {
@@ -7064,6 +7112,11 @@ struct mstorm_rdma_task_st_ctx { · 272 unmodified lines
7064 struct regpair temp[4];7112 struct regpair temp[4];
7065};7113};
7066 7114
7115/* The roce task context of Ustorm */
7116struct ustorm_rdma_task_st_ctx {
7117 struct regpair temp[6];
7118};
7119
7067struct e4_ustorm_rdma_task_ag_ctx {7120struct e4_ustorm_rdma_task_ag_ctx {
7068 u8 reserved;7121 u8 reserved;
7069 u8 state;7122 u8 state;
@@ -7073,8 +7126,8 @@ struct e4_ustorm_rdma_task_ag_ctx { · 3 unmodified lines
7073#define E4_USTORM_RDMA_TASK_AG_CTX_CONNECTION_TYPE_SHIFT 07126#define E4_USTORM_RDMA_TASK_AG_CTX_CONNECTION_TYPE_SHIFT 0
7074#define E4_USTORM_RDMA_TASK_AG_CTX_EXIST_IN_QM0_MASK 0x17127#define E4_USTORM_RDMA_TASK_AG_CTX_EXIST_IN_QM0_MASK 0x1
7075#define E4_USTORM_RDMA_TASK_AG_CTX_EXIST_IN_QM0_SHIFT 47128#define E4_USTORM_RDMA_TASK_AG_CTX_EXIST_IN_QM0_SHIFT 4
7076#define E4_USTORM_RDMA_TASK_AG_CTX_DIF_RUNT_VALID_MASK 0x17129#define E4_USTORM_RDMA_TASK_AG_CTX_BIT1_MASK 0x1
7077#define E4_USTORM_RDMA_TASK_AG_CTX_DIF_RUNT_VALID_SHIFT 57130#define E4_USTORM_RDMA_TASK_AG_CTX_BIT1_SHIFT 5
7078#define E4_USTORM_RDMA_TASK_AG_CTX_DIF_WRITE_RESULT_CF_MASK 0x37131#define E4_USTORM_RDMA_TASK_AG_CTX_DIF_WRITE_RESULT_CF_MASK 0x3
7079#define E4_USTORM_RDMA_TASK_AG_CTX_DIF_WRITE_RESULT_CF_SHIFT 67132#define E4_USTORM_RDMA_TASK_AG_CTX_DIF_WRITE_RESULT_CF_SHIFT 6
7080 u8 flags1;7133 u8 flags1;
@@ -7104,29 +7157,29 @@ struct e4_ustorm_rdma_task_ag_ctx { · 23 unmodified lines
7104#define E4_USTORM_RDMA_TASK_AG_CTX_RULE2EN_MASK 0x17157#define E4_USTORM_RDMA_TASK_AG_CTX_RULE2EN_MASK 0x1
7105#define E4_USTORM_RDMA_TASK_AG_CTX_RULE2EN_SHIFT 77158#define E4_USTORM_RDMA_TASK_AG_CTX_RULE2EN_SHIFT 7
7106 u8 flags3;7159 u8 flags3;
7107#define E4_USTORM_RDMA_TASK_AG_CTX_RULE3EN_MASK 0x17160#define E4_USTORM_RDMA_TASK_AG_CTX_DIF_RXMIT_PROD_CONS_EN_MASK 0x1
7108#define E4_USTORM_RDMA_TASK_AG_CTX_RULE3EN_SHIFT 07161#define E4_USTORM_RDMA_TASK_AG_CTX_DIF_RXMIT_PROD_CONS_EN_SHIFT 0
7109#define E4_USTORM_RDMA_TASK_AG_CTX_RULE4EN_MASK 0x17162#define E4_USTORM_RDMA_TASK_AG_CTX_RULE4EN_MASK 0x1
7110#define E4_USTORM_RDMA_TASK_AG_CTX_RULE4EN_SHIFT 17163#define E4_USTORM_RDMA_TASK_AG_CTX_RULE4EN_SHIFT 1
7111#define E4_USTORM_RDMA_TASK_AG_CTX_RULE5EN_MASK 0x17164#define E4_USTORM_RDMA_TASK_AG_CTX_DIF_WRITE_PROD_CONS_EN_MASK 0x1
7112#define E4_USTORM_RDMA_TASK_AG_CTX_RULE5EN_SHIFT 27165#define E4_USTORM_RDMA_TASK_AG_CTX_DIF_WRITE_PROD_CONS_EN_SHIFT 2
7113#define E4_USTORM_RDMA_TASK_AG_CTX_RULE6EN_MASK 0x17166#define E4_USTORM_RDMA_TASK_AG_CTX_RULE6EN_MASK 0x1
7114#define E4_USTORM_RDMA_TASK_AG_CTX_RULE6EN_SHIFT 37167#define E4_USTORM_RDMA_TASK_AG_CTX_RULE6EN_SHIFT 3
7115#define E4_USTORM_RDMA_TASK_AG_CTX_DIF_ERROR_TYPE_MASK 0xF7168#define E4_USTORM_RDMA_TASK_AG_CTX_DIF_ERROR_TYPE_MASK 0xF
7116#define E4_USTORM_RDMA_TASK_AG_CTX_DIF_ERROR_TYPE_SHIFT 47169#define E4_USTORM_RDMA_TASK_AG_CTX_DIF_ERROR_TYPE_SHIFT 4
7117 __le32 dif_err_intervals;7170 __le32 dif_err_intervals;
7118 __le32 dif_error_1st_interval;7171 __le32 dif_error_1st_interval;
7119 __le32 sq_cons;7172 __le32 dif_rxmit_cons;
7120 __le32 dif_runt_value;7173 __le32 dif_rxmit_prod;
7121 __le32 sge_index;7174 __le32 sge_index;
7122 __le32 reg5;7175 __le32 sq_cons;
7123 u8 byte2;7176 u8 byte2;
7124 u8 byte3;7177 u8 byte3;
7125 __le16 word1;7178 __le16 dif_write_cons;
7126 __le16 word2;7179 __le16 dif_write_prod;
7127 __le16 word3;7180 __le16 word3;
7128 __le32 reg6;7181 __le32 dif_error_buffer_address_lo;
7129 __le32 reg7;7182 __le32 dif_error_buffer_address_hi;
7130};7183};
7131 7184
7132/* RDMA task context */7185/* RDMA task context */
@@ -7137,6 +7190,8 @@ struct e4_rdma_task_context { · 4 unmodified lines
7137 struct e4_mstorm_rdma_task_ag_ctx mstorm_ag_context;7190 struct e4_mstorm_rdma_task_ag_ctx mstorm_ag_context;
7138 struct mstorm_rdma_task_st_ctx mstorm_st_context;7191 struct mstorm_rdma_task_st_ctx mstorm_st_context;
7139 struct rdif_task_context rdif_context;7192 struct rdif_task_context rdif_context;
7193 struct ustorm_rdma_task_st_ctx ustorm_st_context;
7194 struct regpair ustorm_st_padding[2];
7140 struct e4_ustorm_rdma_task_ag_ctx ustorm_ag_context;7195 struct e4_ustorm_rdma_task_ag_ctx ustorm_ag_context;
7141};7196};
7142 7197
@@ -7172,7 +7227,12 @@ struct rdma_create_cq_ramrod_data { · 29 unmodified lines
7172 u8 pbl_log_page_size;7227 u8 pbl_log_page_size;
7173 u8 toggle_bit;7228 u8 toggle_bit;
7174 __le16 int_timeout;7229 __le16 int_timeout;
7175 __le16 reserved1;7230 u8 vf_id;
7231 u8 flags;
7232#define RDMA_CREATE_CQ_RAMROD_DATA_VF_ID_VALID_MASK 0x1
7233#define RDMA_CREATE_CQ_RAMROD_DATA_VF_ID_VALID_SHIFT 0
7234#define RDMA_CREATE_CQ_RAMROD_DATA_RESERVED1_MASK 0x7F
7235#define RDMA_CREATE_CQ_RAMROD_DATA_RESERVED1_SHIFT 1
7176};7236};
7177 7237
7178/* rdma deregister tid ramrod data */7238/* rdma deregister tid ramrod data */
@@ -7216,6 +7276,7 @@ enum rdma_fw_return_code { · 37 unmodified lines
7216 RDMA_RETURN_DEREGISTER_MR_BAD_STATE_ERR,7276 RDMA_RETURN_DEREGISTER_MR_BAD_STATE_ERR,
7217 RDMA_RETURN_RESIZE_CQ_ERR,7277 RDMA_RETURN_RESIZE_CQ_ERR,
7218 RDMA_RETURN_NIG_DRAIN_REQ,7278 RDMA_RETURN_NIG_DRAIN_REQ,
7279 RDMA_RETURN_GENERAL_ERR,
7219 MAX_RDMA_FW_RETURN_CODE7280 MAX_RDMA_FW_RETURN_CODE
7220};7281};
7221 7282
@@ -7229,7 +7290,10 @@ struct rdma_init_func_hdr { · 7 unmodified lines
7229 u8 relaxed_ordering;7290 u8 relaxed_ordering;
7230 __le16 first_reg_srq_id;7291 __le16 first_reg_srq_id;
7231 __le32 reg_srq_base_addr;7292 __le32 reg_srq_base_addr;
7232 __le32 reserved;7293 u8 searcher_mode;
7294 u8 pvrdma_mode;
7295 u8 max_num_ns_log;
7296 u8 reserved;
7233};7297};
7234 7298
7235/* rdma function init ramrod data */7299/* rdma function init ramrod data */
@@ -7319,16 +7383,20 @@ struct rdma_resize_cq_ramrod_data { · 83 unmodified lines
7319#define RDMA_RESIZE_CQ_RAMROD_DATA_TOGGLE_BIT_SHIFT 07383#define RDMA_RESIZE_CQ_RAMROD_DATA_TOGGLE_BIT_SHIFT 0
7320#define RDMA_RESIZE_CQ_RAMROD_DATA_IS_TWO_LEVEL_PBL_MASK 0x17384#define RDMA_RESIZE_CQ_RAMROD_DATA_IS_TWO_LEVEL_PBL_MASK 0x1
7321#define RDMA_RESIZE_CQ_RAMROD_DATA_IS_TWO_LEVEL_PBL_SHIFT 17385#define RDMA_RESIZE_CQ_RAMROD_DATA_IS_TWO_LEVEL_PBL_SHIFT 1
7322#define RDMA_RESIZE_CQ_RAMROD_DATA_RESERVED_MASK 0x3F7386#define RDMA_RESIZE_CQ_RAMROD_DATA_VF_ID_VALID_MASK 0x1
7323#define RDMA_RESIZE_CQ_RAMROD_DATA_RESERVED_SHIFT 27387#define RDMA_RESIZE_CQ_RAMROD_DATA_VF_ID_VALID_SHIFT 2
7388#define RDMA_RESIZE_CQ_RAMROD_DATA_RESERVED_MASK 0x1F
7389#define RDMA_RESIZE_CQ_RAMROD_DATA_RESERVED_SHIFT 3
7324 u8 pbl_log_page_size;7390 u8 pbl_log_page_size;
7325 __le16 pbl_num_pages;7391 __le16 pbl_num_pages;
7326 __le32 max_cqes;7392 __le32 max_cqes;
7327 struct regpair pbl_addr;7393 struct regpair pbl_addr;
7328 struct regpair output_params_addr;7394 struct regpair output_params_addr;
7395 u8 vf_id;
7396 u8 reserved1[7];
7329};7397};
7330 7398
7331/* The rdma storm context of Mstorm */7399/* The rdma SRQ context */
7332struct rdma_srq_context {7400struct rdma_srq_context {
7333 struct regpair temp[8];7401 struct regpair temp[8];
7334};7402};
@@ -7375,6 +7443,7 @@ enum rdma_tid_type { · 40 unmodified lines
7375 MAX_RDMA_TID_TYPE7443 MAX_RDMA_TID_TYPE
7376};7444};
7377 7445
7446/* The rdma XRC SRQ context */
7378struct rdma_xrc_srq_context {7447struct rdma_xrc_srq_context {
7379 struct regpair temp[9];7448 struct regpair temp[9];
7380};7449};
@@ -7556,12 +7625,12 @@ struct e4_xstorm_roce_conn_ag_ctx { · 175 unmodified lines
7556#define E4_XSTORM_ROCE_CONN_AG_CTX_BIT10_SHIFT 27625#define E4_XSTORM_ROCE_CONN_AG_CTX_BIT10_SHIFT 2
7557#define E4_XSTORM_ROCE_CONN_AG_CTX_BIT11_MASK 0x17626#define E4_XSTORM_ROCE_CONN_AG_CTX_BIT11_MASK 0x1
7558#define E4_XSTORM_ROCE_CONN_AG_CTX_BIT11_SHIFT 37627#define E4_XSTORM_ROCE_CONN_AG_CTX_BIT11_SHIFT 3
7559#define E4_XSTORM_ROCE_CONN_AG_CTX_BIT12_MASK 0x17628#define E4_XSTORM_ROCE_CONN_AG_CTX_MSDM_FLUSH_MASK 0x1
7560#define E4_XSTORM_ROCE_CONN_AG_CTX_BIT12_SHIFT 47629#define E4_XSTORM_ROCE_CONN_AG_CTX_MSDM_FLUSH_SHIFT 4
7561#define E4_XSTORM_ROCE_CONN_AG_CTX_MSEM_FLUSH_MASK 0x17630#define E4_XSTORM_ROCE_CONN_AG_CTX_MSEM_FLUSH_MASK 0x1
7562#define E4_XSTORM_ROCE_CONN_AG_CTX_MSEM_FLUSH_SHIFT 57631#define E4_XSTORM_ROCE_CONN_AG_CTX_MSEM_FLUSH_SHIFT 5
7563#define E4_XSTORM_ROCE_CONN_AG_CTX_MSDM_FLUSH_MASK 0x17632#define E4_XSTORM_ROCE_CONN_AG_CTX_BIT14_MASK 0x1
7564#define E4_XSTORM_ROCE_CONN_AG_CTX_MSDM_FLUSH_SHIFT 67633#define E4_XSTORM_ROCE_CONN_AG_CTX_BIT14_SHIFT 6
7565#define E4_XSTORM_ROCE_CONN_AG_CTX_YSTORM_FLUSH_MASK 0x17634#define E4_XSTORM_ROCE_CONN_AG_CTX_YSTORM_FLUSH_MASK 0x1
7566#define E4_XSTORM_ROCE_CONN_AG_CTX_YSTORM_FLUSH_SHIFT 77635#define E4_XSTORM_ROCE_CONN_AG_CTX_YSTORM_FLUSH_SHIFT 7
7567 u8 flags2;7636 u8 flags2;
@@ -7885,9 +7954,9 @@ struct mstorm_roce_conn_st_ctx { · 317 unmodified lines
7885 struct regpair temp[6];7954 struct regpair temp[6];
7886};7955};
7887 7956
7888/* The roce storm context of Ystorm */7957/* The roce storm context of Ustorm */
7889struct ustorm_roce_conn_st_ctx {7958struct ustorm_roce_conn_st_ctx {
7890 struct regpair temp[12];7959 struct regpair temp[14];
7891};7960};
7892 7961
7893/* roce connection context */7962/* roce connection context */
@@ -7905,6 +7974,7 @@ struct e4_roce_conn_context { · 11 unmodified lines
7905 struct mstorm_roce_conn_st_ctx mstorm_st_context;7974 struct mstorm_roce_conn_st_ctx mstorm_st_context;
7906 struct regpair mstorm_st_padding[2];7975 struct regpair mstorm_st_padding[2];
7907 struct ustorm_roce_conn_st_ctx ustorm_st_context;7976 struct ustorm_roce_conn_st_ctx ustorm_st_context;
7977 struct regpair ustorm_st_padding[2];
7908};7978};
7909 7979
7910/* roce cqes statistics */7980/* roce cqes statistics */
@@ -7959,12 +8029,17 @@ struct roce_create_qp_req_ramrod_data { · 48 unmodified lines
7959 struct regpair qp_handle_for_cqe;8029 struct regpair qp_handle_for_cqe;
7960 struct regpair qp_handle_for_async;8030 struct regpair qp_handle_for_async;
7961 u8 stats_counter_id;8031 u8 stats_counter_id;
7962 u8 reserved3[6];8032 u8 vf_id;
8033 u8 vport_id;
7963 u8 flags2;8034 u8 flags2;
7964#define ROCE_CREATE_QP_REQ_RAMROD_DATA_EDPM_MODE_MASK 0x18035#define ROCE_CREATE_QP_REQ_RAMROD_DATA_EDPM_MODE_MASK 0x1
7965#define ROCE_CREATE_QP_REQ_RAMROD_DATA_EDPM_MODE_SHIFT 08036#define ROCE_CREATE_QP_REQ_RAMROD_DATA_EDPM_MODE_SHIFT 0
7966#define ROCE_CREATE_QP_REQ_RAMROD_DATA_RESERVED_MASK 0x7F8037#define ROCE_CREATE_QP_REQ_RAMROD_DATA_VF_ID_VALID_MASK 0x1
7967#define ROCE_CREATE_QP_REQ_RAMROD_DATA_RESERVED_SHIFT 18038#define ROCE_CREATE_QP_REQ_RAMROD_DATA_VF_ID_VALID_SHIFT 1
8039#define ROCE_CREATE_QP_REQ_RAMROD_DATA_RESERVED_MASK 0x3F
8040#define ROCE_CREATE_QP_REQ_RAMROD_DATA_RESERVED_SHIFT 2
8041 u8 name_space;
8042 u8 reserved3[3];
7968 __le16 regular_latency_phy_queue;8043 __le16 regular_latency_phy_queue;
7969 __le16 dpi;8044 __le16 dpi;
7970};8045};
@@ -7992,8 +8067,10 @@ struct roce_create_qp_resp_ramrod_data { · 21 unmodified lines
7992#define ROCE_CREATE_QP_RESP_RAMROD_DATA_MIN_RNR_NAK_TIMER_SHIFT 118067#define ROCE_CREATE_QP_RESP_RAMROD_DATA_MIN_RNR_NAK_TIMER_SHIFT 11
7993#define ROCE_CREATE_QP_RESP_RAMROD_DATA_XRC_FLAG_MASK 0x18068#define ROCE_CREATE_QP_RESP_RAMROD_DATA_XRC_FLAG_MASK 0x1
7994#define ROCE_CREATE_QP_RESP_RAMROD_DATA_XRC_FLAG_SHIFT 168069#define ROCE_CREATE_QP_RESP_RAMROD_DATA_XRC_FLAG_SHIFT 16
7995#define ROCE_CREATE_QP_RESP_RAMROD_DATA_RESERVED_MASK 0x7FFF8070#define ROCE_CREATE_QP_RESP_RAMROD_DATA_VF_ID_VALID_MASK 0x1
7996#define ROCE_CREATE_QP_RESP_RAMROD_DATA_RESERVED_SHIFT 178071#define ROCE_CREATE_QP_RESP_RAMROD_DATA_VF_ID_VALID_SHIFT 17
8072#define ROCE_CREATE_QP_RESP_RAMROD_DATA_RESERVED_MASK 0x3FFF
8073#define ROCE_CREATE_QP_RESP_RAMROD_DATA_RESERVED_SHIFT 18
7997 __le16 xrc_domain;8074 __le16 xrc_domain;
7998 u8 max_ird;8075 u8 max_ird;
7999 u8 traffic_class;8076 u8 traffic_class;
@@ -8020,10 +8097,14 @@ struct roce_create_qp_resp_ramrod_data { · 20 unmodified lines
8020 struct regpair qp_handle_for_cqe;8097 struct regpair qp_handle_for_cqe;
8021 struct regpair qp_handle_for_async;8098 struct regpair qp_handle_for_async;
8022 __le16 low_latency_phy_queue;8099 __le16 low_latency_phy_queue;
8023 u8 reserved2[2];8100 u8 vf_id;
8101 u8 vport_id;
8024 __le32 cq_cid;8102 __le32 cq_cid;
8025 __le16 regular_latency_phy_queue;8103 __le16 regular_latency_phy_queue;
8026 __le16 dpi;8104 __le16 dpi;
8105 __le32 src_qp_id;
8106 u8 name_space;
8107 u8 reserved3[3];
8027};8108};
8028 8109
8029/* roce DCQCN received statistics */8110/* roce DCQCN received statistics */
@@ -8057,6 +8138,8 @@ struct roce_destroy_qp_resp_output_params { · 27 unmodified lines
8057/* RoCE destroy qp responder ramrod data */8138/* RoCE destroy qp responder ramrod data */
8058struct roce_destroy_qp_resp_ramrod_data {8139struct roce_destroy_qp_resp_ramrod_data {
8059 struct regpair output_params_addr;8140 struct regpair output_params_addr;
8141 __le32 src_qp_id;
8142 __le32 reserved;
8060};8143};
8061 8144
8062/* roce error statistics */8145/* roce error statistics */
@@ -8140,8 +8223,8 @@ struct roce_modify_qp_req_ramrod_data { · 77 unmodified lines
8140#define ROCE_MODIFY_QP_REQ_RAMROD_DATA_PRI_FLG_SHIFT 98223#define ROCE_MODIFY_QP_REQ_RAMROD_DATA_PRI_FLG_SHIFT 9
8141#define ROCE_MODIFY_QP_REQ_RAMROD_DATA_PRI_MASK 0x78224#define ROCE_MODIFY_QP_REQ_RAMROD_DATA_PRI_MASK 0x7
8142#define ROCE_MODIFY_QP_REQ_RAMROD_DATA_PRI_SHIFT 108225#define ROCE_MODIFY_QP_REQ_RAMROD_DATA_PRI_SHIFT 10
8143#define ROCE_MODIFY_QP_REQ_RAMROD_DATA_PHYSICAL_QUEUES_FLG_MASK 0x18226#define ROCE_MODIFY_QP_REQ_RAMROD_DATA_PHYSICAL_QUEUE_FLG_MASK 0x1
8144#define ROCE_MODIFY_QP_REQ_RAMROD_DATA_PHYSICAL_QUEUES_FLG_SHIFT 138227#define ROCE_MODIFY_QP_REQ_RAMROD_DATA_PHYSICAL_QUEUE_FLG_SHIFT 13
8145#define ROCE_MODIFY_QP_REQ_RAMROD_DATA_RESERVED1_MASK 0x38228#define ROCE_MODIFY_QP_REQ_RAMROD_DATA_RESERVED1_MASK 0x3
8146#define ROCE_MODIFY_QP_REQ_RAMROD_DATA_RESERVED1_SHIFT 148229#define ROCE_MODIFY_QP_REQ_RAMROD_DATA_RESERVED1_SHIFT 14
8147 u8 fields;8230 u8 fields;
@@ -8187,8 +8270,8 @@ struct roce_modify_qp_resp_ramrod_data { · 39 unmodified lines
8187#define ROCE_MODIFY_QP_RESP_RAMROD_DATA_MIN_RNR_NAK_TIMER_FLG_SHIFT 88270#define ROCE_MODIFY_QP_RESP_RAMROD_DATA_MIN_RNR_NAK_TIMER_FLG_SHIFT 8
8188#define ROCE_MODIFY_QP_RESP_RAMROD_DATA_RDMA_OPS_EN_FLG_MASK 0x18271#define ROCE_MODIFY_QP_RESP_RAMROD_DATA_RDMA_OPS_EN_FLG_MASK 0x1
8189#define ROCE_MODIFY_QP_RESP_RAMROD_DATA_RDMA_OPS_EN_FLG_SHIFT 98272#define ROCE_MODIFY_QP_RESP_RAMROD_DATA_RDMA_OPS_EN_FLG_SHIFT 9
8190#define ROCE_MODIFY_QP_RESP_RAMROD_DATA_PHYSICAL_QUEUES_FLG_MASK 0x18273#define ROCE_MODIFY_QP_RESP_RAMROD_DATA_PHYSICAL_QUEUE_FLG_MASK 0x1
8191#define ROCE_MODIFY_QP_RESP_RAMROD_DATA_PHYSICAL_QUEUES_FLG_SHIFT 108274#define ROCE_MODIFY_QP_RESP_RAMROD_DATA_PHYSICAL_QUEUE_FLG_SHIFT 10
8192#define ROCE_MODIFY_QP_RESP_RAMROD_DATA_RESERVED1_MASK 0x1F8275#define ROCE_MODIFY_QP_RESP_RAMROD_DATA_RESERVED1_MASK 0x1F
8193#define ROCE_MODIFY_QP_RESP_RAMROD_DATA_RESERVED1_SHIFT 118276#define ROCE_MODIFY_QP_RESP_RAMROD_DATA_RESERVED1_SHIFT 11
8194 u8 fields;8277 u8 fields;
@@ -8229,7 +8312,7 @@ struct roce_query_qp_req_ramrod_data { · 34 unmodified lines
8229/* RoCE query qp responder output params */8312/* RoCE query qp responder output params */
8230struct roce_query_qp_resp_output_params {8313struct roce_query_qp_resp_output_params {
8231 __le32 psn;8314 __le32 psn;
8232 __le32 err_flag;8315 __le32 flags;
8233#define ROCE_QUERY_QP_RESP_OUTPUT_PARAMS_ERROR_FLG_MASK 0x18316#define ROCE_QUERY_QP_RESP_OUTPUT_PARAMS_ERROR_FLG_MASK 0x1
8234#define ROCE_QUERY_QP_RESP_OUTPUT_PARAMS_ERROR_FLG_SHIFT 08317#define ROCE_QUERY_QP_RESP_OUTPUT_PARAMS_ERROR_FLG_SHIFT 0
8235#define ROCE_QUERY_QP_RESP_OUTPUT_PARAMS_RESERVED0_MASK 0x7FFFFFFF8318#define ROCE_QUERY_QP_RESP_OUTPUT_PARAMS_RESERVED0_MASK 0x7FFFFFFF
@@ -8296,12 +8379,12 @@ struct e4_xstorm_roce_conn_ag_ctx_dq_ext_ld_part { · 60 unmodified lines
8296#define E4XSTORMROCECONNAGCTXDQEXTLDPART_BIT10_SHIFT 28379#define E4XSTORMROCECONNAGCTXDQEXTLDPART_BIT10_SHIFT 2
8297#define E4XSTORMROCECONNAGCTXDQEXTLDPART_BIT11_MASK 0x18380#define E4XSTORMROCECONNAGCTXDQEXTLDPART_BIT11_MASK 0x1
8298#define E4XSTORMROCECONNAGCTXDQEXTLDPART_BIT11_SHIFT 38381#define E4XSTORMROCECONNAGCTXDQEXTLDPART_BIT11_SHIFT 3
8299#define E4XSTORMROCECONNAGCTXDQEXTLDPART_BIT12_MASK 0x18382#define E4XSTORMROCECONNAGCTXDQEXTLDPART_MSDM_FLUSH_MASK 0x1
8300#define E4XSTORMROCECONNAGCTXDQEXTLDPART_BIT12_SHIFT 48383#define E4XSTORMROCECONNAGCTXDQEXTLDPART_MSDM_FLUSH_SHIFT 4
8301#define E4XSTORMROCECONNAGCTXDQEXTLDPART_MSEM_FLUSH_MASK 0x18384#define E4XSTORMROCECONNAGCTXDQEXTLDPART_MSEM_FLUSH_MASK 0x1
8302#define E4XSTORMROCECONNAGCTXDQEXTLDPART_MSEM_FLUSH_SHIFT 58385#define E4XSTORMROCECONNAGCTXDQEXTLDPART_MSEM_FLUSH_SHIFT 5
8303#define E4XSTORMROCECONNAGCTXDQEXTLDPART_MSDM_FLUSH_MASK 0x18386#define E4XSTORMROCECONNAGCTXDQEXTLDPART_BIT14_MASK 0x1
8304#define E4XSTORMROCECONNAGCTXDQEXTLDPART_MSDM_FLUSH_SHIFT 68387#define E4XSTORMROCECONNAGCTXDQEXTLDPART_BIT14_SHIFT 6
8305#define E4XSTORMROCECONNAGCTXDQEXTLDPART_YSTORM_FLUSH_MASK 0x18388#define E4XSTORMROCECONNAGCTXDQEXTLDPART_YSTORM_FLUSH_MASK 0x1
8306#define E4XSTORMROCECONNAGCTXDQEXTLDPART_YSTORM_FLUSH_SHIFT 78389#define E4XSTORMROCECONNAGCTXDQEXTLDPART_YSTORM_FLUSH_SHIFT 7
8307 u8 flags2;8390 u8 flags2;
@@ -8674,8 +8757,8 @@ struct e4_tstorm_roce_req_conn_ag_ctx { · 366 unmodified lines
8674 u8 flags5;8757 u8 flags5;
8675#define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_RULE1EN_MASK 0x18758#define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_RULE1EN_MASK 0x1
8676#define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_RULE1EN_SHIFT 08759#define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_RULE1EN_SHIFT 0
8677#define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_RULE2EN_MASK 0x18760#define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_DIF_CNT_EN_MASK 0x1
8678#define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_RULE2EN_SHIFT 18761#define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_DIF_CNT_EN_SHIFT 1
8679#define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_RULE3EN_MASK 0x18762#define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_RULE3EN_MASK 0x1
8680#define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_RULE3EN_SHIFT 28763#define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_RULE3EN_SHIFT 2
8681#define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_RULE4EN_MASK 0x18764#define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_RULE4EN_MASK 0x1
@@ -8688,13 +8771,13 @@ struct e4_tstorm_roce_req_conn_ag_ctx { · 6 unmodified lines
8688#define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_RULE7EN_SHIFT 68771#define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_RULE7EN_SHIFT 6
8689#define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_RULE8EN_MASK 0x18772#define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_RULE8EN_MASK 0x1
8690#define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_RULE8EN_SHIFT 78773#define E4_TSTORM_ROCE_REQ_CONN_AG_CTX_RULE8EN_SHIFT 7
8691 __le32 reg0;8774 __le32 dif_rxmit_cnt;
8692 __le32 snd_nxt_psn;8775 __le32 snd_nxt_psn;
8693 __le32 snd_max_psn;8776 __le32 snd_max_psn;
8694 __le32 orq_prod;8777 __le32 orq_prod;
8695 __le32 reg4;8778 __le32 reg4;
8696 __le32 reg5;8779 __le32 dif_acked_cnt;
8697 __le32 reg6;8780 __le32 dif_cnt;
8698 __le32 reg7;8781 __le32 reg7;
8699 __le32 reg8;8782 __le32 reg8;
8700 u8 tx_cqe_error_type;8783 u8 tx_cqe_error_type;
@@ -8705,7 +8788,7 @@ struct e4_tstorm_roce_req_conn_ag_ctx { · 4 unmodified lines
8705 __le16 snd_sq_cons;8788 __le16 snd_sq_cons;
8706 __le16 conn_dpi;8789 __le16 conn_dpi;
8707 __le16 force_comp_cons;8790 __le16 force_comp_cons;
8708 __le32 reg9;8791 __le32 dif_rxmit_acked_cnt;
8709 __le32 reg10;8792 __le32 reg10;
8710};8793};
8711 8794
@@ -8980,10 +9063,10 @@ struct e4_xstorm_roce_req_conn_ag_ctx { · 268 unmodified lines
8980#define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_BIT10_SHIFT 29063#define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_BIT10_SHIFT 2
8981#define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_BIT11_MASK 0x19064#define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_BIT11_MASK 0x1
8982#define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_BIT11_SHIFT 39065#define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_BIT11_SHIFT 3
8983#define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_BIT12_MASK 0x19066#define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_MSDM_FLUSH_MASK 0x1
8984#define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_BIT12_SHIFT 49067#define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_MSDM_FLUSH_SHIFT 4
8985#define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_BIT13_MASK 0x19068#define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_MSEM_FLUSH_MASK 0x1
8986#define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_BIT13_SHIFT 59069#define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_MSEM_FLUSH_SHIFT 5
8987#define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_ERROR_STATE_MASK 0x19070#define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_ERROR_STATE_MASK 0x1
8988#define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_ERROR_STATE_SHIFT 69071#define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_ERROR_STATE_SHIFT 6
8989#define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_YSTORM_FLUSH_MASK 0x19072#define E4_XSTORM_ROCE_REQ_CONN_AG_CTX_YSTORM_FLUSH_MASK 0x1
@@ -9209,10 +9292,10 @@ struct e4_xstorm_roce_resp_conn_ag_ctx { · 219 unmodified lines
9209#define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_BIT10_SHIFT 29292#define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_BIT10_SHIFT 2
9210#define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_BIT11_MASK 0x19293#define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_BIT11_MASK 0x1
9211#define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_BIT11_SHIFT 39294#define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_BIT11_SHIFT 3
9212#define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_BIT12_MASK 0x19295#define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_MSDM_FLUSH_MASK 0x1
9213#define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_BIT12_SHIFT 49296#define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_MSDM_FLUSH_SHIFT 4
9214#define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_BIT13_MASK 0x19297#define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_MSEM_FLUSH_MASK 0x1
9215#define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_BIT13_SHIFT 59298#define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_MSEM_FLUSH_SHIFT 5
9216#define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_ERROR_STATE_MASK 0x19299#define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_ERROR_STATE_MASK 0x1
9217#define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_ERROR_STATE_SHIFT 69300#define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_ERROR_STATE_SHIFT 6
9218#define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_YSTORM_FLUSH_MASK 0x19301#define E4_XSTORM_ROCE_RESP_CONN_AG_CTX_YSTORM_FLUSH_MASK 0x1
@@ -9939,7 +10022,7 @@ struct mstorm_iwarp_conn_st_ctx { · 720 unmodified lines
9939 10022
9940/* The iwarp storm context of Ustorm */10023/* The iwarp storm context of Ustorm */
9941struct ustorm_iwarp_conn_st_ctx {10024struct ustorm_iwarp_conn_st_ctx {
9942 __le32 reserved[24];10025 struct regpair reserved[14];
9943};10026};
9944 10027
9945/* iwarp connection context */10028/* iwarp connection context */
@@ -9957,6 +10040,7 @@ struct e4_iwarp_conn_context { · 11 unmodified lines
9957 struct regpair tstorm_st_padding[2];10040 struct regpair tstorm_st_padding[2];
9958 struct mstorm_iwarp_conn_st_ctx mstorm_st_context;10041 struct mstorm_iwarp_conn_st_ctx mstorm_st_context;
9959 struct ustorm_iwarp_conn_st_ctx ustorm_st_context;10042 struct ustorm_iwarp_conn_st_ctx ustorm_st_context;
10043 struct regpair ustorm_st_padding[2];
9960};10044};
9961 10045
9962/* iWARP create QP params passed by driver to FW in CreateQP Request Ramrod */10046/* iWARP create QP params passed by driver to FW in CreateQP Request Ramrod */
@@ -10009,7 +10093,8 @@ enum iwarp_eqe_async_opcode { · 46 unmodified lines
10009 10093
10010struct iwarp_eqe_data_mpa_async_completion {10094struct iwarp_eqe_data_mpa_async_completion {
10011 __le16 ulp_data_len;10095 __le16 ulp_data_len;
10012 u8 reserved[6];10096 u8 rtr_type_sent;
10097 u8 reserved[5];
10013};10098};
10014 10099
10015struct iwarp_eqe_data_tcp_async_completion {10100struct iwarp_eqe_data_tcp_async_completion {
@@ -10034,7 +10119,7 @@ enum iwarp_eqe_sync_opcode { · 18 unmodified lines
10034 10119
10035/* iWARP EQE completion status */10120/* iWARP EQE completion status */
10036enum iwarp_fw_return_code {10121enum iwarp_fw_return_code {
10037 IWARP_CONN_ERROR_TCP_CONNECT_INVALID_PACKET = 5,10122 IWARP_CONN_ERROR_TCP_CONNECT_INVALID_PACKET = 6,
10038 IWARP_CONN_ERROR_TCP_CONNECTION_RST,10123 IWARP_CONN_ERROR_TCP_CONNECTION_RST,
10039 IWARP_CONN_ERROR_TCP_CONNECT_TIMEOUT,10124 IWARP_CONN_ERROR_TCP_CONNECT_TIMEOUT,
10040 IWARP_CONN_ERROR_MPA_ERROR_REJECT,10125 IWARP_CONN_ERROR_MPA_ERROR_REJECT,
@@ -10203,8 +10288,8 @@ struct iwarp_rxmit_stats_drv { · 162 unmodified lines
10203 * offload ramrod.10288 * offload ramrod.
10204 */10289 */
10205struct iwarp_tcp_offload_ramrod_data {10290struct iwarp_tcp_offload_ramrod_data {
10206 struct iwarp_offload_params iwarp;
10207 struct tcp_offload_params_opt2 tcp;10291 struct tcp_offload_params_opt2 tcp;
10292 struct iwarp_offload_params iwarp;
10208};10293};
10209 10294
10210/* iWARP MPA negotiation types */10295/* iWARP MPA negotiation types */
drivers/net/ethernet/qlogic/qed/qed_init_ops.c+4−2
@@ -490,10 +490,10 @@ static u32 qed_init_cmd_phase(struct qed_hwfn *p_hwfn, · 489 unmodified lines
490int qed_init_run(struct qed_hwfn *p_hwfn,490int qed_init_run(struct qed_hwfn *p_hwfn,
491 struct qed_ptt *p_ptt, int phase, int phase_id, int modes)491 struct qed_ptt *p_ptt, int phase, int phase_id, int modes)
492{492{
493 bool b_dmae = (phase != PHASE_ENGINE);
493 struct qed_dev *cdev = p_hwfn->cdev;494 struct qed_dev *cdev = p_hwfn->cdev;
494 u32 cmd_num, num_init_ops;495 u32 cmd_num, num_init_ops;
495 union init_op *init_ops;496 union init_op *init_ops;
496 bool b_dmae = false;
497 int rc = 0;497 int rc = 0;
498 498
499 num_init_ops = cdev->fw_data->init_ops_size;499 num_init_ops = cdev->fw_data->init_ops_size;
@@ -522,7 +522,6 @@ int qed_init_run(struct qed_hwfn *p_hwfn, · 22 unmodified lines
522 case INIT_OP_IF_PHASE:522 case INIT_OP_IF_PHASE:
523 cmd_num += qed_init_cmd_phase(p_hwfn, &cmd->if_phase,523 cmd_num += qed_init_cmd_phase(p_hwfn, &cmd->if_phase,
524 phase, phase_id);524 phase, phase_id);
525 b_dmae = GET_FIELD(data, INIT_IF_PHASE_OP_DMAE_ENABLE);
526 break;525 break;
527 case INIT_OP_DELAY:526 case INIT_OP_DELAY:
528 /* qed_init_run is always invoked from527 /* qed_init_run is always invoked from
@@ -533,6 +532,9 @@ int qed_init_run(struct qed_hwfn *p_hwfn, · 4 unmodified lines
533 532
534 case INIT_OP_CALLBACK:533 case INIT_OP_CALLBACK:
535 rc = qed_init_cmd_cb(p_hwfn, p_ptt, &cmd->callback);534 rc = qed_init_cmd_cb(p_hwfn, p_ptt, &cmd->callback);
535 if (phase == PHASE_ENGINE &&
536 cmd->callback.callback_id == DMAE_READY_CB)
537 b_dmae = true;
536 break;538 break;
537 }539 }
538 540
drivers/net/ethernet/qlogic/qed/qed_mcp.c+2−0
@@ -48,6 +48,8 @@ · 47 unmodified lines
48#include "qed_reg_addr.h"48#include "qed_reg_addr.h"
49#include "qed_sriov.h"49#include "qed_sriov.h"
50 50
51#define GRCBASE_MCP 0xe00000
52
51#define QED_MCP_RESP_ITER_US 1053#define QED_MCP_RESP_ITER_US 10
52 54
53#define QED_DRV_MB_MAX_RETRIES (500 * 1000) /* Account for 5 sec */55#define QED_DRV_MB_MAX_RETRIES (500 * 1000) /* Account for 5 sec */
drivers/net/ethernet/qlogic/qed/qed_roce.c+1−1
@@ -900,7 +900,7 @@ int qed_roce_query_qp(struct qed_hwfn *p_hwfn, · 899 unmodified lines
900 goto err_resp;900 goto err_resp;
901 901
902 out_params->rq_psn = le32_to_cpu(p_resp_ramrod_res->psn);902 out_params->rq_psn = le32_to_cpu(p_resp_ramrod_res->psn);
903 rq_err_state = GET_FIELD(le32_to_cpu(p_resp_ramrod_res->err_flag),903 rq_err_state = GET_FIELD(le32_to_cpu(p_resp_ramrod_res->flags),
904 ROCE_QUERY_QP_RESP_OUTPUT_PARAMS_ERROR_FLG);904 ROCE_QUERY_QP_RESP_OUTPUT_PARAMS_ERROR_FLG);
905 905
906 dma_free_coherent(&p_hwfn->cdev->pdev->dev, sizeof(*p_resp_ramrod_res),906 dma_free_coherent(&p_hwfn->cdev->pdev->dev, sizeof(*p_resp_ramrod_res),
drivers/net/ethernet/qlogic/qede/qede_fp.c+4−4
@@ -848,13 +848,13 @@ static void qede_tpa_start(struct qede_dev *edev, · 847 unmodified lines
848 qede_set_gro_params(edev, tpa_info->skb, cqe);848 qede_set_gro_params(edev, tpa_info->skb, cqe);
849 849
850cons_buf: /* We still need to handle bd_len_list to consume buffers */850cons_buf: /* We still need to handle bd_len_list to consume buffers */
851 if (likely(cqe->ext_bd_len_list[0]))851 if (likely(cqe->bw_ext_bd_len_list[0]))
852 qede_fill_frag_skb(edev, rxq, cqe->tpa_agg_index,852 qede_fill_frag_skb(edev, rxq, cqe->tpa_agg_index,
853 le16_to_cpu(cqe->ext_bd_len_list[0]));853 le16_to_cpu(cqe->bw_ext_bd_len_list[0]));
854 854
855 if (unlikely(cqe->ext_bd_len_list[1])) {855 if (unlikely(cqe->bw_ext_bd_len_list[1])) {
856 DP_ERR(edev,856 DP_ERR(edev,
857 "Unlikely - got a TPA aggregation with more than one ext_bd_len_list entry in the TPA start\n");857 "Unlikely - got a TPA aggregation with more than one bw_ext_bd_len_list entry in the TPA start\n");
858 tpa_info->state = QEDE_AGG_STATE_ERROR;858 tpa_info->state = QEDE_AGG_STATE_ERROR;
859 }859 }
860}860}
include/linux/qed/common_hsi.h+12−9
@@ -76,7 +76,6 @@ · 75 unmodified lines
76 76
77#define FW_ASSERT_GENERAL_ATTN_IDX 3277#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 881#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_WORD4228#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_REG3229#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_REG4230#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 0234#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 12408#define PIS_PER_SB_E4 12
409#define MAX_PIS_PER_SB PIS_PER_SB
409 410
410#define CAU_HC_STOPPED_STATE 3411#define CAU_HC_STOPPED_STATE 3
411#define CAU_HC_DISABLE_STATE 4412#define CAU_HC_DISABLE_STATE 4
@@ -436,8 +437,6 @@ · 24 unmodified lines
436#define IGU_MEM_PBA_MSIX_RESERVED_UPPER 0x03ff437#define IGU_MEM_PBA_MSIX_RESERVED_UPPER 0x03ff
437 438
438#define IGU_CMD_INT_ACK_BASE 0x0400439#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 0x05ff440#define IGU_CMD_INT_ACK_RESERVED_UPPER 0x05ff
442 441
443#define IGU_CMD_ATTN_BIT_UPD_UPPER 0x05f0442#define IGU_CMD_ATTN_BIT_UPD_UPPER 0x05f0
@@ -450,8 +449,6 @@ · 6 unmodified lines
450#define IGU_REG_SISR_MDPC_WOMASK_UPPER 0x05f6449#define IGU_REG_SISR_MDPC_WOMASK_UPPER 0x05f6
451 450
452#define IGU_CMD_PROD_UPD_BASE 0x0600451#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 0x07ff452#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_TYPE743 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
763struct tstorm_queue_zone {
764 __le32 reserved[2];
765};
766
764/* Ustorm Queue Zone */767/* Ustorm Queue Zone */
765struct ustorm_eth_queue_zone {768struct 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 27886#define DB_L2_DPM_DATA_RESERVED0_SHIFT 27
884#define DB_L2_DPM_DATA_SGE_NUM_MASK 0x7887#define DB_L2_DPM_DATA_SGE_NUM_MASK 0x7
885#define DB_L2_DPM_DATA_SGE_NUM_SHIFT 28888#define DB_L2_DPM_DATA_SGE_NUM_SHIFT 28
886#define DB_L2_DPM_DATA_GFS_SRC_EN_MASK 0x1889#define DB_L2_DPM_DATA_TGFS_SRC_EN_MASK 0x1
887#define DB_L2_DPM_DATA_GFS_SRC_EN_SHIFT 31890#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 */
include/linux/qed/eth_common.h+56−22
@@ -38,9 +38,11 @@ · 37 unmodified lines
38/********************/38/********************/
39 39
40#define ETH_HSI_VER_MAJOR 340#define ETH_HSI_VER_MAJOR 3
41#define ETH_HSI_VER_MINOR 1041#define ETH_HSI_VER_MINOR 11
42 42
43#define ETH_HSI_VER_NO_PKT_LEN_TUNN 543#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 6447#define ETH_CACHE_LINE_SIZE 64
46#define ETH_RX_CQE_GAP 3248#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 363#define ETH_TX_MIN_BDS_PER_TUNN_IPV6_WITH_EXT_PKT 3
62#define ETH_TX_MIN_BDS_PER_IPV6_WITH_EXT_PKT 264#define ETH_TX_MIN_BDS_PER_IPV6_WITH_EXT_PKT 2
63#define ETH_TX_MIN_BDS_PER_PKT_W_LOOPBACK_MODE 265#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 51068#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 581#define ETH_RX_MAX_BUFF_PER_PKT 5
80#define ETH_RX_BD_THRESHOLD 1282#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 51285#define ETH_NUM_MAC_FILTERS 512
@@ -96,24 +98,24 @@ · 12 unmodified lines
96#define ETH_RSS_ENGINE_NUM_BB 12798#define ETH_RSS_ENGINE_NUM_BB 127
97 99
98/* TPA constants */100/* TPA constants */
99#define ETH_TPA_MAX_AGGS_NUM 64101#define ETH_TPA_MAX_AGGS_NUM 64
100#define ETH_TPA_CQE_START_LEN_LIST_SIZE ETH_RX_MAX_BUFF_PER_PKT102#define ETH_TPA_CQE_START_BW_LEN_LIST_SIZE 2
101#define ETH_TPA_CQE_CONT_LEN_LIST_SIZE 6103#define ETH_TPA_CQE_CONT_LEN_LIST_SIZE 6
102#define ETH_TPA_CQE_END_LEN_LIST_SIZE 4104#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 4107#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 */
111enum dest_port_mode {113enum 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_MODE118 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 0169#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 0x3170#define ETH_TX_DATA_2ND_BD_TUNN_INNER_ETH_TYPE_MASK 0x3
169#define ETH_TX_DATA_2ND_BD_TUNN_INNER_ETH_TYPE_SHIFT 4171#define ETH_TX_DATA_2ND_BD_TUNN_INNER_ETH_TYPE_SHIFT 4
170#define ETH_TX_DATA_2ND_BD_DEST_PORT_MODE_MASK 0x3172#define ETH_TX_DATA_2ND_BD_DST_PORT_MODE_MASK 0x3
171#define ETH_TX_DATA_2ND_BD_DEST_PORT_MODE_SHIFT 6173#define ETH_TX_DATA_2ND_BD_DST_PORT_MODE_SHIFT 6
172#define ETH_TX_DATA_2ND_BD_START_BD_MASK 0x1174#define ETH_TX_DATA_2ND_BD_START_BD_MASK 0x1
173#define ETH_TX_DATA_2ND_BD_START_BD_SHIFT 8175#define ETH_TX_DATA_2ND_BD_START_BD_SHIFT 8
174#define ETH_TX_DATA_2ND_BD_TUNN_TYPE_MASK 0x3176#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. */
415struct 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 */
431struct 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 */
411struct eth_tx_data_bd {438struct 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_TYPE471 MAX_ETH_TX_TUNN_TYPE
444};472};
445 473
474/* Mstorm Queue Zone */
475struct 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 */
447struct xstorm_eth_queue_zone {481struct xstorm_eth_queue_zone {
448 struct coalescing_timeset int_coalescing_timeset;482 struct coalescing_timeset int_coalescing_timeset;