Skip to content

Commit 13d2d3d

Browse files
Michael Chankuba-moo
Michael Chan
authored andcommitted
bnxt_en: Add new P7 hardware interface definitions
Add new RX, TX, and TPA hardware interface structures and macros for the P7 chips. Reviewed-by: Andy Gospodarek <[email protected]> Signed-off-by: Michael Chan <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
1 parent 8243345 commit 13d2d3d

File tree

1 file changed

+84
-1
lines changed
  • drivers/net/ethernet/broadcom/bnxt

1 file changed

+84
-1
lines changed

drivers/net/ethernet/broadcom/bnxt/bnxt.h

Lines changed: 84 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,11 +139,15 @@ struct tx_cmp {
139139
__le32 tx_cmp_flags_type;
140140
#define CMP_TYPE (0x3f << 0)
141141
#define CMP_TYPE_TX_L2_CMP 0
142+
#define CMP_TYPE_TX_L2_COAL_CMP 2
143+
#define CMP_TYPE_TX_L2_PKT_TS_CMP 4
142144
#define CMP_TYPE_RX_L2_CMP 17
143145
#define CMP_TYPE_RX_AGG_CMP 18
144146
#define CMP_TYPE_RX_L2_TPA_START_CMP 19
145147
#define CMP_TYPE_RX_L2_TPA_END_CMP 21
146148
#define CMP_TYPE_RX_TPA_AGG_CMP 22
149+
#define CMP_TYPE_RX_L2_V3_CMP 23
150+
#define CMP_TYPE_RX_L2_TPA_START_V3_CMP 25
147151
#define CMP_TYPE_STATUS_CMP 32
148152
#define CMP_TYPE_REMOTE_DRIVER_REQ 34
149153
#define CMP_TYPE_REMOTE_DRIVER_RESP 36
@@ -170,9 +174,13 @@ struct tx_cmp {
170174
#define TX_CMP_ERRORS_DMA_ERROR (1 << 6)
171175
#define TX_CMP_ERRORS_HINT_TOO_SHORT (1 << 7)
172176

173-
__le32 tx_cmp_unsed_3;
177+
__le32 sq_cons_idx;
178+
#define TX_CMP_SQ_CONS_IDX_MASK 0x00ffffff
174179
};
175180

181+
#define TX_CMP_SQ_CONS_IDX(txcmp) \
182+
(le32_to_cpu((txcmp)->sq_cons_idx) & TX_CMP_SQ_CONS_IDX_MASK)
183+
176184
struct rx_cmp {
177185
__le32 rx_cmp_len_flags_type;
178186
#define RX_CMP_CMP_TYPE (0x3f << 0)
@@ -200,8 +208,20 @@ struct rx_cmp {
200208
#define RX_CMP_AGG_BUFS_SHIFT 1
201209
#define RX_CMP_RSS_HASH_TYPE (0x7f << 9)
202210
#define RX_CMP_RSS_HASH_TYPE_SHIFT 9
211+
#define RX_CMP_V3_RSS_EXT_OP_LEGACY (0xf << 12)
212+
#define RX_CMP_V3_RSS_EXT_OP_LEGACY_SHIFT 12
213+
#define RX_CMP_V3_RSS_EXT_OP_NEW (0xf << 8)
214+
#define RX_CMP_V3_RSS_EXT_OP_NEW_SHIFT 8
203215
#define RX_CMP_PAYLOAD_OFFSET (0xff << 16)
204216
#define RX_CMP_PAYLOAD_OFFSET_SHIFT 16
217+
#define RX_CMP_SUB_NS_TS (0xf << 16)
218+
#define RX_CMP_SUB_NS_TS_SHIFT 16
219+
#define RX_CMP_METADATA1 (0xf << 28)
220+
#define RX_CMP_METADATA1_SHIFT 28
221+
#define RX_CMP_METADATA1_TPID_SEL (0x7 << 28)
222+
#define RX_CMP_METADATA1_TPID_8021Q (0x1 << 28)
223+
#define RX_CMP_METADATA1_TPID_8021AD (0x0 << 28)
224+
#define RX_CMP_METADATA1_VALID (0x8 << 28)
205225

206226
__le32 rx_cmp_rss_hash;
207227
};
@@ -215,6 +235,30 @@ struct rx_cmp {
215235
(((le32_to_cpu((rxcmp)->rx_cmp_misc_v1) & RX_CMP_RSS_HASH_TYPE) >>\
216236
RX_CMP_RSS_HASH_TYPE_SHIFT) & RSS_PROFILE_ID_MASK)
217237

238+
#define RX_CMP_V3_HASH_TYPE_LEGACY(rxcmp) \
239+
((le32_to_cpu((rxcmp)->rx_cmp_misc_v1) & RX_CMP_V3_RSS_EXT_OP_LEGACY) >>\
240+
RX_CMP_V3_RSS_EXT_OP_LEGACY_SHIFT)
241+
242+
#define RX_CMP_V3_HASH_TYPE_NEW(rxcmp) \
243+
((le32_to_cpu((rxcmp)->rx_cmp_misc_v1) & RX_CMP_V3_RSS_EXT_OP_NEW) >>\
244+
RX_CMP_V3_RSS_EXT_OP_NEW_SHIFT)
245+
246+
#define RX_CMP_V3_HASH_TYPE(bp, rxcmp) \
247+
(((bp)->rss_cap & BNXT_RSS_CAP_RSS_TCAM) ? \
248+
RX_CMP_V3_HASH_TYPE_NEW(rxcmp) : \
249+
RX_CMP_V3_HASH_TYPE_LEGACY(rxcmp))
250+
251+
#define EXT_OP_INNER_4 0x0
252+
#define EXT_OP_OUTER_4 0x2
253+
#define EXT_OP_INNFL_3 0x8
254+
#define EXT_OP_OUTFL_3 0xa
255+
256+
#define RX_CMP_VLAN_VALID(rxcmp) \
257+
((rxcmp)->rx_cmp_misc_v1 & cpu_to_le32(RX_CMP_METADATA1_VALID))
258+
259+
#define RX_CMP_VLAN_TPID_SEL(rxcmp) \
260+
(le32_to_cpu((rxcmp)->rx_cmp_misc_v1) & RX_CMP_METADATA1_TPID_SEL)
261+
218262
struct rx_cmp_ext {
219263
__le32 rx_cmp_flags2;
220264
#define RX_CMP_FLAGS2_IP_CS_CALC 0x1
@@ -262,6 +306,9 @@ struct rx_cmp_ext {
262306

263307
#define RX_CMPL_CFA_CODE_MASK (0xffff << 16)
264308
#define RX_CMPL_CFA_CODE_SFT 16
309+
#define RX_CMPL_METADATA0_TCI_MASK (0xffff << 16)
310+
#define RX_CMPL_METADATA0_VID_MASK (0x0fff << 16)
311+
#define RX_CMPL_METADATA0_SFT 16
265312

266313
__le32 rx_cmp_timestamp;
267314
};
@@ -287,6 +334,10 @@ struct rx_cmp_ext {
287334
((le32_to_cpu((rxcmpl1)->rx_cmp_cfa_code_errors_v2) & \
288335
RX_CMPL_CFA_CODE_MASK) >> RX_CMPL_CFA_CODE_SFT)
289336

337+
#define RX_CMP_METADATA0_TCI(rxcmp1) \
338+
((le32_to_cpu((rxcmp1)->rx_cmp_cfa_code_errors_v2) & \
339+
RX_CMPL_METADATA0_TCI_MASK) >> RX_CMPL_METADATA0_SFT)
340+
290341
struct rx_agg_cmp {
291342
__le32 rx_agg_cmp_len_flags_type;
292343
#define RX_AGG_CMP_TYPE (0x3f << 0)
@@ -329,10 +380,18 @@ struct rx_tpa_start_cmp {
329380
#define RX_TPA_START_CMP_V1 (0x1 << 0)
330381
#define RX_TPA_START_CMP_RSS_HASH_TYPE (0x7f << 9)
331382
#define RX_TPA_START_CMP_RSS_HASH_TYPE_SHIFT 9
383+
#define RX_TPA_START_CMP_V3_RSS_HASH_TYPE (0x1ff << 7)
384+
#define RX_TPA_START_CMP_V3_RSS_HASH_TYPE_SHIFT 7
332385
#define RX_TPA_START_CMP_AGG_ID (0x7f << 25)
333386
#define RX_TPA_START_CMP_AGG_ID_SHIFT 25
334387
#define RX_TPA_START_CMP_AGG_ID_P5 (0xffff << 16)
335388
#define RX_TPA_START_CMP_AGG_ID_SHIFT_P5 16
389+
#define RX_TPA_START_CMP_METADATA1 (0xf << 28)
390+
#define RX_TPA_START_CMP_METADATA1_SHIFT 28
391+
#define RX_TPA_START_METADATA1_TPID_SEL (0x7 << 28)
392+
#define RX_TPA_START_METADATA1_TPID_8021Q (0x1 << 28)
393+
#define RX_TPA_START_METADATA1_TPID_8021AD (0x0 << 28)
394+
#define RX_TPA_START_METADATA1_VALID (0x8 << 28)
336395

337396
__le32 rx_tpa_start_cmp_rss_hash;
338397
};
@@ -346,6 +405,11 @@ struct rx_tpa_start_cmp {
346405
RX_TPA_START_CMP_RSS_HASH_TYPE) >> \
347406
RX_TPA_START_CMP_RSS_HASH_TYPE_SHIFT) & RSS_PROFILE_ID_MASK)
348407

408+
#define TPA_START_V3_HASH_TYPE(rx_tpa_start) \
409+
(((le32_to_cpu((rx_tpa_start)->rx_tpa_start_cmp_misc_v1) & \
410+
RX_TPA_START_CMP_V3_RSS_HASH_TYPE) >> \
411+
RX_TPA_START_CMP_V3_RSS_HASH_TYPE_SHIFT) & RSS_PROFILE_ID_MASK)
412+
349413
#define TPA_START_AGG_ID(rx_tpa_start) \
350414
((le32_to_cpu((rx_tpa_start)->rx_tpa_start_cmp_misc_v1) & \
351415
RX_TPA_START_CMP_AGG_ID) >> RX_TPA_START_CMP_AGG_ID_SHIFT)
@@ -358,6 +422,14 @@ struct rx_tpa_start_cmp {
358422
((rx_tpa_start)->rx_tpa_start_cmp_len_flags_type & \
359423
cpu_to_le32(RX_TPA_START_CMP_FLAGS_ERROR))
360424

425+
#define TPA_START_VLAN_VALID(rx_tpa_start) \
426+
((rx_tpa_start)->rx_tpa_start_cmp_misc_v1 & \
427+
cpu_to_le32(RX_TPA_START_METADATA1_VALID))
428+
429+
#define TPA_START_VLAN_TPID_SEL(rx_tpa_start) \
430+
(le32_to_cpu((rx_tpa_start)->rx_tpa_start_cmp_misc_v1) & \
431+
RX_TPA_START_METADATA1_TPID_SEL)
432+
361433
struct rx_tpa_start_cmp_ext {
362434
__le32 rx_tpa_start_cmp_flags2;
363435
#define RX_TPA_START_CMP_FLAGS2_IP_CS_CALC (0x1 << 0)
@@ -368,6 +440,8 @@ struct rx_tpa_start_cmp_ext {
368440
#define RX_TPA_START_CMP_FLAGS2_CSUM_CMPL_VALID (0x1 << 9)
369441
#define RX_TPA_START_CMP_FLAGS2_EXT_META_FORMAT (0x3 << 10)
370442
#define RX_TPA_START_CMP_FLAGS2_EXT_META_FORMAT_SHIFT 10
443+
#define RX_TPA_START_CMP_V3_FLAGS2_T_IP_TYPE (0x1 << 10)
444+
#define RX_TPA_START_CMP_V3_FLAGS2_AGG_GRO (0x1 << 11)
371445
#define RX_TPA_START_CMP_FLAGS2_CSUM_CMPL (0xffff << 16)
372446
#define RX_TPA_START_CMP_FLAGS2_CSUM_CMPL_SHIFT 16
373447

@@ -381,6 +455,9 @@ struct rx_tpa_start_cmp_ext {
381455
#define RX_TPA_START_CMP_ERRORS_BUFFER_ERROR_FLUSH (0x5 << 1)
382456
#define RX_TPA_START_CMP_CFA_CODE (0xffff << 16)
383457
#define RX_TPA_START_CMPL_CFA_CODE_SHIFT 16
458+
#define RX_TPA_START_CMP_METADATA0_TCI_MASK (0xffff << 16)
459+
#define RX_TPA_START_CMP_METADATA0_VID_MASK (0x0fff << 16)
460+
#define RX_TPA_START_CMP_METADATA0_SFT 16
384461
__le32 rx_tpa_start_cmp_hdr_info;
385462
};
386463

@@ -397,6 +474,11 @@ struct rx_tpa_start_cmp_ext {
397474
RX_TPA_START_CMP_ERRORS_BUFFER_ERROR_MASK) >> \
398475
RX_TPA_START_CMP_ERRORS_BUFFER_ERROR_SHIFT)
399476

477+
#define TPA_START_METADATA0_TCI(rx_tpa_start) \
478+
((le32_to_cpu((rx_tpa_start)->rx_tpa_start_cmp_cfa_code_v2) & \
479+
RX_TPA_START_CMP_METADATA0_TCI_MASK) >> \
480+
RX_TPA_START_CMP_METADATA0_SFT)
481+
400482
struct rx_tpa_end_cmp {
401483
__le32 rx_tpa_end_cmp_len_flags_type;
402484
#define RX_TPA_END_CMP_TYPE (0x3f << 0)
@@ -2023,6 +2105,7 @@ struct bnxt {
20232105
#define BNXT_RSS_CAP_RSS_HASH_TYPE_DELTA BIT(0)
20242106
#define BNXT_RSS_CAP_UDP_RSS_CAP BIT(1)
20252107
#define BNXT_RSS_CAP_NEW_RSS_CAP BIT(2)
2108+
#define BNXT_RSS_CAP_RSS_TCAM BIT(3)
20262109

20272110
u16 max_mtu;
20282111
u8 max_tc;

0 commit comments

Comments
 (0)