From: Antoine Tenart <antoine.tenart@bootlin.com>
To: Russell King - ARM Linux admin <linux@armlinux.org.uk>
Cc: Antoine Tenart <antoine.tenart@bootlin.com>,
davem@davemloft.net, netdev@vger.kernel.org,
linux-kernel@vger.kernel.org, thomas.petazzoni@bootlin.com,
maxime.chevallier@bootlin.com, gregory.clement@bootlin.com,
miquel.raynal@bootlin.com, nadavh@marvell.com,
stefanc@marvell.com, ymarkman@marvell.com, mw@semihalf.com
Subject: Re: [PATCH net-next 10/13] net: mvpp2: reset the XPCS while reconfiguring the serdes lanes
Date: Mon, 18 Feb 2019 11:50:27 +0100 [thread overview]
Message-ID: <20190218105027.GC3784@kwain> (raw)
In-Reply-To: <20190218104302.bp6ccmpkt26dflyx@shell.armlinux.org.uk>
Russell,
On Mon, Feb 18, 2019 at 10:43:02AM +0000, Russell King - ARM Linux admin wrote:
> On Mon, Feb 18, 2019 at 11:26:30AM +0100, Antoine Tenart wrote:
> > On Fri, Feb 15, 2019 at 05:12:24PM +0000, Russell King - ARM Linux admin wrote:
> > > On Fri, Feb 15, 2019 at 04:32:38PM +0100, Antoine Tenart wrote:
> > > > The documentation advises to set the XPCS in reset while reconfiguring
> > > > the serdes lanes. This seems to be a good thing to do, but the PPv2
> > > > driver wasn't doing it. This patch fixes it.
> > >
> > > Hmm. That statment seems to have some ambiguity in it - we do two
> > > "reconfigurations" - one may be upon initialisation, where the lane
> > > is already configured for 10Gbase-KR, and we're re-initialising it
> > > for the same mode. The other case is when we're switching between
> > > 10Gbase-KR and SGMII, or as will be the case with 2.5G support for
> > > the Alaska PHYs, 2500base-X.
> >
> > The configuration at the lane at boot time is dependent to the
> > firmware or bootloader configuration. On the mcbin, the lane may be
> > configured in 10Gbase-KR, but it could be configured in SGMII as well.
> > The configuration upon initialization and the re-configuration are quite
> > similar then, as we might change mode as well at boot time.
> >
> > You're right in that we might be re-configuring the lane for the same
> > exact mode at boot time, if it was already configured in the same mode.
> >
> > > Does this apply to reconfiguration of the serdes lane between
> > > 10Gbase-KR and slower modes?
> >
> > This applies only when configuring a line in a 10G mode,
> > mvpp22_gop_init_10gkr isn't called otherwise.
> >
> > When switching to an non-10G mode we might want to put the XPCS in reset
> > though, which is not done today with this patch.
>
> I'm merely pointing out the discrepency between the commit message and
> what is actually being done. I'm not particularly concerned about what
> happens at boot.
>
> We have four different transitions a port can go through, all of which
> reconfigure the serdes lanes:
>
> 1. 10gkr -> 10gkr
> 2. 10gkr -> non-10gkr
> 3. non-10gkr -> non-10gkr
> 4. non-10gkr -> 10gkr
>
> With this patch, XPCS is only placed into reset during the
> reconfiguration for cases 1 and 4. Case 3 doesn't matter (the XPCS
> should already be in reset right?) Case 2 isn't covered, and this
> leaves a rather big hole.
>
> It seems to me that if the documentation states that the XPCS needs to
> be placed in reset while the serdes is reconfigured, then what should
> be happening is:
>
> - at boot, place the XPCS into reset.
> - when we configure for 10gkr, release the reset once we've finished
> configuring the serdes.
> - when we configure away from 10gkr, place the XPCS back into reset
> before configuring the serdes.
>
> Merely placing the XPCS into reset while we configure the serdes for
> 10gkr doesn't seem to be "fixing" the driver to conform to your commit
> message opening statement.
That's right, we should put the XPCS in reset when booting and when
switching away from a 10G mode. I'll fix that in v2.
Antoine
--
Antoine Ténart, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
next prev parent reply other threads:[~2019-02-18 10:50 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-02-15 15:32 [PATCH net-next 00/13] net: mvpp2: various fixes Antoine Tenart
2019-02-15 15:32 ` [PATCH net-next 01/13] net: mvpp2: do not call phylink_mac_change if there is no event Antoine Tenart
2019-02-15 17:05 ` Russell King - ARM Linux admin
2019-02-18 10:40 ` Antoine Tenart
2019-02-15 15:32 ` [PATCH net-next 02/13] net: mvpp2: a port can be disabled even if we use the link IRQ Antoine Tenart
2019-02-15 15:32 ` [PATCH net-next 03/13] net: mvpp2: do not disable the port if the mode hasn't changed Antoine Tenart
2019-02-15 15:32 ` [PATCH net-next 04/13] net: mvpp2: reconfiguring the port interface is PPv2.2 specific Antoine Tenart
2019-02-15 15:32 ` [PATCH net-next 05/13] net: mvpp2: do not set the XLG MAC in reset when disabling a port Antoine Tenart
2019-02-15 15:32 ` [PATCH net-next 06/13] net: mvpp2: fix a typo in the header Antoine Tenart
2019-02-15 15:32 ` [PATCH net-next 07/13] net: mvpp2: fix validate for PPv2.1 Antoine Tenart
2019-02-15 15:32 ` [PATCH net-next 08/13] net: mvpp2: fix the computation of the RXQs Antoine Tenart
2019-02-15 15:32 ` [PATCH net-next 09/13] net: mvpp2: update the port documentation regarding the GoP Antoine Tenart
2019-02-15 15:32 ` [PATCH net-next 10/13] net: mvpp2: reset the XPCS while reconfiguring the serdes lanes Antoine Tenart
2019-02-15 17:12 ` Russell King - ARM Linux admin
2019-02-15 17:23 ` Stefan Chulski
2019-02-18 10:26 ` Antoine Tenart
2019-02-18 10:43 ` Russell King - ARM Linux admin
2019-02-18 10:47 ` Russell King - ARM Linux admin
2019-02-18 10:52 ` Antoine Tenart
2019-02-18 11:08 ` [EXT] " Stefan Chulski
2019-02-18 11:28 ` Russell King - ARM Linux admin
2019-02-18 11:33 ` Stefan Chulski
2019-02-18 10:50 ` Antoine Tenart [this message]
2019-02-15 15:32 ` [PATCH net-next 11/13] net: mvpp2: reset the XLG MAC in port_reset Antoine Tenart
2019-02-15 15:32 ` [PATCH net-next 12/13] net: mvpp2: fix alignment of MVPP2_GMAC_CONFIG_MII_SPEED definition Antoine Tenart
2019-02-15 15:32 ` [PATCH net-next 13/13] net: mvpp2: some AN fields require the link to be down when updated Antoine Tenart
2019-02-17 21:23 ` [PATCH net-next 00/13] net: mvpp2: various fixes David Miller
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=20190218105027.GC3784@kwain \
--to=antoine.tenart@bootlin.com \
--cc=davem@davemloft.net \
--cc=gregory.clement@bootlin.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=maxime.chevallier@bootlin.com \
--cc=miquel.raynal@bootlin.com \
--cc=mw@semihalf.com \
--cc=nadavh@marvell.com \
--cc=netdev@vger.kernel.org \
--cc=stefanc@marvell.com \
--cc=thomas.petazzoni@bootlin.com \
--cc=ymarkman@marvell.com \
/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).