[PATCH net-next 00/11] net: stmmac: Selftests

From: Jose Abreu
Date: Wed May 08 2019 - 03:52:37 EST


[ Submitting with net-next closed for proper review and testing. ]

This introduces selftests support in stmmac driver. We add 4 basic sanity
checks and MAC loopback support for all cores within the driver. This way
more tests can easily be added in the future and can be run in virtually
any MAC/GMAC/QoS/XGMAC platform.

Having this we can find regressions and missing features in the driver
while at the same time we can check if the IP is correctly working.

We have been using this for some time now and I do have more tests to
submit in the feature. My experience is that although writing the tests
adds more development time, the gain results are obvious.

I let this feature optional within the driver under a Kconfig option.

For this series the output result will be something like this
(e.g. for dwmac1000):
----
# ethtool -t eth0
The test result is PASS
The test extra info:
1. MAC Loopback 0
2. PHY Loopback -95
3. MMC Counters 0
4. EEE -95
5. Hash Filter MC 0
6. Perfect Filter UC 0
7. Flow Control 0
----

(Error code -95 means EOPNOTSUPP in current HW).

Cc: Joao Pinto <jpinto@xxxxxxxxxxxx>
Cc: David S. Miller <davem@xxxxxxxxxxxxx>
Cc: Giuseppe Cavallaro <peppe.cavallaro@xxxxxx>
Cc: Alexandre Torgue <alexandre.torgue@xxxxxx>

Jose Abreu (11):
net: stmmac: Add MAC loopback callback to HWIF
net: stmmac: dwmac100: Add MAC loopback support
net: stmmac: dwmac1000: Add MAC loopback support
net: stmmac: dwmac4/5: Add MAC loopback support
net: stmmac: dwxgmac2: Add MAC loopback support
net: stmmac: Switch MMC functions to HWIF callbacks
net: stmmac: dwmac1000: Also pass control frames while in promisc mode
net: stmmac: dwmac4/5: Also pass control frames while in promisc mode
net: stmmac: dwxgmac2: Also pass control frames while in promisc mode
net: stmmac: Introduce selftests support
net: stmmac: dwmac1000: Fix Hash Filter

drivers/net/ethernet/stmicro/stmmac/Kconfig | 9 +
drivers/net/ethernet/stmicro/stmmac/Makefile | 2 +
drivers/net/ethernet/stmicro/stmmac/common.h | 1 +
drivers/net/ethernet/stmicro/stmmac/dwmac1000.h | 1 +
.../net/ethernet/stmicro/stmmac/dwmac1000_core.c | 16 +-
.../net/ethernet/stmicro/stmmac/dwmac100_core.c | 13 +
drivers/net/ethernet/stmicro/stmmac/dwmac4.h | 2 +
drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c | 17 +-
drivers/net/ethernet/stmicro/stmmac/dwxgmac2.h | 2 +
.../net/ethernet/stmicro/stmmac/dwxgmac2_core.c | 15 +-
drivers/net/ethernet/stmicro/stmmac/hwif.c | 9 +
drivers/net/ethernet/stmicro/stmmac/hwif.h | 21 +
drivers/net/ethernet/stmicro/stmmac/mmc.h | 4 -
drivers/net/ethernet/stmicro/stmmac/mmc_core.c | 13 +-
drivers/net/ethernet/stmicro/stmmac/stmmac.h | 22 +
.../net/ethernet/stmicro/stmmac/stmmac_ethtool.c | 8 +-
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 4 +-
.../net/ethernet/stmicro/stmmac/stmmac_selftests.c | 743 +++++++++++++++++++++
18 files changed, 889 insertions(+), 13 deletions(-)
create mode 100644 drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c

--
2.7.4