Commit 58f6bcf9 authored by Emil Tantilov's avatar Emil Tantilov Committed by Jeff Kirsher

ixgbe: add ethtool counters for OS2BMC

OS2BMC registers are available for X540.
This patch adds ethtool counters based on those registers.
Signed-off-by: default avatarEmil Tantilov <emil.s.tantilov@intel.com>
Tested-by: default avatarEvan Swanson <evan.swanson@intel.com>
Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
parent 67a74ee2
...@@ -102,6 +102,10 @@ static struct ixgbe_stats ixgbe_gstrings_stats[] = { ...@@ -102,6 +102,10 @@ static struct ixgbe_stats ixgbe_gstrings_stats[] = {
{"alloc_rx_page_failed", IXGBE_STAT(alloc_rx_page_failed)}, {"alloc_rx_page_failed", IXGBE_STAT(alloc_rx_page_failed)},
{"alloc_rx_buff_failed", IXGBE_STAT(alloc_rx_buff_failed)}, {"alloc_rx_buff_failed", IXGBE_STAT(alloc_rx_buff_failed)},
{"rx_no_dma_resources", IXGBE_STAT(hw_rx_no_dma_resources)}, {"rx_no_dma_resources", IXGBE_STAT(hw_rx_no_dma_resources)},
{"os2bmc_rx_by_bmc", IXGBE_STAT(stats.o2bgptc)},
{"os2bmc_tx_by_bmc", IXGBE_STAT(stats.b2ospc)},
{"os2bmc_tx_by_host", IXGBE_STAT(stats.o2bspc)},
{"os2bmc_rx_by_host", IXGBE_STAT(stats.b2ogprc)},
#ifdef IXGBE_FCOE #ifdef IXGBE_FCOE
{"fcoe_bad_fccrc", IXGBE_STAT(stats.fccrc)}, {"fcoe_bad_fccrc", IXGBE_STAT(stats.fccrc)},
{"rx_fcoe_dropped", IXGBE_STAT(stats.fcoerpdc)}, {"rx_fcoe_dropped", IXGBE_STAT(stats.fcoerpdc)},
......
...@@ -5912,8 +5912,13 @@ void ixgbe_update_stats(struct ixgbe_adapter *adapter) ...@@ -5912,8 +5912,13 @@ void ixgbe_update_stats(struct ixgbe_adapter *adapter)
hwstats->gotc += IXGBE_READ_REG(hw, IXGBE_GOTCH); hwstats->gotc += IXGBE_READ_REG(hw, IXGBE_GOTCH);
hwstats->tor += IXGBE_READ_REG(hw, IXGBE_TORH); hwstats->tor += IXGBE_READ_REG(hw, IXGBE_TORH);
break; break;
case ixgbe_mac_82599EB:
case ixgbe_mac_X540: case ixgbe_mac_X540:
/* OS2BMC stats are X540 only*/
hwstats->o2bgptc += IXGBE_READ_REG(hw, IXGBE_O2BGPTC);
hwstats->o2bspc += IXGBE_READ_REG(hw, IXGBE_O2BSPC);
hwstats->b2ospc += IXGBE_READ_REG(hw, IXGBE_B2OSPC);
hwstats->b2ogprc += IXGBE_READ_REG(hw, IXGBE_B2OGPRC);
case ixgbe_mac_82599EB:
hwstats->gorc += IXGBE_READ_REG(hw, IXGBE_GORCL); hwstats->gorc += IXGBE_READ_REG(hw, IXGBE_GORCL);
IXGBE_READ_REG(hw, IXGBE_GORCH); /* to clear */ IXGBE_READ_REG(hw, IXGBE_GORCH); /* to clear */
hwstats->gotc += IXGBE_READ_REG(hw, IXGBE_GOTCL); hwstats->gotc += IXGBE_READ_REG(hw, IXGBE_GOTCL);
......
...@@ -672,6 +672,10 @@ ...@@ -672,6 +672,10 @@
#define IXGBE_FCOEDWRC 0x0242C /* Number of FCoE DWords Received */ #define IXGBE_FCOEDWRC 0x0242C /* Number of FCoE DWords Received */
#define IXGBE_FCOEPTC 0x08784 /* Number of FCoE Packets Transmitted */ #define IXGBE_FCOEPTC 0x08784 /* Number of FCoE Packets Transmitted */
#define IXGBE_FCOEDWTC 0x08788 /* Number of FCoE DWords Transmitted */ #define IXGBE_FCOEDWTC 0x08788 /* Number of FCoE DWords Transmitted */
#define IXGBE_O2BGPTC 0x041C4
#define IXGBE_O2BSPC 0x087B0
#define IXGBE_B2OSPC 0x041C0
#define IXGBE_B2OGPRC 0x02F90
#define IXGBE_PCRC8ECL 0x0E810 #define IXGBE_PCRC8ECL 0x0E810
#define IXGBE_PCRC8ECH 0x0E811 #define IXGBE_PCRC8ECH 0x0E811
#define IXGBE_PCRC8ECH_MASK 0x1F #define IXGBE_PCRC8ECH_MASK 0x1F
...@@ -2554,6 +2558,10 @@ struct ixgbe_hw_stats { ...@@ -2554,6 +2558,10 @@ struct ixgbe_hw_stats {
u64 fcoeptc; u64 fcoeptc;
u64 fcoedwrc; u64 fcoedwrc;
u64 fcoedwtc; u64 fcoedwtc;
u64 b2ospc;
u64 b2ogprc;
u64 o2bgptc;
u64 o2bspc;
}; };
/* forward declaration */ /* forward declaration */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment