From: Vladimir Oltean <vladimir.oltean@nxp.com>
To: Sean Anderson <sean.anderson@seco.com>
Cc: "Vinod Koul" <vkoul@kernel.org>,
"Kishon Vijay Abraham I" <kishon@kernel.org>,
linux-phy@lists.infradead.org,
"Madalin Bucur" <madalin.bucur@nxp.com>,
linux-arm-kernel@lists.infradead.org,
"Camelia Alexandra Groza" <camelia.groza@nxp.com>,
devicetree@vger.kernel.org, "Rob Herring" <robh+dt@kernel.org>,
linuxppc-dev@lists.ozlabs.org,
"Bagas Sanjaya" <bagasdotme@gmail.com>,
"Krzysztof Kozlowski" <krzysztof.kozlowski+dt@linaro.org>,
"Ioana Ciornei" <ioana.ciornei@nxp.com>,
"Bartosz Golaszewski" <brgl@bgdev.pl>,
"Fernández Rojas" <noltari@gmail.com>,
"Jonas Gorski" <jonas.gorski@gmail.com>,
"Jonathan Corbet" <corbet@lwn.net>,
"Li Yang" <leoyang.li@nxp.com>,
"Linus Walleij" <linus.walleij@linaro.org>,
"Michael Turquette" <mturquette@baylibre.com>,
"Shawn Guo" <shawnguo@kernel.org>,
"Stephen Boyd" <sboyd@kernel.org>,
linux-clk@vger.kernel.org, linux-doc@vger.kernel.org,
linux-gpio@vger.kernel.org
Subject: Re: [PATCH v14 00/15] phy: Add support for Lynx 10G SerDes
Date: Fri, 11 Aug 2023 19:36:37 +0300 [thread overview]
Message-ID: <20230811163637.bs7a46juasjgnmf4@skbuf> (raw)
In-Reply-To: <26623d0c-8a5a-614b-7df7-69214aaec524@seco.com>
On Fri, Aug 11, 2023 at 11:43:01AM -0400, Sean Anderson wrote:
> >> > > Here is an illustrative example (sorry, I don't have a board with the
> >> > > right refclk on that PLL, to verify all the way):
> >> > >
> >> > > ... snip ...
> >> >
> >> > (which of course complicates the process of building the PBIs...)
> >>
> >> Maybe this is the language barrier, but what are you trying to say here?
> >
> > I said that I don't understand. Can you please clarify what you were
> > trying to transmit with this comment?
>
> Well, right now I produce my RCWs by generating a second RCW with e.g.
> 1133 replaced by 3333. But doing this is a more involved change. Just a
> minor issue, really.
Ok, so a comment related to your private build environment, and not a
counter-argument to the solution. It wasn't clear.
> That said, I don't think this is the best approach moving forward.
> Much like many other platforms, users should be able to plug in an SFP
> module and Linux should configure things appropriately. An RCW
> approach requires some kind of configuration tool to swap out the
> bootloaders, which isn't as good of a user experience.
I am quite familiar with the SFP use case you are talking about. SolidRun
requested that on LX2160 with the Lynx 28G driver, and that works fine
there. What I am proposing is for the exact same approach to be used
with Lynx 10G as well.
Let me explain that approach, because your mention of "swapping out the
bootloaders" makes it appear as if you are not visualising what I am
proposing.
The Lynx SerDes family has 2 PLLs, and more lanes (4 or 8). Each lane
uses one PLL or the other, to derive its protocol frequency. Through the
RCW, you provision the 2 PLL frequencies that may be used by the lanes
at runtime.
The Lynx 28G SerDes driver reads the PLL frequencies in
lynx_28g_pll_read_configuration(), and determines the interface modes
supportable by each PLL (this is used by phylink). But it never changes
those PLL frequencies, since that operation is practically impossible in
the general sense (PLLs are shared by multiple lanes, so changing a PLL
frequency disrupts all lanes that use it).
So, you see, the RCW approach that I am proposing is not the RCW
approach that you are thinking about. I was never suggesting to swap the
bootloader when the user plugs in a different SFP. I am just suggesting
that the RCW is provisioned for 2 different PLL frequencies, and those PLL
frequencies give you 2 networking protocol speed options. Depending on
what each lane needs (the information comes from phylink), you can move
each lane to one PLL or the other, at runtime, in the Linux SerDes driver,
to support the speeds of 1G and 10G, or 10G and 25G. You can't get more
than 2 speeds at the same time with just 2 PLLs, and this is an
intrinsic limitation of the fact that there are just 2 PLLs.
If the RCW and board do not provision the PLL frequencies for more
than 1 lane speed, then no dynamic protocol switching is possible, and
the supported_interfaces of each lane contains a single bit: the
reset-time protocol.
next prev parent reply other threads:[~2023-08-11 16:36 UTC|newest]
Thread overview: 64+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-13 16:05 [PATCH v14 00/15] phy: Add support for Lynx 10G SerDes Sean Anderson
2023-04-13 16:05 ` [PATCH v14 01/15] dt-bindings: phy: Add 2500BASE-X and 10GBASE-R Sean Anderson
2023-04-13 16:05 ` [PATCH v14 02/15] dt-bindings: phy: Add Lynx 10G phy binding Sean Anderson
2023-04-13 16:05 ` [PATCH v14 03/15] dt-bindings: Convert gpio-mmio to yaml Sean Anderson
2023-04-18 20:37 ` Rob Herring
2023-05-11 9:18 ` Bartosz Golaszewski
2023-04-13 16:05 ` [PATCH v14 04/15] dt-bindings: gpio-mmio: Add compatible for QIXIS Sean Anderson
2023-04-13 16:05 ` [PATCH v14 05/15] dt-bindings: clock: Add ids for Lynx 10g PLLs Sean Anderson
2023-04-13 16:05 ` [PATCH v14 06/15] clk: Add Lynx 10G SerDes PLL driver Sean Anderson
2023-05-08 9:15 ` Vinod Koul
2023-05-08 15:31 ` Sean Anderson
2023-05-09 13:00 ` Vinod Koul
2023-05-09 15:26 ` Sean Anderson
2023-05-16 13:22 ` Vinod Koul
2023-05-16 15:11 ` Sean Anderson
2023-05-16 16:32 ` Vinod Koul
2023-04-13 16:05 ` [PATCH v14 07/15] phy: fsl: Add Lynx 10G SerDes driver Sean Anderson
2023-05-08 9:22 ` Vinod Koul
2023-05-08 15:28 ` Sean Anderson
2023-05-16 13:36 ` Vinod Koul
2023-05-16 15:12 ` Sean Anderson
2023-04-13 16:06 ` [PATCH v14 08/15] phy: lynx10g: Enable by default on Layerscape Sean Anderson
2023-04-13 16:06 ` [PATCH v14 09/15] arm64: dts: ls1046a: Add serdes nodes Sean Anderson
2023-04-13 16:06 ` [PATCH v14 10/15] arm64: dts: ls1046ardb: Add serdes descriptions Sean Anderson
2023-04-13 16:06 ` [PATCH v14 11/15] arm64: dts: ls1088a: Add serdes nodes Sean Anderson
2023-04-13 16:06 ` [PATCH v14 12/15] arm64: dts: ls1088a: Prevent PCSs from probing as phys Sean Anderson
2023-04-13 16:06 ` [PATCH v14 13/15] arm64: dts: ls1088ardb: Remove aquantia interrupt Sean Anderson
2023-04-13 16:06 ` [PATCH v14 14/15] arm64: dts: ls1088ardb: Add SFP cage Sean Anderson
2023-04-13 16:06 ` [PATCH v14 15/15] arm64: dts: ls1088ardb: Add serdes descriptions Sean Anderson
2023-04-25 19:50 ` [PATCH v14 00/15] phy: Add support for Lynx 10G SerDes Vladimir Oltean
2023-04-25 20:22 ` Sean Anderson
2023-04-26 10:51 ` Vladimir Oltean
2023-04-26 14:50 ` Sean Anderson
2023-04-29 17:24 ` Vladimir Oltean
2023-05-01 15:03 ` Sean Anderson
2023-05-22 14:42 ` Sean Anderson
2023-05-22 15:00 ` Vladimir Oltean
2023-06-09 19:19 ` Sean Anderson
2023-06-10 22:21 ` Vladimir Oltean
2023-06-12 14:35 ` Sean Anderson
2023-06-12 16:33 ` Vladimir Oltean
2023-06-12 20:46 ` Sean Anderson
2023-06-13 14:27 ` Vladimir Oltean
2023-08-10 10:26 ` Vladimir Oltean
2023-08-10 19:58 ` Sean Anderson
2023-08-11 16:12 ` Vladimir Oltean
2023-09-13 22:02 ` Vladimir Oltean
2023-08-11 15:08 ` Vladimir Oltean
2023-08-11 15:43 ` Sean Anderson
2023-08-11 16:36 ` Vladimir Oltean [this message]
2023-08-21 12:49 ` Vladimir Oltean
2023-08-21 17:45 ` Sean Anderson
2023-08-21 18:13 ` Ioana Ciornei
2023-08-21 18:20 ` Vladimir Oltean
2023-08-21 18:46 ` Sean Anderson
2023-08-21 19:58 ` Vladimir Oltean
2023-08-21 21:06 ` Sean Anderson
2023-08-21 22:48 ` Vladimir Oltean
2023-08-21 23:39 ` Sean Anderson
2023-08-21 23:59 ` Vladimir Oltean
2023-08-24 22:09 ` Sean Anderson
2023-08-25 14:43 ` Vladimir Oltean
2023-08-22 14:55 ` Ioana Ciornei
2023-08-24 20:54 ` Sean Anderson
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=20230811163637.bs7a46juasjgnmf4@skbuf \
--to=vladimir.oltean@nxp.com \
--cc=bagasdotme@gmail.com \
--cc=brgl@bgdev.pl \
--cc=camelia.groza@nxp.com \
--cc=corbet@lwn.net \
--cc=devicetree@vger.kernel.org \
--cc=ioana.ciornei@nxp.com \
--cc=jonas.gorski@gmail.com \
--cc=kishon@kernel.org \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=leoyang.li@nxp.com \
--cc=linus.walleij@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-clk@vger.kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-phy@lists.infradead.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=madalin.bucur@nxp.com \
--cc=mturquette@baylibre.com \
--cc=noltari@gmail.com \
--cc=robh+dt@kernel.org \
--cc=sboyd@kernel.org \
--cc=sean.anderson@seco.com \
--cc=shawnguo@kernel.org \
--cc=vkoul@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).