From: "Russell King (Oracle)" <linux@armlinux.org.uk>
To: Stefan Eichenberger <eichest@gmail.com>
Cc: Andrew Lunn <andrew@lunn.ch>,
davem@davemloft.net, edumazet@google.com, kuba@kernel.org,
pabeni@redhat.com, robh@kernel.org,
krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org,
lxu@maxlinear.com, hkallweit1@gmail.com, michael@walle.cc,
netdev@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [RFC PATCH 2/2] net: phy: mxl-gpy: add new device tree property to disable SGMII autoneg
Date: Thu, 2 May 2024 15:14:13 +0100 [thread overview]
Message-ID: <ZjOftdnoToSSsVJ1@shell.armlinux.org.uk> (raw)
In-Reply-To: <ZjOYuP5ypnH8GJWd@eichest-laptop>
On Thu, May 02, 2024 at 03:44:24PM +0200, Stefan Eichenberger wrote:
> Hi Russell,
>
> Sorry for the late reply but I wanted to give you some update after
> testing with the latest version of your patches on net-queue.
I've also been randomly distracted, and I've been meaning to ping you
to test some of the updates.
http://git.armlinux.org.uk/cgit/linux-arm.git/log/?h=net-queue
The current set begins with:
"net: sfp-bus: constify link_modes to sfp_select_interface()" which is
now in net-next, then the patches between and including:
"net: phylink: validate sfp_select_interface() returned interface" to
"net: phylink: clean up phylink_resolve()"
That should get enough together for the PCS "neg" mode to be consistent
with what the MAC driver sees.
The remaining bits that I still need to sort out is the contents of
phylink_pcs_neg_mode() for the 802.3z mode with PHY, and also working
out some way of handling the SGMII case where the PHY and PCS disagree
(one only supporting inband the other not supporting inband.)
I'm not sure when I'll be able to get to that - things are getting
fairly chaotic again, meaning I have again less time to spend on
mainline... and I'd like to take some vacation time very soon (I really
need some time off!)
> I think I see the problem you are describing.
>
> When the driver starts it will negotiate MLO_AN_PHY based on the
> capabilities of the PHY and of the PCS. However when I switch to 1GBit/s
> it should switch to MLO_AN_INBAND but this does not work. Here the
> output of phylink:
I'm designing this to work the other way - inband being able to fall
back to PHY (out of band) mode rather than PHY mode being able to fall
forwards to inband mode.
> The problem is that the PCS continues to be in phy mode but the PHY
> driver currently only supports LINK_INBAND_ENABLE and SGMII for 1GBit/s.
>
> What I'm wondering is if it wouldn't make sense to adapt the phy driver
> to support MLO_AN_PHY in SGMII/1000BASE-X mode.
PHYs have no idea about MLO_AN_xxx at all, neither should they. This
is not part of phylib's API, and I don't think PHYs should ever know
about MLO_AN_xxx stuff (which is something purely between phylink and
the MAC driver.) The structure here is:
MAC PCS PHY
^ ^ ^ ^-----.
v v v |
MAC driver <-> PCS driver <-------> PHY driver |
^ ^ ^ |
| | | |
MLO_AN_xxx PHYLINK_PCS_NEG_xxx | |
` ' | |
\ / v |
phylink <----------------> phylib <------'
MLO_AN_xxx is far beyond the PHY, and more or less defines the overall
"system" operating mode. PHYLINK_PCS_NEG_xxx defines the properties
used for the PCS link to the next device towards the media. This is
more of relevance to what the PHY should be using on its MAC-facing
interface.
> Currently the mxl-gpy phy driver can only support:
> 10/100/1000 MBit/s: SGMII with MLO_AN_INBAND
> 2500MBit/s 2500Base-X with MLO_AN_PHY
>
> However, the PHY would also support the following mode:
> 10/100/1000 MBit/s: SGMII with MLO_AN_PHY
The problem with this is some PHYs will not pass data _unless_ their
SGMII control frame to the PCS has been acknowledged by the PCS - in
other words, inband has to be used. However, that can be coped with,
because such a PHY driver should be saying that it only supports
LINK_INBAND_ENABLE in SGMII mode... and firmware must tell phylink
that it wants to use inband mode (as that's exactly what firmware
must do today in this situation.)
> I just don't know how the PHY driver could know about what it should
> configure.
Currently, I haven't added an interface to cope with the case where
a PHY says LINK_INBAND_ENABLE | LINK_INBAND_DISABLE to allow it to be
configured in that case... that's something that will eventually be
needed.
--
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 80Mbps down 10Mbps up. Decent connectivity at last!
next prev parent reply other threads:[~2024-05-02 14:14 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-16 12:10 [RFC PATCH 0/2] mxl-gpy: add option to match SGMII speed to the TPI speed Stefan Eichenberger
2024-04-16 12:10 ` [RFC PATCH 1/2] dt-bindings: net: phy: gpy2xx: add sgmii-match-tpi-speed property Stefan Eichenberger
2024-04-16 12:10 ` [RFC PATCH 2/2] net: phy: mxl-gpy: add new device tree property to disable SGMII autoneg Stefan Eichenberger
2024-04-16 13:46 ` Andrew Lunn
2024-04-16 15:43 ` Stefan Eichenberger
2024-04-16 15:48 ` Russell King (Oracle)
2024-04-16 16:00 ` Russell King (Oracle)
2024-04-16 16:02 ` Andrew Lunn
2024-04-16 16:24 ` Russell King (Oracle)
2024-04-16 17:23 ` Stefan Eichenberger
2024-04-16 18:12 ` Russell King (Oracle)
2024-04-17 7:22 ` Stefan Eichenberger
2024-04-18 15:01 ` Russell King (Oracle)
2024-04-24 14:58 ` Russell King (Oracle)
2024-04-24 15:56 ` Stefan Eichenberger
2024-04-24 18:13 ` Russell King (Oracle)
2024-04-25 11:24 ` Stefan Eichenberger
2024-04-25 14:30 ` Russell King (Oracle)
2024-04-25 15:51 ` Stefan Eichenberger
2024-04-25 16:30 ` Russell King (Oracle)
2024-04-25 17:33 ` Stefan Eichenberger
2024-04-25 20:15 ` Russell King (Oracle)
2024-05-02 13:44 ` Stefan Eichenberger
2024-05-02 14:14 ` Russell King (Oracle) [this message]
2024-05-03 16:35 ` Stefan Eichenberger
2024-05-03 22:41 ` Russell King (Oracle)
2024-05-06 12:29 ` Stefan Eichenberger
2024-04-23 13:23 ` Simon Horman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZjOftdnoToSSsVJ1@shell.armlinux.org.uk \
--to=linux@armlinux.org.uk \
--cc=andrew@lunn.ch \
--cc=conor+dt@kernel.org \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=edumazet@google.com \
--cc=eichest@gmail.com \
--cc=hkallweit1@gmail.com \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lxu@maxlinear.com \
--cc=michael@walle.cc \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=robh@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).