fec: Add support for reading RMON registers
Subsystems (3)
PATCH v2 1/1 fec: Add support for reading RMON registers
Add ethtool operation to read RMON registers.
Tested against net-next on i.MX28.
v2: make conditional on #ifndef CONFIG_M5272
Signed-off-by Chris Healy <[email protected]>
--- drivers/net/ethernet/freescale/fec.h | 55 ++++++++++++++ drivers/net/ethernet/freescale/fec_main.c | 114 ++++++++++++++++++++++++++++++ 2 files changed, 169 insertions(+)
drivers/net/ethernet/freescale/fec.h +55 -0
@@ -60,6 +60,61 @@#define BM_MIIGSK_CFGR_RMII 0x01#define BM_MIIGSK_CFGR_FRCONT_10M 0x40 +#define RMON_T_DROP 0x200/* Count of frames not cntd correctly */ +#define RMON_T_PACKETS 0x204/* RMON TX packet count */ +#define RMON_T_BC_PKT 0x208/* RMON TX broadcast pkts */ +#define RMON_T_MC_PKT 0x20C/* RMON TX multicast pkts */ +#define RMON_T_CRC_ALIGN 0x210/* RMON TX pkts with CRC align err */ +#define RMON_T_UNDERSIZE 0x214/* RMON TX pkts < 64 bytes, good CRC */ +#define RMON_T_OVERSIZE 0x218/* RMON TX pkts > MAX_FL bytes good CRC */ +#define RMON_T_FRAG 0x21C/* RMON TX pkts < 64 bytes, bad CRC */ +#define RMON_T_JAB 0x220/* RMON TX pkts > MAX_FL bytes, bad CRC */ +#define RMON_T_COL 0x224/* RMON TX collision count */ +#define RMON_T_P64 0x228/* RMON TX 64 byte pkts */ +#define RMON_T_P65TO127 0x22C/* RMON TX 65 to 127 byte pkts */ +#define RMON_T_P128TO255 0x230/* RMON TX 128 to 255 byte pkts */ +#define RMON_T_P256TO511 0x234/* RMON TX 256 to 511 byte pkts */ +#define RMON_T_P512TO1023 0x238/* RMON TX 512 to 1023 byte pkts */ +#define RMON_T_P1024TO2047 0x23C/* RMON TX 1024 to 2047 byte pkts */ +#define RMON_T_P_GTE2048 0x240/* RMON TX pkts > 2048 bytes */ +#define RMON_T_OCTETS 0x244/* RMON TX octets */ +#define IEEE_T_DROP 0x248/* Count of frames not counted crtly */ +#define IEEE_T_FRAME_OK 0x24C/* Frames tx'd OK */ +#define IEEE_T_1COL 0x250/* Frames tx'd with single collision */ +#define IEEE_T_MCOL 0x254/* Frames tx'd with multiple collision */ +#define IEEE_T_DEF 0x258/* Frames tx'd after deferral delay */ +#define IEEE_T_LCOL 0x25C/* Frames tx'd with late collision */ +#define IEEE_T_EXCOL 0x260/* Frames tx'd with excesv collisions */ +#define IEEE_T_MACERR 0x264/* Frames tx'd with TX FIFO underrun */ +#define IEEE_T_CSERR 0x268/* Frames tx'd with carrier sense err */ +#define IEEE_T_SQE 0x26C/* Frames tx'd with SQE err */ +#define IEEE_T_FDXFC 0x270/* Flow control pause frames tx'd */ +#define IEEE_T_OCTETS_OK 0x274/* Octet count for frames tx'd w/o err */ +#define RMON_R_PACKETS 0x284/* RMON RX packet count */ +#define RMON_R_BC_PKT 0x288/* RMON RX broadcast pkts */ +#define RMON_R_MC_PKT 0x28C/* RMON RX multicast pkts */ +#define RMON_R_CRC_ALIGN 0x290/* RMON RX pkts with CRC alignment err */ +#define RMON_R_UNDERSIZE 0x294/* RMON RX pkts < 64 bytes, good CRC */ +#define RMON_R_OVERSIZE 0x298/* RMON RX pkts > MAX_FL bytes good CRC */ +#define RMON_R_FRAG 0x29C/* RMON RX pkts < 64 bytes, bad CRC */ +#define RMON_R_JAB 0x2A0/* RMON RX pkts > MAX_FL bytes, bad CRC */ +#define RMON_R_RESVD_O 0x2A4/* Reserved */ +#define RMON_R_P64 0x2A8/* RMON RX 64 byte pkts */ +#define RMON_R_P65TO127 0x2AC/* RMON RX 65 to 127 byte pkts */ +#define RMON_R_P128TO255 0x2B0/* RMON RX 128 to 255 byte pkts */ +#define RMON_R_P256TO511 0x2B4/* RMON RX 256 to 511 byte pkts */ +#define RMON_R_P512TO1023 0x2B8/* RMON RX 512 to 1023 byte pkts */ +#define RMON_R_P1024TO2047 0x2BC/* RMON RX 1024 to 2047 byte pkts */ +#define RMON_R_P_GTE2048 0x2C0/* RMON RX pkts > 2048 bytes */ +#define RMON_R_OCTETS 0x2C4/* RMON RX octets */ +#define IEEE_R_DROP 0x2C8/* Count frames not counted correctly */ +#define IEEE_R_FRAME_OK 0x2CC/* Frames rx'd OK */ +#define IEEE_R_CRC 0x2D0/* Frames rx'd with CRC err */ +#define IEEE_R_ALIGN 0x2D4/* Frames rx'd with alignment err */ +#define IEEE_R_MACERR 0x2D8/* Receive FIFO overflow count */ +#define IEEE_R_FDXFC 0x2DC/* Flow control pause frames rx'd */ +#define IEEE_R_OCTETS_OK 0x2E0/* Octet cnt for frames rx'd w/o err */ +#else #define FEC_ECNTRL 0x000/* Ethernet control reg */
drivers/net/ethernet/freescale/fec_main.c +114 -0
132 lines not on this page · raw message
Signature · 1 line
1.8.1.2
From: Chris Healy <[email protected]>
Date: Tue, 25 Jun 2013 23:18:52 -0700
Quoted 7 lines
Add ethtool operation to read RMON registers.
Tested against net-next on i.MX28.
v2: make conditional on #ifndef
CONFIG_M5272Signed-off-by Chris Healy <[email protected]>
Applied, thanks.