From: Choong Yong Liang <yong.liang.choong@linux.intel.com>
To: "Russell King (Oracle)" <linux@armlinux.org.uk>
Cc: "Simon Horman" <horms@kernel.org>,
"Jose Abreu" <joabreu@synopsys.com>,
"Jose Abreu" <Jose.Abreu@synopsys.com>,
"David E Box" <david.e.box@linux.intel.com>,
"Thomas Gleixner" <tglx@linutronix.de>,
"Ingo Molnar" <mingo@redhat.com>,
"Borislav Petkov" <bp@alien8.de>,
"Dave Hansen" <dave.hansen@linux.intel.com>,
"H . Peter Anvin" <hpa@zytor.com>,
"Rajneesh Bhardwaj" <irenic.rajneesh@gmail.com>,
"David E Box" <david.e.box@intel.com>,
"Andrew Lunn" <andrew+netdev@lunn.ch>,
"David S . Miller" <davem@davemloft.net>,
"Eric Dumazet" <edumazet@google.com>,
"Jakub Kicinski" <kuba@kernel.org>,
"Paolo Abeni" <pabeni@redhat.com>,
"Maxime Coquelin" <mcoquelin.stm32@gmail.com>,
"Alexandre Torgue" <alexandre.torgue@foss.st.com>,
"Jiawen Wu" <jiawenwu@trustnetic.com>,
"Mengyuan Lou" <mengyuanlou@net-swift.com>,
"Heiner Kallweit" <hkallweit1@gmail.com>,
"Hans de Goede" <hdegoede@redhat.com>,
"Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>,
"Richard Cochran" <richardcochran@gmail.com>,
"Andrew Halaney" <ahalaney@redhat.com>,
"Serge Semin" <fancer.lancer@gmail.com>,
x86@kernel.org, linux-kernel@vger.kernel.org,
netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org,
linux-stm32@st-md-mailman.stormreply.com,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH net-next v6 1/7] net: phylink: use act_link_an_mode to determine PHY
Date: Wed, 5 Feb 2025 14:50:31 +0800 [thread overview]
Message-ID: <c25c2da7-18fa-46b7-b992-fb5b17a01749@linux.intel.com> (raw)
In-Reply-To: <Z6ICO06RbJ1ulDh1@shell.armlinux.org.uk>
On 4/2/2025 8:04 pm, Russell King (Oracle) wrote:
> On Tue, Feb 04, 2025 at 02:10:14PM +0800, Choong Yong Liang wrote:
>> When the interface mode is SGMII and act_link_an_mode is MLO_AN_INBAND,
>> switching to the 2500BASE-X interface mode will trigger
>> phylink_major_config, and act_link_an_mode will be updated to MLO_AN_PHY
>> in phylink_pcs_neg_mode when the PCS does not support in-band mode.
>> The MAC and PCS will configure according to the interface mode
>> and act_link_an_mode.
>
> act_link_an_mode must only ever be updated by phylink_major_config()
> since it defines state for the currently configured mode, and must
> stay in sync with how the hardware has been programmed at all times.
>
>> However, when the interface goes link down and then link up again, the MAC
>> will attempt to attach the PHY.
>
> Why is the MAC trying to disconnect and reconnect the PHY on link
> changes? Do you really mean "link down" and "link up" as in "connection
> with the link partner" or do you mean administratively taking the
> interface down and up (which is a completely different thing.)
>
The "link down" and "link up" I mention in this part refer to using the
command:
ifconfig <interface> down/up
>> The interface mode remains as 2500BASE-X,
>> but cfg_link_an_mode still holds MLO_AN_INBAND. This causes a failure to
>> attach the PHY.
>
> Hmm.
>
> pl->link_interface is the configured setting from firmware etc and doesn't
> change.
>
> pl->cfg_link_an_mode is the configured mode from firmware etc which was
> passed to phylink_create(), and again doesn't change.
>
> So there should be no difference unless something weird is going on,
> which as you're talking about stmmac, could be the case.
>
Thank you for pointing that out.
I think I was confused between pl->link_interface and
pl->link_config.interface. The function phylink_attach_phy() uses
pl->link_interface, whereas phylink_expects_phy() uses
pl->link_config.interface.
When the interface switches from SGMII to 2500BASE-X,
pl->link_config.interface is updated by phylink_major_config().
So, when the STMMAC link goes down and comes up again,
it is blocked by phylink_expects_phy().
At this point, pl->cfg_link_an_mode is MLO_AN_INBAND and
pl->link_config.interface is 2500BASE-X.
Since phylink_expects_phy() is trying to achieve the same checking
condition as phylink_attach_phy(), it should use pl->link_interface for the
check as well.
Does that make sense to you?
> More information needed, but as this patch currently stands, I deem it
> to be incorrect, sorry.
>
next prev parent reply other threads:[~2025-02-05 6:52 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-02-04 6:10 [PATCH net-next v6 0/7] Enable SGMII and 2500BASEX interface mode switching for Intel platforms Choong Yong Liang
2025-02-04 6:10 ` [PATCH net-next v6 1/7] net: phylink: use act_link_an_mode to determine PHY Choong Yong Liang
2025-02-04 12:04 ` Russell King (Oracle)
2025-02-05 6:50 ` Choong Yong Liang [this message]
2025-02-04 6:10 ` [PATCH net-next v6 2/7] net: pcs: xpcs: re-initiate clause 37 Auto-negotiation Choong Yong Liang
2025-02-04 6:10 ` [PATCH net-next v6 3/7] arch: x86: add IPC mailbox accessor function and add SoC register access Choong Yong Liang
2025-02-04 6:10 ` [PATCH net-next v6 4/7] stmmac: intel: configure SerDes according to the interface mode Choong Yong Liang
2025-02-04 8:25 ` Ilpo Järvinen
2025-02-06 2:20 ` Choong Yong Liang
2025-02-04 12:08 ` Russell King (Oracle)
2025-02-06 2:22 ` Choong Yong Liang
2025-02-06 10:11 ` Russell King (Oracle)
2025-02-04 18:13 ` Simon Horman
2025-02-06 2:23 ` Choong Yong Liang
2025-02-04 6:10 ` [PATCH net-next v6 5/7] net: stmmac: configure SerDes on mac_finish Choong Yong Liang
2025-02-04 6:10 ` [PATCH net-next v6 6/7] stmmac: intel: interface switching support for EHL platform Choong Yong Liang
2025-02-04 6:10 ` [PATCH net-next v6 7/7] stmmac: intel: interface switching support for ADL-N platform Choong Yong Liang
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=c25c2da7-18fa-46b7-b992-fb5b17a01749@linux.intel.com \
--to=yong.liang.choong@linux.intel.com \
--cc=Jose.Abreu@synopsys.com \
--cc=ahalaney@redhat.com \
--cc=alexandre.torgue@foss.st.com \
--cc=andrew+netdev@lunn.ch \
--cc=bp@alien8.de \
--cc=dave.hansen@linux.intel.com \
--cc=davem@davemloft.net \
--cc=david.e.box@intel.com \
--cc=david.e.box@linux.intel.com \
--cc=edumazet@google.com \
--cc=fancer.lancer@gmail.com \
--cc=hdegoede@redhat.com \
--cc=hkallweit1@gmail.com \
--cc=horms@kernel.org \
--cc=hpa@zytor.com \
--cc=ilpo.jarvinen@linux.intel.com \
--cc=irenic.rajneesh@gmail.com \
--cc=jiawenwu@trustnetic.com \
--cc=joabreu@synopsys.com \
--cc=kuba@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-stm32@st-md-mailman.stormreply.com \
--cc=linux@armlinux.org.uk \
--cc=mcoquelin.stm32@gmail.com \
--cc=mengyuanlou@net-swift.com \
--cc=mingo@redhat.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=platform-driver-x86@vger.kernel.org \
--cc=richardcochran@gmail.com \
--cc=tglx@linutronix.de \
--cc=x86@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.