Deleted Added
full compact
ena_eth_io_defs.h (343397) ena_eth_io_defs.h (361467)
1/*-
2 * BSD LICENSE
3 *
1/*-
2 * BSD LICENSE
3 *
4 * Copyright (c) 2015-2017 Amazon.com, Inc. or its affiliates.
4 * Copyright (c) 2015-2019 Amazon.com, Inc. or its affiliates.
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
9 * are met:
10 *
11 * * Redistributions of source code must retain the above copyright
12 * notice, this list of conditions and the following disclaimer.

--- 16 unchanged lines hidden (view full) ---

29 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32 */
33#ifndef _ENA_ETH_IO_H_
34#define _ENA_ETH_IO_H_
35
36enum ena_eth_io_l3_proto_index {
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
9 * are met:
10 *
11 * * Redistributions of source code must retain the above copyright
12 * notice, this list of conditions and the following disclaimer.

--- 16 unchanged lines hidden (view full) ---

29 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32 */
33#ifndef _ENA_ETH_IO_H_
34#define _ENA_ETH_IO_H_
35
36enum ena_eth_io_l3_proto_index {
37 ENA_ETH_IO_L3_PROTO_UNKNOWN = 0,
38
39 ENA_ETH_IO_L3_PROTO_IPV4 = 8,
40
41 ENA_ETH_IO_L3_PROTO_IPV6 = 11,
42
43 ENA_ETH_IO_L3_PROTO_FCOE = 21,
44
45 ENA_ETH_IO_L3_PROTO_ROCE = 22,
37 ENA_ETH_IO_L3_PROTO_UNKNOWN = 0,
38 ENA_ETH_IO_L3_PROTO_IPV4 = 8,
39 ENA_ETH_IO_L3_PROTO_IPV6 = 11,
40 ENA_ETH_IO_L3_PROTO_FCOE = 21,
41 ENA_ETH_IO_L3_PROTO_ROCE = 22,
46};
47
48enum ena_eth_io_l4_proto_index {
42};
43
44enum ena_eth_io_l4_proto_index {
49 ENA_ETH_IO_L4_PROTO_UNKNOWN = 0,
50
51 ENA_ETH_IO_L4_PROTO_TCP = 12,
52
53 ENA_ETH_IO_L4_PROTO_UDP = 13,
54
55 ENA_ETH_IO_L4_PROTO_ROUTEABLE_ROCE = 23,
45 ENA_ETH_IO_L4_PROTO_UNKNOWN = 0,
46 ENA_ETH_IO_L4_PROTO_TCP = 12,
47 ENA_ETH_IO_L4_PROTO_UDP = 13,
48 ENA_ETH_IO_L4_PROTO_ROUTEABLE_ROCE = 23,
56};
57
58struct ena_eth_io_tx_desc {
59 /* 15:0 : length - Buffer length in bytes, must
60 * include any packet trailers that the ENA supposed
61 * to update like End-to-End CRC, Authentication GMAC
62 * etc. This length must not include the
63 * 'Push_Buffer' length. This length must not include

--- 174 unchanged lines hidden (view full) ---

238 * 13 : l3_csum_err - when set, either the L3
239 * checksum error detected, or, the controller didn't
240 * validate the checksum. This bit is valid only when
241 * l3_proto_idx indicates IPv4 packet
242 * 14 : l4_csum_err - when set, either the L4
243 * checksum error detected, or, the controller didn't
244 * validate the checksum. This bit is valid only when
245 * l4_proto_idx indicates TCP/UDP packet, and,
49};
50
51struct ena_eth_io_tx_desc {
52 /* 15:0 : length - Buffer length in bytes, must
53 * include any packet trailers that the ENA supposed
54 * to update like End-to-End CRC, Authentication GMAC
55 * etc. This length must not include the
56 * 'Push_Buffer' length. This length must not include

--- 174 unchanged lines hidden (view full) ---

231 * 13 : l3_csum_err - when set, either the L3
232 * checksum error detected, or, the controller didn't
233 * validate the checksum. This bit is valid only when
234 * l3_proto_idx indicates IPv4 packet
235 * 14 : l4_csum_err - when set, either the L4
236 * checksum error detected, or, the controller didn't
237 * validate the checksum. This bit is valid only when
238 * l4_proto_idx indicates TCP/UDP packet, and,
246 * ipv4_frag is not set
239 * ipv4_frag is not set. This bit is valid only when
240 * l4_csum_checked below is set.
247 * 15 : ipv4_frag - Indicates IPv4 fragmented packet
241 * 15 : ipv4_frag - Indicates IPv4 fragmented packet
248 * 23:16 : reserved16
242 * 16 : l4_csum_checked - L4 checksum was verified
243 * (could be OK or error), when cleared the status of
244 * checksum is unknown
245 * 23:17 : reserved17 - MBZ
249 * 24 : phase
250 * 25 : l3_csum2 - second checksum engine result
251 * 26 : first - Indicates first descriptor in
252 * transaction
253 * 27 : last - Indicates last descriptor in
254 * transaction
255 * 29:28 : reserved28
256 * 30 : buffer - 0: Metadata descriptor. 1: Buffer

--- 42 unchanged lines hidden (view full) ---

299 /* 7:0 : numa
300 * 30:8 : reserved
301 * 31 : enabled
302 */
303 uint32_t numa_cfg;
304};
305
306/* tx_desc */
246 * 24 : phase
247 * 25 : l3_csum2 - second checksum engine result
248 * 26 : first - Indicates first descriptor in
249 * transaction
250 * 27 : last - Indicates last descriptor in
251 * transaction
252 * 29:28 : reserved28
253 * 30 : buffer - 0: Metadata descriptor. 1: Buffer

--- 42 unchanged lines hidden (view full) ---

296 /* 7:0 : numa
297 * 30:8 : reserved
298 * 31 : enabled
299 */
300 uint32_t numa_cfg;
301};
302
303/* tx_desc */
307#define ENA_ETH_IO_TX_DESC_LENGTH_MASK GENMASK(15, 0)
308#define ENA_ETH_IO_TX_DESC_REQ_ID_HI_SHIFT 16
309#define ENA_ETH_IO_TX_DESC_REQ_ID_HI_MASK GENMASK(21, 16)
310#define ENA_ETH_IO_TX_DESC_META_DESC_SHIFT 23
311#define ENA_ETH_IO_TX_DESC_META_DESC_MASK BIT(23)
312#define ENA_ETH_IO_TX_DESC_PHASE_SHIFT 24
313#define ENA_ETH_IO_TX_DESC_PHASE_MASK BIT(24)
314#define ENA_ETH_IO_TX_DESC_FIRST_SHIFT 26
315#define ENA_ETH_IO_TX_DESC_FIRST_MASK BIT(26)
316#define ENA_ETH_IO_TX_DESC_LAST_SHIFT 27
317#define ENA_ETH_IO_TX_DESC_LAST_MASK BIT(27)
318#define ENA_ETH_IO_TX_DESC_COMP_REQ_SHIFT 28
319#define ENA_ETH_IO_TX_DESC_COMP_REQ_MASK BIT(28)
320#define ENA_ETH_IO_TX_DESC_L3_PROTO_IDX_MASK GENMASK(3, 0)
321#define ENA_ETH_IO_TX_DESC_DF_SHIFT 4
322#define ENA_ETH_IO_TX_DESC_DF_MASK BIT(4)
323#define ENA_ETH_IO_TX_DESC_TSO_EN_SHIFT 7
324#define ENA_ETH_IO_TX_DESC_TSO_EN_MASK BIT(7)
325#define ENA_ETH_IO_TX_DESC_L4_PROTO_IDX_SHIFT 8
326#define ENA_ETH_IO_TX_DESC_L4_PROTO_IDX_MASK GENMASK(12, 8)
327#define ENA_ETH_IO_TX_DESC_L3_CSUM_EN_SHIFT 13
328#define ENA_ETH_IO_TX_DESC_L3_CSUM_EN_MASK BIT(13)
329#define ENA_ETH_IO_TX_DESC_L4_CSUM_EN_SHIFT 14
330#define ENA_ETH_IO_TX_DESC_L4_CSUM_EN_MASK BIT(14)
331#define ENA_ETH_IO_TX_DESC_ETHERNET_FCS_DIS_SHIFT 15
332#define ENA_ETH_IO_TX_DESC_ETHERNET_FCS_DIS_MASK BIT(15)
333#define ENA_ETH_IO_TX_DESC_L4_CSUM_PARTIAL_SHIFT 17
334#define ENA_ETH_IO_TX_DESC_L4_CSUM_PARTIAL_MASK BIT(17)
335#define ENA_ETH_IO_TX_DESC_REQ_ID_LO_SHIFT 22
336#define ENA_ETH_IO_TX_DESC_REQ_ID_LO_MASK GENMASK(31, 22)
337#define ENA_ETH_IO_TX_DESC_ADDR_HI_MASK GENMASK(15, 0)
338#define ENA_ETH_IO_TX_DESC_HEADER_LENGTH_SHIFT 24
339#define ENA_ETH_IO_TX_DESC_HEADER_LENGTH_MASK GENMASK(31, 24)
304#define ENA_ETH_IO_TX_DESC_LENGTH_MASK GENMASK(15, 0)
305#define ENA_ETH_IO_TX_DESC_REQ_ID_HI_SHIFT 16
306#define ENA_ETH_IO_TX_DESC_REQ_ID_HI_MASK GENMASK(21, 16)
307#define ENA_ETH_IO_TX_DESC_META_DESC_SHIFT 23
308#define ENA_ETH_IO_TX_DESC_META_DESC_MASK BIT(23)
309#define ENA_ETH_IO_TX_DESC_PHASE_SHIFT 24
310#define ENA_ETH_IO_TX_DESC_PHASE_MASK BIT(24)
311#define ENA_ETH_IO_TX_DESC_FIRST_SHIFT 26
312#define ENA_ETH_IO_TX_DESC_FIRST_MASK BIT(26)
313#define ENA_ETH_IO_TX_DESC_LAST_SHIFT 27
314#define ENA_ETH_IO_TX_DESC_LAST_MASK BIT(27)
315#define ENA_ETH_IO_TX_DESC_COMP_REQ_SHIFT 28
316#define ENA_ETH_IO_TX_DESC_COMP_REQ_MASK BIT(28)
317#define ENA_ETH_IO_TX_DESC_L3_PROTO_IDX_MASK GENMASK(3, 0)
318#define ENA_ETH_IO_TX_DESC_DF_SHIFT 4
319#define ENA_ETH_IO_TX_DESC_DF_MASK BIT(4)
320#define ENA_ETH_IO_TX_DESC_TSO_EN_SHIFT 7
321#define ENA_ETH_IO_TX_DESC_TSO_EN_MASK BIT(7)
322#define ENA_ETH_IO_TX_DESC_L4_PROTO_IDX_SHIFT 8
323#define ENA_ETH_IO_TX_DESC_L4_PROTO_IDX_MASK GENMASK(12, 8)
324#define ENA_ETH_IO_TX_DESC_L3_CSUM_EN_SHIFT 13
325#define ENA_ETH_IO_TX_DESC_L3_CSUM_EN_MASK BIT(13)
326#define ENA_ETH_IO_TX_DESC_L4_CSUM_EN_SHIFT 14
327#define ENA_ETH_IO_TX_DESC_L4_CSUM_EN_MASK BIT(14)
328#define ENA_ETH_IO_TX_DESC_ETHERNET_FCS_DIS_SHIFT 15
329#define ENA_ETH_IO_TX_DESC_ETHERNET_FCS_DIS_MASK BIT(15)
330#define ENA_ETH_IO_TX_DESC_L4_CSUM_PARTIAL_SHIFT 17
331#define ENA_ETH_IO_TX_DESC_L4_CSUM_PARTIAL_MASK BIT(17)
332#define ENA_ETH_IO_TX_DESC_REQ_ID_LO_SHIFT 22
333#define ENA_ETH_IO_TX_DESC_REQ_ID_LO_MASK GENMASK(31, 22)
334#define ENA_ETH_IO_TX_DESC_ADDR_HI_MASK GENMASK(15, 0)
335#define ENA_ETH_IO_TX_DESC_HEADER_LENGTH_SHIFT 24
336#define ENA_ETH_IO_TX_DESC_HEADER_LENGTH_MASK GENMASK(31, 24)
340
341/* tx_meta_desc */
337
338/* tx_meta_desc */
342#define ENA_ETH_IO_TX_META_DESC_REQ_ID_LO_MASK GENMASK(9, 0)
343#define ENA_ETH_IO_TX_META_DESC_EXT_VALID_SHIFT 14
344#define ENA_ETH_IO_TX_META_DESC_EXT_VALID_MASK BIT(14)
345#define ENA_ETH_IO_TX_META_DESC_MSS_HI_SHIFT 16
346#define ENA_ETH_IO_TX_META_DESC_MSS_HI_MASK GENMASK(19, 16)
347#define ENA_ETH_IO_TX_META_DESC_ETH_META_TYPE_SHIFT 20
348#define ENA_ETH_IO_TX_META_DESC_ETH_META_TYPE_MASK BIT(20)
349#define ENA_ETH_IO_TX_META_DESC_META_STORE_SHIFT 21
350#define ENA_ETH_IO_TX_META_DESC_META_STORE_MASK BIT(21)
351#define ENA_ETH_IO_TX_META_DESC_META_DESC_SHIFT 23
352#define ENA_ETH_IO_TX_META_DESC_META_DESC_MASK BIT(23)
353#define ENA_ETH_IO_TX_META_DESC_PHASE_SHIFT 24
354#define ENA_ETH_IO_TX_META_DESC_PHASE_MASK BIT(24)
355#define ENA_ETH_IO_TX_META_DESC_FIRST_SHIFT 26
356#define ENA_ETH_IO_TX_META_DESC_FIRST_MASK BIT(26)
357#define ENA_ETH_IO_TX_META_DESC_LAST_SHIFT 27
358#define ENA_ETH_IO_TX_META_DESC_LAST_MASK BIT(27)
359#define ENA_ETH_IO_TX_META_DESC_COMP_REQ_SHIFT 28
360#define ENA_ETH_IO_TX_META_DESC_COMP_REQ_MASK BIT(28)
361#define ENA_ETH_IO_TX_META_DESC_REQ_ID_HI_MASK GENMASK(5, 0)
362#define ENA_ETH_IO_TX_META_DESC_L3_HDR_LEN_MASK GENMASK(7, 0)
363#define ENA_ETH_IO_TX_META_DESC_L3_HDR_OFF_SHIFT 8
364#define ENA_ETH_IO_TX_META_DESC_L3_HDR_OFF_MASK GENMASK(15, 8)
365#define ENA_ETH_IO_TX_META_DESC_L4_HDR_LEN_IN_WORDS_SHIFT 16
366#define ENA_ETH_IO_TX_META_DESC_L4_HDR_LEN_IN_WORDS_MASK GENMASK(21, 16)
367#define ENA_ETH_IO_TX_META_DESC_MSS_LO_SHIFT 22
368#define ENA_ETH_IO_TX_META_DESC_MSS_LO_MASK GENMASK(31, 22)
339#define ENA_ETH_IO_TX_META_DESC_REQ_ID_LO_MASK GENMASK(9, 0)
340#define ENA_ETH_IO_TX_META_DESC_EXT_VALID_SHIFT 14
341#define ENA_ETH_IO_TX_META_DESC_EXT_VALID_MASK BIT(14)
342#define ENA_ETH_IO_TX_META_DESC_MSS_HI_SHIFT 16
343#define ENA_ETH_IO_TX_META_DESC_MSS_HI_MASK GENMASK(19, 16)
344#define ENA_ETH_IO_TX_META_DESC_ETH_META_TYPE_SHIFT 20
345#define ENA_ETH_IO_TX_META_DESC_ETH_META_TYPE_MASK BIT(20)
346#define ENA_ETH_IO_TX_META_DESC_META_STORE_SHIFT 21
347#define ENA_ETH_IO_TX_META_DESC_META_STORE_MASK BIT(21)
348#define ENA_ETH_IO_TX_META_DESC_META_DESC_SHIFT 23
349#define ENA_ETH_IO_TX_META_DESC_META_DESC_MASK BIT(23)
350#define ENA_ETH_IO_TX_META_DESC_PHASE_SHIFT 24
351#define ENA_ETH_IO_TX_META_DESC_PHASE_MASK BIT(24)
352#define ENA_ETH_IO_TX_META_DESC_FIRST_SHIFT 26
353#define ENA_ETH_IO_TX_META_DESC_FIRST_MASK BIT(26)
354#define ENA_ETH_IO_TX_META_DESC_LAST_SHIFT 27
355#define ENA_ETH_IO_TX_META_DESC_LAST_MASK BIT(27)
356#define ENA_ETH_IO_TX_META_DESC_COMP_REQ_SHIFT 28
357#define ENA_ETH_IO_TX_META_DESC_COMP_REQ_MASK BIT(28)
358#define ENA_ETH_IO_TX_META_DESC_REQ_ID_HI_MASK GENMASK(5, 0)
359#define ENA_ETH_IO_TX_META_DESC_L3_HDR_LEN_MASK GENMASK(7, 0)
360#define ENA_ETH_IO_TX_META_DESC_L3_HDR_OFF_SHIFT 8
361#define ENA_ETH_IO_TX_META_DESC_L3_HDR_OFF_MASK GENMASK(15, 8)
362#define ENA_ETH_IO_TX_META_DESC_L4_HDR_LEN_IN_WORDS_SHIFT 16
363#define ENA_ETH_IO_TX_META_DESC_L4_HDR_LEN_IN_WORDS_MASK GENMASK(21, 16)
364#define ENA_ETH_IO_TX_META_DESC_MSS_LO_SHIFT 22
365#define ENA_ETH_IO_TX_META_DESC_MSS_LO_MASK GENMASK(31, 22)
369
370/* tx_cdesc */
366
367/* tx_cdesc */
371#define ENA_ETH_IO_TX_CDESC_PHASE_MASK BIT(0)
368#define ENA_ETH_IO_TX_CDESC_PHASE_MASK BIT(0)
372
373/* rx_desc */
369
370/* rx_desc */
374#define ENA_ETH_IO_RX_DESC_PHASE_MASK BIT(0)
375#define ENA_ETH_IO_RX_DESC_FIRST_SHIFT 2
376#define ENA_ETH_IO_RX_DESC_FIRST_MASK BIT(2)
377#define ENA_ETH_IO_RX_DESC_LAST_SHIFT 3
378#define ENA_ETH_IO_RX_DESC_LAST_MASK BIT(3)
379#define ENA_ETH_IO_RX_DESC_COMP_REQ_SHIFT 4
380#define ENA_ETH_IO_RX_DESC_COMP_REQ_MASK BIT(4)
371#define ENA_ETH_IO_RX_DESC_PHASE_MASK BIT(0)
372#define ENA_ETH_IO_RX_DESC_FIRST_SHIFT 2
373#define ENA_ETH_IO_RX_DESC_FIRST_MASK BIT(2)
374#define ENA_ETH_IO_RX_DESC_LAST_SHIFT 3
375#define ENA_ETH_IO_RX_DESC_LAST_MASK BIT(3)
376#define ENA_ETH_IO_RX_DESC_COMP_REQ_SHIFT 4
377#define ENA_ETH_IO_RX_DESC_COMP_REQ_MASK BIT(4)
381
382/* rx_cdesc_base */
378
379/* rx_cdesc_base */
383#define ENA_ETH_IO_RX_CDESC_BASE_L3_PROTO_IDX_MASK GENMASK(4, 0)
384#define ENA_ETH_IO_RX_CDESC_BASE_SRC_VLAN_CNT_SHIFT 5
385#define ENA_ETH_IO_RX_CDESC_BASE_SRC_VLAN_CNT_MASK GENMASK(6, 5)
386#define ENA_ETH_IO_RX_CDESC_BASE_L4_PROTO_IDX_SHIFT 8
387#define ENA_ETH_IO_RX_CDESC_BASE_L4_PROTO_IDX_MASK GENMASK(12, 8)
388#define ENA_ETH_IO_RX_CDESC_BASE_L3_CSUM_ERR_SHIFT 13
389#define ENA_ETH_IO_RX_CDESC_BASE_L3_CSUM_ERR_MASK BIT(13)
390#define ENA_ETH_IO_RX_CDESC_BASE_L4_CSUM_ERR_SHIFT 14
391#define ENA_ETH_IO_RX_CDESC_BASE_L4_CSUM_ERR_MASK BIT(14)
392#define ENA_ETH_IO_RX_CDESC_BASE_IPV4_FRAG_SHIFT 15
393#define ENA_ETH_IO_RX_CDESC_BASE_IPV4_FRAG_MASK BIT(15)
394#define ENA_ETH_IO_RX_CDESC_BASE_PHASE_SHIFT 24
395#define ENA_ETH_IO_RX_CDESC_BASE_PHASE_MASK BIT(24)
396#define ENA_ETH_IO_RX_CDESC_BASE_L3_CSUM2_SHIFT 25
397#define ENA_ETH_IO_RX_CDESC_BASE_L3_CSUM2_MASK BIT(25)
398#define ENA_ETH_IO_RX_CDESC_BASE_FIRST_SHIFT 26
399#define ENA_ETH_IO_RX_CDESC_BASE_FIRST_MASK BIT(26)
400#define ENA_ETH_IO_RX_CDESC_BASE_LAST_SHIFT 27
401#define ENA_ETH_IO_RX_CDESC_BASE_LAST_MASK BIT(27)
402#define ENA_ETH_IO_RX_CDESC_BASE_BUFFER_SHIFT 30
403#define ENA_ETH_IO_RX_CDESC_BASE_BUFFER_MASK BIT(30)
380#define ENA_ETH_IO_RX_CDESC_BASE_L3_PROTO_IDX_MASK GENMASK(4, 0)
381#define ENA_ETH_IO_RX_CDESC_BASE_SRC_VLAN_CNT_SHIFT 5
382#define ENA_ETH_IO_RX_CDESC_BASE_SRC_VLAN_CNT_MASK GENMASK(6, 5)
383#define ENA_ETH_IO_RX_CDESC_BASE_L4_PROTO_IDX_SHIFT 8
384#define ENA_ETH_IO_RX_CDESC_BASE_L4_PROTO_IDX_MASK GENMASK(12, 8)
385#define ENA_ETH_IO_RX_CDESC_BASE_L3_CSUM_ERR_SHIFT 13
386#define ENA_ETH_IO_RX_CDESC_BASE_L3_CSUM_ERR_MASK BIT(13)
387#define ENA_ETH_IO_RX_CDESC_BASE_L4_CSUM_ERR_SHIFT 14
388#define ENA_ETH_IO_RX_CDESC_BASE_L4_CSUM_ERR_MASK BIT(14)
389#define ENA_ETH_IO_RX_CDESC_BASE_IPV4_FRAG_SHIFT 15
390#define ENA_ETH_IO_RX_CDESC_BASE_IPV4_FRAG_MASK BIT(15)
391#define ENA_ETH_IO_RX_CDESC_BASE_L4_CSUM_CHECKED_SHIFT 16
392#define ENA_ETH_IO_RX_CDESC_BASE_L4_CSUM_CHECKED_MASK BIT(16)
393#define ENA_ETH_IO_RX_CDESC_BASE_PHASE_SHIFT 24
394#define ENA_ETH_IO_RX_CDESC_BASE_PHASE_MASK BIT(24)
395#define ENA_ETH_IO_RX_CDESC_BASE_L3_CSUM2_SHIFT 25
396#define ENA_ETH_IO_RX_CDESC_BASE_L3_CSUM2_MASK BIT(25)
397#define ENA_ETH_IO_RX_CDESC_BASE_FIRST_SHIFT 26
398#define ENA_ETH_IO_RX_CDESC_BASE_FIRST_MASK BIT(26)
399#define ENA_ETH_IO_RX_CDESC_BASE_LAST_SHIFT 27
400#define ENA_ETH_IO_RX_CDESC_BASE_LAST_MASK BIT(27)
401#define ENA_ETH_IO_RX_CDESC_BASE_BUFFER_SHIFT 30
402#define ENA_ETH_IO_RX_CDESC_BASE_BUFFER_MASK BIT(30)
404
405/* intr_reg */
403
404/* intr_reg */
406#define ENA_ETH_IO_INTR_REG_RX_INTR_DELAY_MASK GENMASK(14, 0)
407#define ENA_ETH_IO_INTR_REG_TX_INTR_DELAY_SHIFT 15
408#define ENA_ETH_IO_INTR_REG_TX_INTR_DELAY_MASK GENMASK(29, 15)
409#define ENA_ETH_IO_INTR_REG_INTR_UNMASK_SHIFT 30
410#define ENA_ETH_IO_INTR_REG_INTR_UNMASK_MASK BIT(30)
405#define ENA_ETH_IO_INTR_REG_RX_INTR_DELAY_MASK GENMASK(14, 0)
406#define ENA_ETH_IO_INTR_REG_TX_INTR_DELAY_SHIFT 15
407#define ENA_ETH_IO_INTR_REG_TX_INTR_DELAY_MASK GENMASK(29, 15)
408#define ENA_ETH_IO_INTR_REG_INTR_UNMASK_SHIFT 30
409#define ENA_ETH_IO_INTR_REG_INTR_UNMASK_MASK BIT(30)
411
412/* numa_node_cfg_reg */
410
411/* numa_node_cfg_reg */
413#define ENA_ETH_IO_NUMA_NODE_CFG_REG_NUMA_MASK GENMASK(7, 0)
414#define ENA_ETH_IO_NUMA_NODE_CFG_REG_ENABLED_SHIFT 31
415#define ENA_ETH_IO_NUMA_NODE_CFG_REG_ENABLED_MASK BIT(31)
412#define ENA_ETH_IO_NUMA_NODE_CFG_REG_NUMA_MASK GENMASK(7, 0)
413#define ENA_ETH_IO_NUMA_NODE_CFG_REG_ENABLED_SHIFT 31
414#define ENA_ETH_IO_NUMA_NODE_CFG_REG_ENABLED_MASK BIT(31)
416
415
417#if !defined(ENA_DEFS_LINUX_MAINLINE)
416#if !defined(DEFS_LINUX_MAINLINE)
418static inline uint32_t get_ena_eth_io_tx_desc_length(const struct ena_eth_io_tx_desc *p)
419{
420 return p->len_ctrl & ENA_ETH_IO_TX_DESC_LENGTH_MASK;
421}
422
423static inline void set_ena_eth_io_tx_desc_length(struct ena_eth_io_tx_desc *p, uint32_t val)
424{
425 p->len_ctrl |= val & ENA_ETH_IO_TX_DESC_LENGTH_MASK;

--- 424 unchanged lines hidden (view full) ---

850 return (p->status & ENA_ETH_IO_RX_CDESC_BASE_IPV4_FRAG_MASK) >> ENA_ETH_IO_RX_CDESC_BASE_IPV4_FRAG_SHIFT;
851}
852
853static inline void set_ena_eth_io_rx_cdesc_base_ipv4_frag(struct ena_eth_io_rx_cdesc_base *p, uint32_t val)
854{
855 p->status |= (val << ENA_ETH_IO_RX_CDESC_BASE_IPV4_FRAG_SHIFT) & ENA_ETH_IO_RX_CDESC_BASE_IPV4_FRAG_MASK;
856}
857
417static inline uint32_t get_ena_eth_io_tx_desc_length(const struct ena_eth_io_tx_desc *p)
418{
419 return p->len_ctrl & ENA_ETH_IO_TX_DESC_LENGTH_MASK;
420}
421
422static inline void set_ena_eth_io_tx_desc_length(struct ena_eth_io_tx_desc *p, uint32_t val)
423{
424 p->len_ctrl |= val & ENA_ETH_IO_TX_DESC_LENGTH_MASK;

--- 424 unchanged lines hidden (view full) ---

849 return (p->status & ENA_ETH_IO_RX_CDESC_BASE_IPV4_FRAG_MASK) >> ENA_ETH_IO_RX_CDESC_BASE_IPV4_FRAG_SHIFT;
850}
851
852static inline void set_ena_eth_io_rx_cdesc_base_ipv4_frag(struct ena_eth_io_rx_cdesc_base *p, uint32_t val)
853{
854 p->status |= (val << ENA_ETH_IO_RX_CDESC_BASE_IPV4_FRAG_SHIFT) & ENA_ETH_IO_RX_CDESC_BASE_IPV4_FRAG_MASK;
855}
856
857static inline uint32_t get_ena_eth_io_rx_cdesc_base_l4_csum_checked(const struct ena_eth_io_rx_cdesc_base *p)
858{
859 return (p->status & ENA_ETH_IO_RX_CDESC_BASE_L4_CSUM_CHECKED_MASK) >> ENA_ETH_IO_RX_CDESC_BASE_L4_CSUM_CHECKED_SHIFT;
860}
861
862static inline void set_ena_eth_io_rx_cdesc_base_l4_csum_checked(struct ena_eth_io_rx_cdesc_base *p, uint32_t val)
863{
864 p->status |= (val << ENA_ETH_IO_RX_CDESC_BASE_L4_CSUM_CHECKED_SHIFT) & ENA_ETH_IO_RX_CDESC_BASE_L4_CSUM_CHECKED_MASK;
865}
866
858static inline uint32_t get_ena_eth_io_rx_cdesc_base_phase(const struct ena_eth_io_rx_cdesc_base *p)
859{
860 return (p->status & ENA_ETH_IO_RX_CDESC_BASE_PHASE_MASK) >> ENA_ETH_IO_RX_CDESC_BASE_PHASE_SHIFT;
861}
862
863static inline void set_ena_eth_io_rx_cdesc_base_phase(struct ena_eth_io_rx_cdesc_base *p, uint32_t val)
864{
865 p->status |= (val << ENA_ETH_IO_RX_CDESC_BASE_PHASE_SHIFT) & ENA_ETH_IO_RX_CDESC_BASE_PHASE_MASK;

--- 84 unchanged lines hidden (view full) ---

950 return (p->numa_cfg & ENA_ETH_IO_NUMA_NODE_CFG_REG_ENABLED_MASK) >> ENA_ETH_IO_NUMA_NODE_CFG_REG_ENABLED_SHIFT;
951}
952
953static inline void set_ena_eth_io_numa_node_cfg_reg_enabled(struct ena_eth_io_numa_node_cfg_reg *p, uint32_t val)
954{
955 p->numa_cfg |= (val << ENA_ETH_IO_NUMA_NODE_CFG_REG_ENABLED_SHIFT) & ENA_ETH_IO_NUMA_NODE_CFG_REG_ENABLED_MASK;
956}
957
867static inline uint32_t get_ena_eth_io_rx_cdesc_base_phase(const struct ena_eth_io_rx_cdesc_base *p)
868{
869 return (p->status & ENA_ETH_IO_RX_CDESC_BASE_PHASE_MASK) >> ENA_ETH_IO_RX_CDESC_BASE_PHASE_SHIFT;
870}
871
872static inline void set_ena_eth_io_rx_cdesc_base_phase(struct ena_eth_io_rx_cdesc_base *p, uint32_t val)
873{
874 p->status |= (val << ENA_ETH_IO_RX_CDESC_BASE_PHASE_SHIFT) & ENA_ETH_IO_RX_CDESC_BASE_PHASE_MASK;

--- 84 unchanged lines hidden (view full) ---

959 return (p->numa_cfg & ENA_ETH_IO_NUMA_NODE_CFG_REG_ENABLED_MASK) >> ENA_ETH_IO_NUMA_NODE_CFG_REG_ENABLED_SHIFT;
960}
961
962static inline void set_ena_eth_io_numa_node_cfg_reg_enabled(struct ena_eth_io_numa_node_cfg_reg *p, uint32_t val)
963{
964 p->numa_cfg |= (val << ENA_ETH_IO_NUMA_NODE_CFG_REG_ENABLED_SHIFT) & ENA_ETH_IO_NUMA_NODE_CFG_REG_ENABLED_MASK;
965}
966
958#endif /* !defined(ENA_DEFS_LINUX_MAINLINE) */
967#endif /* !defined(DEFS_LINUX_MAINLINE) */
959#endif /*_ENA_ETH_IO_H_ */
968#endif /*_ENA_ETH_IO_H_ */