Add Broadcom / Netgear changes from RAXE 1.0.0.48
[project/bcm63xx/u-boot.git] / drivers / net / bcmbca / lport / lport_stats.h
diff --git a/drivers/net/bcmbca/lport/lport_stats.h b/drivers/net/bcmbca/lport/lport_stats.h
new file mode 100644 (file)
index 0000000..358958b
--- /dev/null
@@ -0,0 +1,279 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+   Copyright (c) 2015 Broadcom Corporation
+   All Rights Reserved
+
+    
+*/
+/*
+ * lport_stats.h
+ *
+ *  Created on: April 2015
+ *      Author: yonatani
+ */
+
+#ifndef SHARED_OPENSOURCE_DRV_LPORT_LPORT_STATS_H_
+#define SHARED_OPENSOURCE_DRV_LPORT_LPORT_STATS_H_
+
+#include "lport_types.h"
+
+typedef enum
+{
+    STAT_GRX64,   /*< Receive 64 Byte Frame Counter */
+    STAT_GRX127,  /*< Receive 65 to 127 Byte Frame Counter*/
+    STAT_GRX255,   /*< Receive 128 to 255 Byte Frame Counter*/
+    STAT_GRX511,   /*< Receive 256 to 511 Byte Frame Counter*/
+    STAT_GRX1023,  /*< Receive 512 to 1023 Byte Frame Counter*/
+    STAT_GRX1518,  /*< Receive 1024 to 1518 Byte Frame Counter*/
+    STAT_GRX1522,  /*< Receive 1519 to 1522 Byte Good VLAN Frame Counter*/
+    STAT_GRX2047,  /*< Receive 1519 to 2047 Byte Frame Counter*/
+    STAT_GRX4095,  /*< Receive 2048 to 4095 Byte Frame Counter*/
+    STAT_GRX9216,  /*< Receive 4096 to 9216 Byte Frame Counter*/
+    STAT_GRX16383, /*< Receive 9217 to 16838 Byte Frame Counter*/
+    STAT_GRXPKT,   /*< Receive frame/packet Counter*/
+    STAT_GRXUCA,   /*< Receive Unicast Frame Counter*/
+    STAT_GRXMCA,   /*< Receive Multicast Frame Counter*/
+    STAT_GRXBCA,   /*< Receive Broadcast Frame Counter*/
+    STAT_GRXFCS,   /*< Receive FCS Error Frame Counter*/
+    STAT_GRXCF,    /*< Receive Control Frame Counter*/
+    STAT_GRXPF,    /*< Receive PAUSE Frame Counter*/
+    STAT_GRXPP,    /*< Receive PFC (Per-Priority Pause) Frame Counter*/
+    STAT_GRXUO,    /*< Receive Unsupported Opcode Frame Counter*/
+    STAT_GRXUDA,   /*< Receive Unsupported DA for PAUSE/PFC Frame Counter*/
+    STAT_GRXWSA,   /*< Receive Wrong SA Frame Counter*/
+    STAT_GRXALN,   /*< Receive Alignment Error Frame Counter*/
+    STAT_GRXFLR,   /*< Receive Length Out of Range Frame Counter*/
+    STAT_GRXFRERR, /*< Receive Code Error Frame Counter*/
+    STAT_GRXFCR,   /*< Receive False Carrier Counter*/
+    STAT_GRXOVR,   /*< Receive Oversized Frame Counter*/
+    STAT_GRXJBR,   /*< Receive Jabber Frame Counter*/
+    STAT_GRXMTUE,  /*< Receive MTU Check Error Frame Counter*/
+    STAT_GRXMCRC,  /*< Matched CRC Frame Counter*/
+    STAT_GRXPRM,   /*< Receive Promiscuous Frame Counter*/
+    STAT_GRXVLN,   /*< Receive VLAN Tag Frame Counter*/
+    STAT_GRXDVLN,  /*< Receive Double VLAN Tag Frame Counter*/
+    STAT_GRXTRFU,  /*< Receive Truncated Frame Counter (due to RX FIFO full)*/
+    STAT_GRXPOK,   /*< Receive Good Packet Counter*/
+/*PFC are not in use in this platform */
+#if 0
+    RXPFCOFF0   /*< Receive PFC Frame Priority 0 XON to XOFF*/
+    RXPFCOFF1   /*< Receive PFC Frame Priority 1*/
+    RXPFCOFF2   /*< Receive PFC Frame Priority 2*/
+    RXPFCOFF3   /*< Receive PFC Frame Priority 3*/
+    RXPFCOFF4   /*< Receive PFC Frame Priority 4*/
+    RXPFCOFF5   /*< Receive PFC Frame Priority 5*/
+    RXPFCOFF6   /*< Receive PFC Frame Priority 6*/
+    RXPFCOFF7   /*< Receive PFC Frame Priority 7*/
+    RXPFCP0     /*< Receive PFC Frame Priority 0*/
+    RXPFCP1     /*< Receive PFC Frame Priority 1*/
+    RXPFCP2     /*< Receive PFC Frame Priority 2*/
+    RXPFCP3     /*< Receive PFC Frame Priority 3*/
+    RXPFCP4     /*< Receive PFC Frame Priority 4*/
+    RXPFCP5     /*< Receive PFC Frame Priority 5*/
+    RXPFCP6     /*< Receive PFC Frame Priority 6*/
+    RXPFCP7     /*< Receive PFC Frame Priority 7*/
+#endif
+    STAT_GRXSCHCRC,    /*< Receive SCH CRC Error*/
+    STAT_GRXBYT,   /*< Receive Byte Counter*/
+    STAT_GRXRPKT,  /*< Receive RUNT Frame Counter*/
+    STAT_GRXUND,   /*< Receive Undersize Frame Counter*/
+    STAT_GRXFRG,   /*< Receive Fragment Counter*/
+    STAT_GRXRBYT,  /*< Receive Runt Byte Counter*/
+    STAT_GRXLPI,   /*< RX EEE LPI Event Counter*/
+    STAT_GRXDLPI,  /*< RX EEE LPI Duration Counte*/
+    STAT_GRXPTLLFC,    /*< Receive Physical Type LLFC message counter*/
+    STAT_GRXLTLLFC,   /*< Receive Logical Type LLFC message Counter*/
+    STAT_GRXLLFCFCS   /*< Receive Type LLFC message with CRC error Counter*/
+}LPORT_STATS_RX_TYPE;
+
+typedef enum
+{
+    STAT_GTX64,    /*< Transmit 64 Byte Frame Counter*/
+    STAT_GTX127,   /*< Transmit 65 to 127 Byte Frame Counter*/
+    STAT_GTX255,   /*< Transmit 128 to 255 Byte Frame Counter*/
+    STAT_GTX511,   /*< Transmit 256 to 511 Byte Frame Counter*/
+    STAT_GTX1023,  /*< Transmit 512 to 1023 Byte Frame Counter*/
+    STAT_GTX1518,  /*< Transmit 1024 to 1518 Byte Frame Counter*/
+    STAT_GTX1522,  /*< Transmit 1519 to 1522 Byte Good VLAN Frame Counter*/
+    STAT_GTX2047,  /*< Transmit 1519 to 2047 Byte Frame Counter*/
+    STAT_GTX4095,  /*< Transmit 2048 to 4095 Byte Frame Counter*/
+    STAT_GTX9216,  /*< Transmit 4096 to 9216 Byte Frame Counter*/
+    STAT_GTX16383, /*< Transmit 9217 to 16383 Byte Frame Counter*/
+    STAT_GTXPOK,   /*< Transmit Good Packet Counter*/
+    STAT_GTXPKT,   /*< Transmit Packet/Frame Counter*/
+    STAT_GTXUCA,   /*< Transmit Unicast Frame Counter*/
+    STAT_GTXMCA,   /*< Transmit Multicast Frame Counter*/
+    STAT_GTXBCA,   /*< Transmit Broadcast Frame Counter*/
+    STAT_GTXPF,    /*< Transmit Pause Control Frame Counter*/
+    STAT_GTXPFC,   /*< Transmit PFC/Per-Priority Pause Control Frame Counter*/
+    STAT_GTXJBR,   /*< Transmit Jabber Counter*/
+    STAT_GTXFCS,   /*< Transmit FCS Error Counter*/
+    STAT_GTXCF,    /*< Transmit Control Frame Counter*/
+    STAT_GTXOVR,   /*< Transmit Oversize Packet Counter*/
+    STAT_GTXDFR,   /*< Transmit Single Deferral Frame Counter*/
+    STAT_GTXEDF,   /*< Transmit Multiple Deferral Frame Counter*/
+    STAT_GTXSCL,   /*< Transmit Single Collision Frame Counter*/
+    STAT_GTXMCL,   /*< Transmit Multiple Collision Frame Counter*/
+    STAT_GTXLCL,   /*< Transmit Late Collision Frame Counter*/
+    STAT_GTXXCL,   /*< Transmit Excessive Collision Frame Counter*/
+    STAT_GTXFRG,   /*< Transmit Fragment Counter*/
+    STAT_GTXERR,   /*< Transmit Error (set by system) Counter*/
+    STAT_GTXVLN,   /*< Transmit VLAN Tag Frame Counter*/
+    STAT_GTXDVLN,  /*< Transmit Double VLAN Tag Frame Counter*/
+    STAT_GTXRPKT,  /*< Transmit RUNT Frame Counter*/
+    STAT_GTXUFL,   /*< Transmit FIFO Underrun Counter.*/
+#if 0
+    STAT_GTXPFCP0, /*< Transmit PFC Frame Priority 0*/
+    STAT_GTXPFCP1, /*< Transmit PFC Frame Priority 1*/
+    STAT_GTXPFCP2, /*< Transmit PFC Frame Priority 2*/
+    STAT_GTXPFCP3, /*< Transmit PFC Frame Priority 3*/
+    STAT_GTXPFCP4, /*< Transmit PFC Frame Priority 4*/
+    STAT_GTXPFCP5, /*< Transmit PFC Frame Priority 5*/
+    STAT_GTXPFCP6 /*< Transmit PFC Frame Priority 6*/
+    STAT_GTXPFCP7, /*< Transmit PFC Frame Priority 7*/
+#endif
+    STAT_GTXNCL,   /*< Transmit Total Collision Counter*/
+    STAT_GTXBYT,   /*< Transmit Byte Counter*/
+    STAT_GTXLPI,   /*< TX EEE LPI Event Counter*/
+    STAT_GTXDLPI,  /*< TX EEE LPI Duration Counter*/
+    STAT_GTXLTLLFC    /*< Transmit Logical Type LLFC message counter*/
+}LPORT_STATS_TX_TYPE;
+
+typedef struct
+{
+    uint64_t    GRX64;   /*< Receive 64 Byte Frame Counter */
+    uint64_t    GRX127;  /*< Receive 65 to 127 Byte Frame Counter*/
+    uint64_t    GRX255;   /*< Receive 128 to 255 Byte Frame Counter*/
+    uint64_t    GRX511;   /*< Receive 256 to 511 Byte Frame Counter*/
+    uint64_t    GRX1023;  /*< Receive 512 to 1023 Byte Frame Counter*/
+    uint64_t    GRX1518;  /*< Receive 1024 to 1518 Byte Frame Counter*/
+    uint64_t    GRX1522;  /*< Receive 1519 to 1522 Byte Good VLAN Frame Counter*/
+    uint64_t    GRX2047;  /*< Receive 1519 to 2047 Byte Frame Counter*/
+    uint64_t    GRX4095;  /*< Receive 2048 to 4095 Byte Frame Counter*/
+    uint64_t    GRX9216;  /*< Receive 4096 to 9216 Byte Frame Counter*/
+    uint64_t    GRX16383; /*< Receive 9217 to 16838 Byte Frame Counter*/
+    uint64_t    GRXPKT;   /*< Receive frame/packet Counter*/
+    uint64_t    GRXUCA;   /*< Receive Unicast Frame Counter*/
+    uint64_t    GRXMCA;   /*< Receive Multicast Frame Counter*/
+    uint64_t    GRXBCA;   /*< Receive Broadcast Frame Counter*/
+    uint64_t    GRXFCS;   /*< Receive FCS Error Frame Counter*/
+    uint64_t    GRXCF;    /*< Receive Control Frame Counter*/
+    uint64_t    GRXPF;    /*< Receive PAUSE Frame Counter*/
+    uint64_t    GRXPP;    /*< Receive PFC (Per-Priority Pause) Frame Counter*/
+    uint64_t    GRXUO;    /*< Receive Unsupported Opcode Frame Counter*/
+    uint64_t    GRXUDA;   /*< Receive Unsupported DA for PAUSE/PFC Frame Counter*/
+    uint64_t    GRXWSA;   /*< Receive Wrong SA Frame Counter*/
+    uint64_t    GRXALN;   /*< Receive Alignment Error Frame Counter*/
+    uint64_t    GRXFLR;   /*< Receive Length Out of Range Frame Counter*/
+    uint64_t    GRXFRERR; /*< Receive Code Error Frame Counter*/
+    uint64_t    GRXFCR;   /*< Receive False Carrier Counter*/
+    uint64_t    GRXOVR;   /*< Receive Oversized Frame Counter*/
+    uint64_t    GRXJBR;   /*< Receive Jabber Frame Counter*/
+    uint64_t    GRXMTUE;  /*< Receive MTU Check Error Frame Counter*/
+    uint64_t    GRXMCRC;  /*< Matched CRC Frame Counter*/
+    uint64_t    GRXPRM;   /*< Receive Promiscuous Frame Counter*/
+    uint64_t    GRXVLN;   /*< Receive VLAN Tag Frame Counter*/
+    uint64_t    GRXDVLN;  /*< Receive Double VLAN Tag Frame Counter*/
+    uint64_t    GRXTRFU;  /*< Receive Truncated Frame Counter (due to RX FIFO full)*/
+    uint64_t    GRXPOK;   /*< Receive Good Packet Counter*/
+/*PFC are not in use in this platform */
+#if 0
+    uint64_t    RXPFCOFF0   /*< Receive PFC Frame Priority 0 XON to XOFF*/
+    uint64_t    RXPFCOFF1   /*< Receive PFC Frame Priority 1*/
+    uint64_t    RXPFCOFF2   /*< Receive PFC Frame Priority 2*/
+    uint64_t    RXPFCOFF3   /*< Receive PFC Frame Priority 3*/
+    uint64_t    RXPFCOFF4   /*< Receive PFC Frame Priority 4*/
+    uint64_t    RXPFCOFF5   /*< Receive PFC Frame Priority 5*/
+    uint64_t    RXPFCOFF6   /*< Receive PFC Frame Priority 6*/
+    uint64_t    RXPFCOFF7   /*< Receive PFC Frame Priority 7*/
+    uint64_t    RXPFCP0     /*< Receive PFC Frame Priority 0*/
+    uint64_t    RXPFCP1     /*< Receive PFC Frame Priority 1*/
+    uint64_t    RXPFCP2     /*< Receive PFC Frame Priority 2*/
+    uint64_t    RXPFCP3     /*< Receive PFC Frame Priority 3*/
+    uint64_t    RXPFCP4     /*< Receive PFC Frame Priority 4*/
+    uint64_t    RXPFCP5     /*< Receive PFC Frame Priority 5*/
+    uint64_t    RXPFCP6     /*< Receive PFC Frame Priority 6*/
+    uint64_t    RXPFCP7     /*< Receive PFC Frame Priority 7*/
+#endif
+    uint64_t    GRXSCHCRC;    /*< Receive SCH CRC Error*/
+    uint64_t    GRXBYT;   /*< Receive Byte Counter*/
+    uint64_t    GRXRPKT;  /*< Receive RUNT Frame Counter*/
+    uint64_t    GRXUND;   /*< Receive Undersize Frame Counter*/
+    uint64_t    GRXFRG;   /*< Receive Fragment Counter*/
+    uint64_t    GRXRBYT;  /*< Receive Runt Byte Counter*/
+    uint32_t    GRXLPI;   /*< RX EEE LPI Event Counter*/
+    uint32_t    GRXDLPI;  /*< RX EEE LPI Duration Counte*/
+    uint64_t    GRXPTLLFC;    /*< Receive Physical Type LLFC message counter*/
+    uint64_t    GRXLTLLFC;   /*< Receive Logical Type LLFC message Counter*/
+    uint64_t    GRXLLFCFCS;   /*< Receive Type LLFC message with CRC error Counter*/
+}lport_rx_stats_s;
+
+typedef struct
+{
+    uint64_t    GTX64;    /*< Transmit 64 Byte Frame Counter*/
+    uint64_t    GTX127;   /*< Transmit 65 to 127 Byte Frame Counter*/
+    uint64_t    GTX255;   /*< Transmit 128 to 255 Byte Frame Counter*/
+    uint64_t    GTX511;   /*< Transmit 256 to 511 Byte Frame Counter*/
+    uint64_t    GTX1023;  /*< Transmit 512 to 1023 Byte Frame Counter*/
+    uint64_t    GTX1518;  /*< Transmit 1024 to 1518 Byte Frame Counter*/
+    uint64_t    GTX1522;  /*< Transmit 1519 to 1522 Byte Good VLAN Frame Counter*/
+    uint64_t    GTX2047;  /*< Transmit 1519 to 2047 Byte Frame Counter*/
+    uint64_t    GTX4095;  /*< Transmit 2048 to 4095 Byte Frame Counter*/
+    uint64_t    GTX9216;  /*< Transmit 4096 to 9216 Byte Frame Counter*/
+    uint64_t    GTX16383; /*< Transmit 9217 to 16383 Byte Frame Counter*/
+    uint64_t    GTXPOK;   /*< Transmit Good Packet Counter*/
+    uint64_t    GTXPKT;   /*< Transmit Packet/Frame Counter*/
+    uint64_t    GTXUCA;   /*< Transmit Unicast Frame Counter*/
+    uint64_t    GTXMCA;   /*< Transmit Multicast Frame Counter*/
+    uint64_t    GTXBCA;   /*< Transmit Broadcast Frame Counter*/
+    uint64_t    GTXPF;    /*< Transmit Pause Control Frame Counter*/
+    uint64_t    GTXPFC;   /*< Transmit PFC/Per-Priority Pause Control Frame Counter*/
+    uint64_t    GTXJBR;   /*< Transmit Jabber Counter*/
+    uint64_t    GTXFCS;   /*< Transmit FCS Error Counter*/
+    uint64_t    GTXCF;    /*< Transmit Control Frame Counter*/
+    uint64_t    GTXOVR;   /*< Transmit Oversize Packet Counter*/
+    uint64_t    GTXDFR;   /*< Transmit Single Deferral Frame Counter*/
+    uint64_t    GTXEDF;   /*< Transmit Multiple Deferral Frame Counter*/
+    uint64_t    GTXSCL;   /*< Transmit Single Collision Frame Counter*/
+    uint64_t    GTXMCL;   /*< Transmit Multiple Collision Frame Counter*/
+    uint64_t    GTXLCL;   /*< Transmit Late Collision Frame Counter*/
+    uint64_t    GTXXCL;   /*< Transmit Excessive Collision Frame Counter*/
+    uint64_t    GTXFRG;   /*< Transmit Fragment Counter*/
+    uint64_t    GTXERR;   /*< Transmit Error (set by system) Counter*/
+    uint64_t    GTXVLN;   /*< Transmit VLAN Tag Frame Counter*/
+    uint64_t    GTXDVLN;  /*< Transmit Double VLAN Tag Frame Counter*/
+    uint64_t    GTXRPKT;  /*< Transmit RUNT Frame Counter*/
+    uint64_t    GTXUFL;   /*< Transmit FIFO Underrun Counter.*/
+#if 0
+    uint64_t    GTXPFCP0; /*< Transmit PFC Frame Priority 0*/
+    uint64_t    GTXPFCP1; /*< Transmit PFC Frame Priority 1*/
+    uint64_t    GTXPFCP2; /*< Transmit PFC Frame Priority 2*/
+    uint64_t    GTXPFCP3; /*< Transmit PFC Frame Priority 3*/
+    uint64_t    GTXPFCP4; /*< Transmit PFC Frame Priority 4*/
+    uint64_t    GTXPFCP5; /*< Transmit PFC Frame Priority 5*/
+    uint64_t    GTXPFCP6 /*< Transmit PFC Frame Priority 6*/
+    uint64_t    GTXPFCP7; /*< Transmit PFC Frame Priority 7*/
+#endif
+    uint64_t    GTXNCL;   /*< Transmit Total Collision Counter*/
+    uint64_t    GTXBYT;   /*< Transmit Byte Counter*/
+    uint32_t    GTXLPI;   /*< TX EEE LPI Event Counter*/
+    uint32_t    GTXDLPI;  /*< TX EEE LPI Duration Counter*/
+    uint64_t    GTXLTLLFC;    /*< Transmit Logical Type LLFC message counter*/
+}lport_tx_stats_s;
+
+typedef struct
+{
+    uint8_t saturate_en; /*< Saturate counter on respective max value*/
+    uint8_t cor_en; /*< Enable clear on read */
+    uint8_t eee_sym_mode; /*< EEE Counter symetric mode */
+}lport_stats_cfg_s;
+
+int lport_stats_get_rx(uint32_t portid, lport_rx_stats_s *rx_stats);
+int lport_stats_get_tx(uint32_t portid, lport_tx_stats_s *tx_stats);
+int lport_stats_rst_rx_single(uint32_t portid, LPORT_STATS_RX_TYPE stat_type);
+int lport_stats_rst_tx_single(uint32_t portid,  LPORT_STATS_TX_TYPE stat_type);
+int lport_stats_cfg_get(uint32_t portid, lport_stats_cfg_s *stats_cfg);
+int lport_stats_cfg_set(uint32_t portid, lport_stats_cfg_s *stats_cfg);
+int lport_stats_reset(uint32_t portid);
+
+#endif /* SHARED_OPENSOURCE_DRV_LPORT_LPORT_STATS_H_ */