Re: [PATCH net-next v3 0/6] provide generic net selftest support

From: Oleksij Rempel
Date: Tue Apr 27 2021 - 03:15:28 EST


Hi Joakim,

On Tue, Apr 27, 2021 at 04:48:42AM +0000, Joakim Zhang wrote:
> > Hi Joakim,
> >
> > On Fri, Apr 23, 2021 at 03:18:32AM +0000, Joakim Zhang wrote:
> > >
> > > Hi Oleksij,
> > >
> > > I look both stmmac selftest code and this patch set. For stmmac, if PHY
> > doesn't support loopback, it will fallthrough to MAC loopback.
> > > You provide this generic net selftest support based on PHY loopback, I have a
> > question, is it possible to extend it also support MAC loopback later?
> >
> > Yes. If you have interest and time to implement it, please do.
> > It should be some kind of generic callback as phy_loopback() and if PHY and
> > MAC loopbacks are supported we need to tests both variants.
> Hi Oleksij,
>
> Yes, I can try to implement it when I am free, but I still have some questions:
> 1. Where we place the generic function? Such as mac_loopback().
> 2. MAC is different from PHY, need program different registers to enable loopback on different SoCs, that means we need get MAC private data from "struct net_device".

ACK

> So we need a callback for MAC drivers, where we extend this callback? Could be "struct net_device_ops"? Such as ndo_set_loopback?

yes. Sounds good for me. ndo_set_loopback could be implemented for
ethernet controllers, DSA and even CAN.

Regards,
Oleksij

> > > > -----Original Message-----
> > > > From: Oleksij Rempel <o.rempel@xxxxxxxxxxxxxx>
> > > > Sent: 2021年4月19日 21:01
> > > > To: Shawn Guo <shawnguo@xxxxxxxxxx>; Sascha Hauer
> > > > <s.hauer@xxxxxxxxxxxxxx>; Andrew Lunn <andrew@xxxxxxx>; Florian
> > > > Fainelli <f.fainelli@xxxxxxxxx>; Heiner Kallweit
> > > > <hkallweit1@xxxxxxxxx>; Fugang Duan <fugang.duan@xxxxxxx>
> > > > Cc: Oleksij Rempel <o.rempel@xxxxxxxxxxxxxx>; kernel@xxxxxxxxxxxxxx;
> > > > netdev@xxxxxxxxxxxxxxx; linux-arm-kernel@xxxxxxxxxxxxxxxxxxx;
> > > > linux-kernel@xxxxxxxxxxxxxxx; dl-linux-imx <linux-imx@xxxxxxx>;
> > > > Fabio Estevam <festevam@xxxxxxxxx>; David Jander
> > > > <david@xxxxxxxxxxx>; Russell King <linux@xxxxxxxxxxxxxxx>; Philippe
> > > > Schenker <philippe.schenker@xxxxxxxxxxx>
> > > > Subject: [PATCH net-next v3 0/6] provide generic net selftest
> > > > support
> > > >
> > > > changes v3:
> > > > - make more granular tests
> > > > - enable loopback for all PHYs by default
> > > > - fix allmodconfig build errors
> > > > - poll for link status update after switching to the loopback mode
> > > >
> > > > changes v2:
> > > > - make generic selftests available for all networking devices.
> > > > - make use of net_selftest* on FEC, ag71xx and all DSA switches.
> > > > - add loopback support on more PHYs.
> > > >
> > > > This patch set provides diagnostic capabilities for some iMX, ag71xx
> > > > or any DSA based devices. For proper functionality, PHY loopback support is
> > needed.
> > > > So far there is only initial infrastructure with basic tests.
> > > >
> > > > Oleksij Rempel (6):
> > > > net: phy: execute genphy_loopback() per default on all PHYs
> > > > net: phy: genphy_loopback: add link speed configuration
> > > > net: add generic selftest support
> > > > net: fec: make use of generic NET_SELFTESTS library
> > > > net: ag71xx: make use of generic NET_SELFTESTS library
> > > > net: dsa: enable selftest support for all switches by default
> > > >
> > > > drivers/net/ethernet/atheros/Kconfig | 1 +
> > > > drivers/net/ethernet/atheros/ag71xx.c | 20 +-
> > > > drivers/net/ethernet/freescale/Kconfig | 1 +
> > > > drivers/net/ethernet/freescale/fec_main.c | 7 +
> > > > drivers/net/phy/phy.c | 3 +-
> > > > drivers/net/phy/phy_device.c | 35 +-
> > > > include/linux/phy.h | 1 +
> > > > include/net/dsa.h | 2 +
> > > > include/net/selftests.h | 12 +
> > > > net/Kconfig | 4 +
> > > > net/core/Makefile | 1 +
> > > > net/core/selftests.c | 400
> > > > ++++++++++++++++++++++
> > > > net/dsa/Kconfig | 1 +
> > > > net/dsa/slave.c | 21 ++
> > > > 14 files changed, 500 insertions(+), 9 deletions(-) create mode
> > > > 100644 include/net/selftests.h create mode 100644
> > > > net/core/selftests.c
> > > >
> > > > --
> > > > 2.29.2
> > >
> > > _______________________________________________
> > > linux-arm-kernel mailing list
> > > linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
> > > https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Flists
> > > .infradead.org%2Fmailman%2Flistinfo%2Flinux-arm-kernel&amp;data=04%7
> > C0
> > >
> > 1%7Cqiangqing.zhang%40nxp.com%7C8796bf53e46b4b1be92b08d9061186f9
> > %7C686
> > >
> > ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C637547494614753358%7CU
> > nknown%7
> > >
> > CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiL
> > CJXV
> > >
> > CI6Mn0%3D%7C1000&amp;sdata=x%2BUFB%2B1Xp0zbR1mG5HDGvqBUvKhX
> > VJn337T%2BB
> > > D7cO6g%3D&amp;reserved=0
> >
> > --
> > Pengutronix e.K. |
> > |
> > Steuerwalder Str. 21 |
> > https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.pe
> > ngutronix.de%2F&amp;data=04%7C01%7Cqiangqing.zhang%40nxp.com%7C87
> > 96bf53e46b4b1be92b08d9061186f9%7C686ea1d3bc2b4c6fa92cd99c5c301635
> > %7C0%7C0%7C637547494614753358%7CUnknown%7CTWFpbGZsb3d8eyJWIj
> > oiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C10
> > 00&amp;sdata=K2dsGVxEXv%2FtC7p0l4TFlLlaqzzTa6ktrbSdcCJ10J0%3D&amp;
> > reserved=0 |
> > 31137 Hildesheim, Germany | Phone: +49-5121-206917-0
> > |
> > Amtsgericht Hildesheim, HRA 2686 | Fax:
> > +49-5121-206917-5555 |

--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |