Re: [PATCH net-next v3 0/9] net: phy: add Lynx PCS MDIO module
From: Michael Walle <hidden>
Date: 2020-06-30 06:01:48
Hi all, Am 2020-06-22 11:34, schrieb Vladimir Oltean:
On Mon, 22 Jun 2020 at 12:29, Russell King - ARM Linux admin [off-list ref] wrote:quoted
On Mon, Jun 22, 2020 at 01:54:42AM +0300, Ioana Ciornei wrote:quoted
Add support for the Lynx PCS as a separate module in drivers/net/phy/. The advantage of this structure is that multiple ethernet or switch drivers used on NXP hardware (ENETC, Felix DSA switch etc) can share the same implementation of PCS configuration and runtime management. The PCS is represented as an mdio_device and the callbacks exported are highly tied with PHYLINK and can't be used without it. The first 3 patches add some missing pieces in PHYLINK and the locked mdiobus write accessor. Next, the Lynx PCS MDIO module is added as a standalone module. The majority of the code is extracted from the Felix DSA driver. The last patch makes the necessary changes in the Felix driver in order to use the new common PCS implementation. At the moment, USXGMII (only with in-band AN and speeds up to 2500), SGMII, QSGMII (with and without in-band AN) and 2500Base-X (only w/o in-band AN) are supported by the Lynx PCS MDIO module since these were also supported by Felix and no functional change is intended at this time.Overall, I think we need to sort out the remaining changes in phylink before moving forward with this patch set - I've made some progress with Florian and the Broadcom DSA switches late last night. I'm now working on updating the felix DSA driver.What needs to be done in the felix driver that is not part of this series? Maybe you could review this instead?quoted
There's another reason - having looked at the work I did with this same PHY, I think you are missing configuration of the link timer, which is different in SGMII and 1000BASE-X. Please can you look at the code I came up with? "dpaa2-mac: add 1000BASE-X/SGMII PCS support". Thanks.felix does not have support code for 1000base-x, so I think it's natural to not clutter this series with things like that. Things like USXGMII up to 10G, 10GBase-R, are also missing, for much of the same reason - we wanted to make no functional change to the existing code, precisely because we wanted it to go in quickly. There are multiple things that are waiting for it: - Michael Walle's enetc patches are going to use pcs-lynx
How likely is it that this will be sorted out before the 5.9 merge window will be closed? The thing is, we have boards out in the wild which have a non-working ethernet with their stock bootloader and which depend on the following patch series to get that fixed: https://lore.kernel.org/netdev/20200528063847.27704-1-michael@walle.cc/ (local) Thus, if this is going to take longer, I'd do a respin of that series. We already missed the 5.8 release and I don't know if a "Fixes:" tag (or a CC stable) is appropriate here because it is kind of a new functionality. -michael