|
@@ -36,8 +36,6 @@
|
|
#include "bfa_defs.h"
|
|
#include "bfa_defs.h"
|
|
#include "bfi.h"
|
|
#include "bfi.h"
|
|
|
|
|
|
-#pragma pack(1)
|
|
|
|
-
|
|
|
|
#define BFI_ENET_CFG_MAX 32 /* Max resources per PF */
|
|
#define BFI_ENET_CFG_MAX 32 /* Max resources per PF */
|
|
|
|
|
|
#define BFI_ENET_TXQ_PRIO_MAX 8
|
|
#define BFI_ENET_TXQ_PRIO_MAX 8
|
|
@@ -59,8 +57,8 @@ union bfi_addr_be_u {
|
|
struct {
|
|
struct {
|
|
u32 addr_hi; /* Most Significant 32-bits */
|
|
u32 addr_hi; /* Most Significant 32-bits */
|
|
u32 addr_lo; /* Least Significant 32-Bits */
|
|
u32 addr_lo; /* Least Significant 32-Bits */
|
|
- } a32;
|
|
|
|
-};
|
|
|
|
|
|
+ } __packed a32;
|
|
|
|
+} __packed;
|
|
|
|
|
|
/* T X Q U E U E D E F I N E S */
|
|
/* T X Q U E U E D E F I N E S */
|
|
/* TxQ Vector (a.k.a. Tx-Buffer Descriptor) */
|
|
/* TxQ Vector (a.k.a. Tx-Buffer Descriptor) */
|
|
@@ -88,28 +86,28 @@ struct bfi_enet_txq_wi_base {
|
|
u16 vlan_tag;
|
|
u16 vlan_tag;
|
|
u16 lso_mss; /* Only 14 LSB are valid */
|
|
u16 lso_mss; /* Only 14 LSB are valid */
|
|
u32 frame_length; /* Only 24 LSB are valid */
|
|
u32 frame_length; /* Only 24 LSB are valid */
|
|
-};
|
|
|
|
|
|
+} __packed;
|
|
|
|
|
|
struct bfi_enet_txq_wi_ext {
|
|
struct bfi_enet_txq_wi_ext {
|
|
u16 reserved;
|
|
u16 reserved;
|
|
u16 opcode; /* BFI_ENET_TXQ_WI_EXTENSION */
|
|
u16 opcode; /* BFI_ENET_TXQ_WI_EXTENSION */
|
|
u32 reserved2[3];
|
|
u32 reserved2[3];
|
|
-};
|
|
|
|
|
|
+} __packed;
|
|
|
|
|
|
struct bfi_enet_txq_wi_vector { /* Tx Buffer Descriptor */
|
|
struct bfi_enet_txq_wi_vector { /* Tx Buffer Descriptor */
|
|
u16 reserved;
|
|
u16 reserved;
|
|
u16 length; /* Only 14 LSB are valid */
|
|
u16 length; /* Only 14 LSB are valid */
|
|
union bfi_addr_be_u addr;
|
|
union bfi_addr_be_u addr;
|
|
-};
|
|
|
|
|
|
+} __packed;
|
|
|
|
|
|
/* TxQ Entry Structure */
|
|
/* TxQ Entry Structure */
|
|
struct bfi_enet_txq_entry {
|
|
struct bfi_enet_txq_entry {
|
|
union {
|
|
union {
|
|
struct bfi_enet_txq_wi_base base;
|
|
struct bfi_enet_txq_wi_base base;
|
|
struct bfi_enet_txq_wi_ext ext;
|
|
struct bfi_enet_txq_wi_ext ext;
|
|
- } wi;
|
|
|
|
|
|
+ } __packed wi;
|
|
struct bfi_enet_txq_wi_vector vector[BFI_ENET_TXQ_WI_VECT_MAX];
|
|
struct bfi_enet_txq_wi_vector vector[BFI_ENET_TXQ_WI_VECT_MAX];
|
|
-};
|
|
|
|
|
|
+} __packed;
|
|
|
|
|
|
#define wi_hdr wi.base
|
|
#define wi_hdr wi.base
|
|
#define wi_ext_hdr wi.ext
|
|
#define wi_ext_hdr wi.ext
|
|
@@ -120,7 +118,7 @@ struct bfi_enet_txq_entry {
|
|
/* R X Q U E U E D E F I N E S */
|
|
/* R X Q U E U E D E F I N E S */
|
|
struct bfi_enet_rxq_entry {
|
|
struct bfi_enet_rxq_entry {
|
|
union bfi_addr_be_u rx_buffer;
|
|
union bfi_addr_be_u rx_buffer;
|
|
-};
|
|
|
|
|
|
+} __packed;
|
|
|
|
|
|
/* R X C O M P L E T I O N Q U E U E D E F I N E S */
|
|
/* R X C O M P L E T I O N Q U E U E D E F I N E S */
|
|
/* CQ Entry Flags */
|
|
/* CQ Entry Flags */
|
|
@@ -161,7 +159,7 @@ struct bfi_enet_cq_entry {
|
|
u8 reserved1;
|
|
u8 reserved1;
|
|
u8 reserved2;
|
|
u8 reserved2;
|
|
u8 rxq_id;
|
|
u8 rxq_id;
|
|
-};
|
|
|
|
|
|
+} __packed;
|
|
|
|
|
|
/* E N E T C O N T R O L P A T H C O M M A N D S */
|
|
/* E N E T C O N T R O L P A T H C O M M A N D S */
|
|
struct bfi_enet_q {
|
|
struct bfi_enet_q {
|
|
@@ -169,23 +167,23 @@ struct bfi_enet_q {
|
|
union bfi_addr_u first_entry;
|
|
union bfi_addr_u first_entry;
|
|
u16 pages; /* # of pages */
|
|
u16 pages; /* # of pages */
|
|
u16 page_sz;
|
|
u16 page_sz;
|
|
-};
|
|
|
|
|
|
+} __packed;
|
|
|
|
|
|
struct bfi_enet_txq {
|
|
struct bfi_enet_txq {
|
|
struct bfi_enet_q q;
|
|
struct bfi_enet_q q;
|
|
u8 priority;
|
|
u8 priority;
|
|
u8 rsvd[3];
|
|
u8 rsvd[3];
|
|
-};
|
|
|
|
|
|
+} __packed;
|
|
|
|
|
|
struct bfi_enet_rxq {
|
|
struct bfi_enet_rxq {
|
|
struct bfi_enet_q q;
|
|
struct bfi_enet_q q;
|
|
u16 rx_buffer_size;
|
|
u16 rx_buffer_size;
|
|
u16 rsvd;
|
|
u16 rsvd;
|
|
-};
|
|
|
|
|
|
+} __packed;
|
|
|
|
|
|
struct bfi_enet_cq {
|
|
struct bfi_enet_cq {
|
|
struct bfi_enet_q q;
|
|
struct bfi_enet_q q;
|
|
-};
|
|
|
|
|
|
+} __packed;
|
|
|
|
|
|
struct bfi_enet_ib_cfg {
|
|
struct bfi_enet_ib_cfg {
|
|
u8 int_pkt_dma;
|
|
u8 int_pkt_dma;
|
|
@@ -198,16 +196,16 @@ struct bfi_enet_ib_cfg {
|
|
u32 inter_pkt_timeout;
|
|
u32 inter_pkt_timeout;
|
|
u8 inter_pkt_count;
|
|
u8 inter_pkt_count;
|
|
u8 rsvd1[3];
|
|
u8 rsvd1[3];
|
|
-};
|
|
|
|
|
|
+} __packed;
|
|
|
|
|
|
struct bfi_enet_ib {
|
|
struct bfi_enet_ib {
|
|
union bfi_addr_u index_addr;
|
|
union bfi_addr_u index_addr;
|
|
union {
|
|
union {
|
|
u16 msix_index;
|
|
u16 msix_index;
|
|
u16 intx_bitmask;
|
|
u16 intx_bitmask;
|
|
- } intr;
|
|
|
|
|
|
+ } __packed intr;
|
|
u16 rsvd;
|
|
u16 rsvd;
|
|
-};
|
|
|
|
|
|
+} __packed;
|
|
|
|
|
|
/* ENET command messages */
|
|
/* ENET command messages */
|
|
enum bfi_enet_h2i_msgs {
|
|
enum bfi_enet_h2i_msgs {
|
|
@@ -355,7 +353,7 @@ enum bfi_enet_err {
|
|
*/
|
|
*/
|
|
struct bfi_enet_req {
|
|
struct bfi_enet_req {
|
|
struct bfi_msgq_mhdr mh;
|
|
struct bfi_msgq_mhdr mh;
|
|
-};
|
|
|
|
|
|
+} __packed;
|
|
|
|
|
|
/* Enable/Disable Request
|
|
/* Enable/Disable Request
|
|
*
|
|
*
|
|
@@ -370,7 +368,7 @@ struct bfi_enet_enable_req {
|
|
struct bfi_msgq_mhdr mh;
|
|
struct bfi_msgq_mhdr mh;
|
|
u8 enable; /* 1 = enable; 0 = disable */
|
|
u8 enable; /* 1 = enable; 0 = disable */
|
|
u8 rsvd[3];
|
|
u8 rsvd[3];
|
|
-};
|
|
|
|
|
|
+} __packed;
|
|
|
|
|
|
/* Generic Response */
|
|
/* Generic Response */
|
|
struct bfi_enet_rsp {
|
|
struct bfi_enet_rsp {
|
|
@@ -378,7 +376,7 @@ struct bfi_enet_rsp {
|
|
u8 error; /*!< if error see cmd_offset */
|
|
u8 error; /*!< if error see cmd_offset */
|
|
u8 rsvd;
|
|
u8 rsvd;
|
|
u16 cmd_offset; /*!< offset to invalid parameter */
|
|
u16 cmd_offset; /*!< offset to invalid parameter */
|
|
-};
|
|
|
|
|
|
+} __packed;
|
|
|
|
|
|
/* GLOBAL CONFIGURATION */
|
|
/* GLOBAL CONFIGURATION */
|
|
|
|
|
|
@@ -387,7 +385,7 @@ struct bfi_enet_rsp {
|
|
*/
|
|
*/
|
|
struct bfi_enet_attr_req {
|
|
struct bfi_enet_attr_req {
|
|
struct bfi_msgq_mhdr mh;
|
|
struct bfi_msgq_mhdr mh;
|
|
-};
|
|
|
|
|
|
+} __packed;
|
|
|
|
|
|
/* bfi_enet_attr_rsp is used by:
|
|
/* bfi_enet_attr_rsp is used by:
|
|
* BFI_ENET_I2H_GET_ATTR_RSP
|
|
* BFI_ENET_I2H_GET_ATTR_RSP
|
|
@@ -400,7 +398,7 @@ struct bfi_enet_attr_rsp {
|
|
u32 max_cfg;
|
|
u32 max_cfg;
|
|
u32 max_ucmac;
|
|
u32 max_ucmac;
|
|
u32 rit_size;
|
|
u32 rit_size;
|
|
-};
|
|
|
|
|
|
+} __packed;
|
|
|
|
|
|
/* Tx Configuration
|
|
/* Tx Configuration
|
|
*
|
|
*
|
|
@@ -421,7 +419,7 @@ struct bfi_enet_tx_cfg {
|
|
u8 apply_vlan_filter;
|
|
u8 apply_vlan_filter;
|
|
u8 add_to_vswitch;
|
|
u8 add_to_vswitch;
|
|
u8 rsvd1[1];
|
|
u8 rsvd1[1];
|
|
-};
|
|
|
|
|
|
+} __packed;
|
|
|
|
|
|
struct bfi_enet_tx_cfg_req {
|
|
struct bfi_enet_tx_cfg_req {
|
|
struct bfi_msgq_mhdr mh;
|
|
struct bfi_msgq_mhdr mh;
|
|
@@ -431,7 +429,7 @@ struct bfi_enet_tx_cfg_req {
|
|
struct {
|
|
struct {
|
|
struct bfi_enet_txq q;
|
|
struct bfi_enet_txq q;
|
|
struct bfi_enet_ib ib;
|
|
struct bfi_enet_ib ib;
|
|
- } q_cfg[BFI_ENET_TXQ_PRIO_MAX];
|
|
|
|
|
|
+ } __packed q_cfg[BFI_ENET_TXQ_PRIO_MAX];
|
|
|
|
|
|
struct bfi_enet_ib_cfg ib_cfg;
|
|
struct bfi_enet_ib_cfg ib_cfg;
|
|
|
|
|
|
@@ -448,7 +446,7 @@ struct bfi_enet_tx_cfg_rsp {
|
|
u32 i_dbell; /* PCI base address offset */
|
|
u32 i_dbell; /* PCI base address offset */
|
|
u8 hw_qid; /* For debugging */
|
|
u8 hw_qid; /* For debugging */
|
|
u8 rsvd[3];
|
|
u8 rsvd[3];
|
|
- } q_handles[BFI_ENET_TXQ_PRIO_MAX];
|
|
|
|
|
|
+ } __packed q_handles[BFI_ENET_TXQ_PRIO_MAX];
|
|
};
|
|
};
|
|
|
|
|
|
/* Rx Configuration
|
|
/* Rx Configuration
|
|
@@ -481,13 +479,13 @@ struct bfi_enet_rx_cfg {
|
|
u8 force_offset;
|
|
u8 force_offset;
|
|
u8 type;
|
|
u8 type;
|
|
u8 rsvd1;
|
|
u8 rsvd1;
|
|
- } hds;
|
|
|
|
|
|
+ } __packed hds;
|
|
|
|
|
|
u8 multi_buffer;
|
|
u8 multi_buffer;
|
|
u8 strip_vlan;
|
|
u8 strip_vlan;
|
|
u8 drop_untagged;
|
|
u8 drop_untagged;
|
|
u8 rsvd2;
|
|
u8 rsvd2;
|
|
-};
|
|
|
|
|
|
+} __packed;
|
|
|
|
|
|
/*
|
|
/*
|
|
* Multicast frames are received on the ql of q-set index zero.
|
|
* Multicast frames are received on the ql of q-set index zero.
|
|
@@ -504,12 +502,12 @@ struct bfi_enet_rx_cfg_req {
|
|
struct bfi_enet_rxq qs; /* small/header buffers */
|
|
struct bfi_enet_rxq qs; /* small/header buffers */
|
|
struct bfi_enet_cq cq;
|
|
struct bfi_enet_cq cq;
|
|
struct bfi_enet_ib ib;
|
|
struct bfi_enet_ib ib;
|
|
- } q_cfg[BFI_ENET_RX_QSET_MAX];
|
|
|
|
|
|
+ } __packed q_cfg[BFI_ENET_RX_QSET_MAX];
|
|
|
|
|
|
struct bfi_enet_ib_cfg ib_cfg;
|
|
struct bfi_enet_ib_cfg ib_cfg;
|
|
|
|
|
|
struct bfi_enet_rx_cfg rx_cfg;
|
|
struct bfi_enet_rx_cfg rx_cfg;
|
|
-};
|
|
|
|
|
|
+} __packed;
|
|
|
|
|
|
struct bfi_enet_rx_cfg_rsp {
|
|
struct bfi_enet_rx_cfg_rsp {
|
|
struct bfi_msgq_mhdr mh;
|
|
struct bfi_msgq_mhdr mh;
|
|
@@ -524,8 +522,8 @@ struct bfi_enet_rx_cfg_rsp {
|
|
u8 hw_sqid; /* For debugging */
|
|
u8 hw_sqid; /* For debugging */
|
|
u8 hw_cqid; /* For debugging */
|
|
u8 hw_cqid; /* For debugging */
|
|
u8 rsvd;
|
|
u8 rsvd;
|
|
- } q_handles[BFI_ENET_RX_QSET_MAX];
|
|
|
|
-};
|
|
|
|
|
|
+ } __packed q_handles[BFI_ENET_RX_QSET_MAX];
|
|
|
|
+} __packed;
|
|
|
|
|
|
/* RIT
|
|
/* RIT
|
|
*
|
|
*
|
|
@@ -537,7 +535,7 @@ struct bfi_enet_rit_req {
|
|
u16 size; /* number of table-entries used */
|
|
u16 size; /* number of table-entries used */
|
|
u8 rsvd[2];
|
|
u8 rsvd[2];
|
|
u8 table[BFI_ENET_RSS_RIT_MAX];
|
|
u8 table[BFI_ENET_RSS_RIT_MAX];
|
|
-};
|
|
|
|
|
|
+} __packed;
|
|
|
|
|
|
/* RSS
|
|
/* RSS
|
|
*
|
|
*
|
|
@@ -556,12 +554,12 @@ struct bfi_enet_rss_cfg {
|
|
u8 mask;
|
|
u8 mask;
|
|
u8 rsvd[2];
|
|
u8 rsvd[2];
|
|
u32 key[BFI_ENET_RSS_KEY_LEN];
|
|
u32 key[BFI_ENET_RSS_KEY_LEN];
|
|
-};
|
|
|
|
|
|
+} __packed;
|
|
|
|
|
|
struct bfi_enet_rss_cfg_req {
|
|
struct bfi_enet_rss_cfg_req {
|
|
struct bfi_msgq_mhdr mh;
|
|
struct bfi_msgq_mhdr mh;
|
|
struct bfi_enet_rss_cfg cfg;
|
|
struct bfi_enet_rss_cfg cfg;
|
|
-};
|
|
|
|
|
|
+} __packed;
|
|
|
|
|
|
/* MAC Unicast
|
|
/* MAC Unicast
|
|
*
|
|
*
|
|
@@ -575,14 +573,14 @@ struct bfi_enet_ucast_req {
|
|
struct bfi_msgq_mhdr mh;
|
|
struct bfi_msgq_mhdr mh;
|
|
u8 mac_addr[ETH_ALEN];
|
|
u8 mac_addr[ETH_ALEN];
|
|
u8 rsvd[2];
|
|
u8 rsvd[2];
|
|
-};
|
|
|
|
|
|
+} __packed;
|
|
|
|
|
|
/* MAC Unicast + VLAN */
|
|
/* MAC Unicast + VLAN */
|
|
struct bfi_enet_mac_n_vlan_req {
|
|
struct bfi_enet_mac_n_vlan_req {
|
|
struct bfi_msgq_mhdr mh;
|
|
struct bfi_msgq_mhdr mh;
|
|
u16 vlan_id;
|
|
u16 vlan_id;
|
|
u8 mac_addr[ETH_ALEN];
|
|
u8 mac_addr[ETH_ALEN];
|
|
-};
|
|
|
|
|
|
+} __packed;
|
|
|
|
|
|
/* MAC Multicast
|
|
/* MAC Multicast
|
|
*
|
|
*
|
|
@@ -593,7 +591,7 @@ struct bfi_enet_mcast_add_req {
|
|
struct bfi_msgq_mhdr mh;
|
|
struct bfi_msgq_mhdr mh;
|
|
u8 mac_addr[ETH_ALEN];
|
|
u8 mac_addr[ETH_ALEN];
|
|
u8 rsvd[2];
|
|
u8 rsvd[2];
|
|
-};
|
|
|
|
|
|
+} __packed;
|
|
|
|
|
|
/* bfi_enet_mac_mfilter_add_rsp is used by:
|
|
/* bfi_enet_mac_mfilter_add_rsp is used by:
|
|
* BFI_ENET_I2H_MAC_MCAST_ADD_RSP
|
|
* BFI_ENET_I2H_MAC_MCAST_ADD_RSP
|
|
@@ -605,7 +603,7 @@ struct bfi_enet_mcast_add_rsp {
|
|
u16 cmd_offset;
|
|
u16 cmd_offset;
|
|
u16 handle;
|
|
u16 handle;
|
|
u8 rsvd1[2];
|
|
u8 rsvd1[2];
|
|
-};
|
|
|
|
|
|
+} __packed;
|
|
|
|
|
|
/* bfi_enet_mac_mfilter_del_req is used by:
|
|
/* bfi_enet_mac_mfilter_del_req is used by:
|
|
* BFI_ENET_H2I_MAC_MCAST_DEL_REQ
|
|
* BFI_ENET_H2I_MAC_MCAST_DEL_REQ
|
|
@@ -614,7 +612,7 @@ struct bfi_enet_mcast_del_req {
|
|
struct bfi_msgq_mhdr mh;
|
|
struct bfi_msgq_mhdr mh;
|
|
u16 handle;
|
|
u16 handle;
|
|
u8 rsvd[2];
|
|
u8 rsvd[2];
|
|
-};
|
|
|
|
|
|
+} __packed;
|
|
|
|
|
|
/* VLAN
|
|
/* VLAN
|
|
*
|
|
*
|
|
@@ -626,7 +624,7 @@ struct bfi_enet_rx_vlan_req {
|
|
u8 block_idx;
|
|
u8 block_idx;
|
|
u8 rsvd[3];
|
|
u8 rsvd[3];
|
|
u32 bit_mask[BFI_ENET_VLAN_WORDS_MAX];
|
|
u32 bit_mask[BFI_ENET_VLAN_WORDS_MAX];
|
|
-};
|
|
|
|
|
|
+} __packed;
|
|
|
|
|
|
/* PAUSE
|
|
/* PAUSE
|
|
*
|
|
*
|
|
@@ -638,7 +636,7 @@ struct bfi_enet_set_pause_req {
|
|
u8 rsvd[2];
|
|
u8 rsvd[2];
|
|
u8 tx_pause; /* 1 = enable; 0 = disable */
|
|
u8 tx_pause; /* 1 = enable; 0 = disable */
|
|
u8 rx_pause; /* 1 = enable; 0 = disable */
|
|
u8 rx_pause; /* 1 = enable; 0 = disable */
|
|
-};
|
|
|
|
|
|
+} __packed;
|
|
|
|
|
|
/* DIAGNOSTICS
|
|
/* DIAGNOSTICS
|
|
*
|
|
*
|
|
@@ -650,7 +648,7 @@ struct bfi_enet_diag_lb_req {
|
|
u8 rsvd[2];
|
|
u8 rsvd[2];
|
|
u8 mode; /* cable or Serdes */
|
|
u8 mode; /* cable or Serdes */
|
|
u8 enable; /* 1 = enable; 0 = disable */
|
|
u8 enable; /* 1 = enable; 0 = disable */
|
|
-};
|
|
|
|
|
|
+} __packed;
|
|
|
|
|
|
/* enum for Loopback opmodes */
|
|
/* enum for Loopback opmodes */
|
|
enum {
|
|
enum {
|
|
@@ -671,7 +669,7 @@ struct bfi_enet_stats_req {
|
|
u32 rx_enet_mask;
|
|
u32 rx_enet_mask;
|
|
u32 tx_enet_mask;
|
|
u32 tx_enet_mask;
|
|
union bfi_addr_u host_buffer;
|
|
union bfi_addr_u host_buffer;
|
|
-};
|
|
|
|
|
|
+} __packed;
|
|
|
|
|
|
/* defines for "stats_mask" above. */
|
|
/* defines for "stats_mask" above. */
|
|
#define BFI_ENET_STATS_MAC (1 << 0) /* !< MAC Statistics */
|
|
#define BFI_ENET_STATS_MAC (1 << 0) /* !< MAC Statistics */
|
|
@@ -699,7 +697,7 @@ struct bfi_enet_stats_txf {
|
|
u64 errors;
|
|
u64 errors;
|
|
u64 filter_vlan; /* frames filtered due to VLAN */
|
|
u64 filter_vlan; /* frames filtered due to VLAN */
|
|
u64 filter_mac_sa; /* frames filtered due to SA check */
|
|
u64 filter_mac_sa; /* frames filtered due to SA check */
|
|
-};
|
|
|
|
|
|
+} __packed;
|
|
|
|
|
|
/* RxF Frame Statistics */
|
|
/* RxF Frame Statistics */
|
|
struct bfi_enet_stats_rxf {
|
|
struct bfi_enet_stats_rxf {
|
|
@@ -715,7 +713,7 @@ struct bfi_enet_stats_rxf {
|
|
u64 bcast;
|
|
u64 bcast;
|
|
u64 bcast_vlan;
|
|
u64 bcast_vlan;
|
|
u64 frame_drops;
|
|
u64 frame_drops;
|
|
-};
|
|
|
|
|
|
+} __packed;
|
|
|
|
|
|
/* FC Tx Frame Statistics */
|
|
/* FC Tx Frame Statistics */
|
|
struct bfi_enet_stats_fc_tx {
|
|
struct bfi_enet_stats_fc_tx {
|
|
@@ -734,7 +732,7 @@ struct bfi_enet_stats_fc_tx {
|
|
u64 txf_parity_errors;
|
|
u64 txf_parity_errors;
|
|
u64 txf_timeout;
|
|
u64 txf_timeout;
|
|
u64 txf_fid_parity_errors;
|
|
u64 txf_fid_parity_errors;
|
|
-};
|
|
|
|
|
|
+} __packed;
|
|
|
|
|
|
/* FC Rx Frame Statistics */
|
|
/* FC Rx Frame Statistics */
|
|
struct bfi_enet_stats_fc_rx {
|
|
struct bfi_enet_stats_fc_rx {
|
|
@@ -749,7 +747,7 @@ struct bfi_enet_stats_fc_rx {
|
|
u64 rxf_bcast_octets;
|
|
u64 rxf_bcast_octets;
|
|
u64 rxf_bcast;
|
|
u64 rxf_bcast;
|
|
u64 rxf_bcast_vlan;
|
|
u64 rxf_bcast_vlan;
|
|
-};
|
|
|
|
|
|
+} __packed;
|
|
|
|
|
|
/* RAD Frame Statistics */
|
|
/* RAD Frame Statistics */
|
|
struct bfi_enet_stats_rad {
|
|
struct bfi_enet_stats_rad {
|
|
@@ -770,7 +768,7 @@ struct bfi_enet_stats_rad {
|
|
u64 rx_bcast_vlan;
|
|
u64 rx_bcast_vlan;
|
|
|
|
|
|
u64 rx_drops;
|
|
u64 rx_drops;
|
|
-};
|
|
|
|
|
|
+} __packed;
|
|
|
|
|
|
/* BPC Tx Registers */
|
|
/* BPC Tx Registers */
|
|
struct bfi_enet_stats_bpc {
|
|
struct bfi_enet_stats_bpc {
|
|
@@ -785,7 +783,7 @@ struct bfi_enet_stats_bpc {
|
|
u64 rx_zero_pause[8]; /*!< Pause cancellation */
|
|
u64 rx_zero_pause[8]; /*!< Pause cancellation */
|
|
/*!<Pause initiation rather than retention */
|
|
/*!<Pause initiation rather than retention */
|
|
u64 rx_first_pause[8];
|
|
u64 rx_first_pause[8];
|
|
-};
|
|
|
|
|
|
+} __packed;
|
|
|
|
|
|
/* MAC Rx Statistics */
|
|
/* MAC Rx Statistics */
|
|
struct bfi_enet_stats_mac {
|
|
struct bfi_enet_stats_mac {
|
|
@@ -838,7 +836,7 @@ struct bfi_enet_stats_mac {
|
|
u64 tx_oversize;
|
|
u64 tx_oversize;
|
|
u64 tx_undersize;
|
|
u64 tx_undersize;
|
|
u64 tx_fragments;
|
|
u64 tx_fragments;
|
|
-};
|
|
|
|
|
|
+} __packed;
|
|
|
|
|
|
/* Complete statistics, DMAed from fw to host followed by
|
|
/* Complete statistics, DMAed from fw to host followed by
|
|
* BFI_ENET_I2H_STATS_GET_RSP
|
|
* BFI_ENET_I2H_STATS_GET_RSP
|
|
@@ -852,8 +850,6 @@ struct bfi_enet_stats {
|
|
struct bfi_enet_stats_fc_tx fc_tx_stats;
|
|
struct bfi_enet_stats_fc_tx fc_tx_stats;
|
|
struct bfi_enet_stats_rxf rxf_stats[BFI_ENET_CFG_MAX];
|
|
struct bfi_enet_stats_rxf rxf_stats[BFI_ENET_CFG_MAX];
|
|
struct bfi_enet_stats_txf txf_stats[BFI_ENET_CFG_MAX];
|
|
struct bfi_enet_stats_txf txf_stats[BFI_ENET_CFG_MAX];
|
|
-};
|
|
|
|
-
|
|
|
|
-#pragma pack()
|
|
|
|
|
|
+} __packed;
|
|
|
|
|
|
#endif /* __BFI_ENET_H__ */
|
|
#endif /* __BFI_ENET_H__ */
|