From: Vincent Jardin <vjardin@free.fr>
To: Vladimir Oltean <vladimir.oltean@nxp.com>
Cc: u-boot@lists.u-boot-project.org, Tom Rini <trini@konsulko.com>,
Peng Fan <peng.fan@nxp.com>,
Ioana Ciornei <ioana.ciornei@nxp.com>,
Hemant Agrawal <hemant.agrawal@nxp.com>,
Meenakshi Aggarwal <meenakshi.aggarwal@nxp.com>,
Wasim Khan <wasim.khan@nxp.com>,
Priyanka Jain <priyanka.jain@nxp.com>
Subject: Re: [PATCH v5 08/13] board: lx2160a: serdes: add serdes1:2x40g
Date: Thu, 1 Oct 2026 22:40:45 +0200 [thread overview]
Message-ID: <ar7FTdJUk30BviBl@L30177.local> (raw)
In-Reply-To: <20261001145529.k6qqeqdl7ebdwwsg@skbuf>
Hi Vladimir,
On Thu, Oct 01, 2026 at 05:55:29PM +0300, Vladimir Oltean wrote:
> So it's *not* that for 25G you need to multiply by 2 and for 10G you
> don't. It's the fact that a single PLL can produce a single clock net
> frequency, and no clock net frequency can satisfy both 10G and 25G.
Thanks for the explanation. I'll update it into the v6 comments,
something like:
* A PLL makes one clock net, and each lane takes its rate from the
* clock net of one PLL, through its own BY_N_RATE_SEL. 25GE and 100GE
* lanes run at 25.78125 Gbaud, twice the 12.890625 GHz clock net of
* PLLF. 40GE lanes run at 10.3125 Gbaud, which no ratio of 12.890625
* GHz gives: they need the 10.3125 GHz clock net, which only PLLS
* makes (PLLnCR1[FRATE_SEL]=00110b). So the lanes move to PLLS.
> Technically "does not power PLLS up" rather than "powers it down".
ok. I'll word it for the v6:
* Protocol 13 does not use PLLS, and NXP's RCWs for it power it down
* (SRDS_PLL_PD_PLL2=1), which leaves PLLSRSTCTL[DIS] set: software can
* clear it.
> > PLLS then gets the values a board booted with
> > protocol 20 reads back.
>
> This sentence doesn't make too much grammatical sense
ok !, I'll reword it.
> So SRDS_PRTCL_S1 does not influence the refclk that the PLL expects,
> instead SRDS_PLL_REF_CLK_SEL_S1 does.
I just checked the RM:
for 40GE, the PLLS bit selects 156MHz (0) or 161MHz (1).
NXP's protocol 20 QDS RCW and ours use 1.
> Technically, the board does not *have* to feed PLLS a refclk
> frequency. We have the SRDS_INTRA_REF_CLK_S1 option
ok
So, the code only needs 161MHz at PLLS, where it comes
from does not matter.
On nbxv3 both SD1 reference clock inputs are fed 161MHz,
so I have not tested SRDS_INTRA_REF_CLK_S1.
v6 names both sources.
> Is this what you intend? It doesn't necessarily read as a conscious
> decision.
It is a conscious decision, but the comment did not say so.
Only 161MHz is supported/checked, because it is the only one I can run.
For 156MHz, PLLSCR0[REFCLK_SLE] would be 00010b, and I would also
need the CR1/CR5 values the SoC loads for it, which I cannot check.
It can be added later, by a board that handles it.
v6 will state so, and also that the PLL lock bit does not prove the
reference frequency:
* Only a 161.1328125 MHz PLLS reference clock is supported. It comes
* from the SD1 PLLS reference clock input, or from the PLLF one when
* the RCW sets SRDS_INTRA_REF_CLK_S1=1, as 25GE and 100GE already need
* 161.1328125 MHz on PLLF. 156.25 MHz, also valid for a 10.3125 GHz
* clock net, would need PLLSCR0[REFCLK_SEL]=00010b and is not handled.
* Nothing here can check the reference clock: PLLSRSTCTL[LOCK] does
* not tell its frequency.
Thanks,
Vincent
next prev parent reply other threads:[~2026-10-01 20:41 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-29 17:59 [PATCH v5 00/13] board: lx2160a: runtime SD 1 lane configuration for LX2160A boards Vincent Jardin
2026-09-29 17:59 ` [PATCH v5 01/13] board: lx2160a: serdes: drop the split subcommand Vincent Jardin
2026-09-29 17:59 ` [PATCH v5 02/13] board: lx2160a: serdes: rename serdes1:split to serdes1:100g4x25g Vincent Jardin
2026-09-29 17:59 ` [PATCH v5 03/13] board: lx2160a: serdes: rename SPLIT_POLL_US to SRDS_POLL_US Vincent Jardin
2026-10-01 13:05 ` Vladimir Oltean
2026-09-29 17:59 ` [PATCH v5 04/13] board: lx2160a: serdes: move the SD1 halt and reset into helpers Vincent Jardin
2026-10-01 13:07 ` Vladimir Oltean
2026-09-29 17:59 ` [PATCH v5 05/13] board: lx2160a: serdes: set SD1 with a table Vincent Jardin
2026-10-01 13:10 ` Vladimir Oltean
2026-09-29 17:59 ` [PATCH v5 06/13] board: lx2160a: serdes: report unknown SD1 cases Vincent Jardin
2026-10-01 13:15 ` Vladimir Oltean
2026-09-29 17:59 ` [PATCH v5 07/13] board: lx2160a: serdes: no SD1 config once MC runs Vincent Jardin
2026-09-29 17:59 ` [PATCH v5 08/13] board: lx2160a: serdes: add serdes1:2x40g Vincent Jardin
2026-10-01 14:55 ` Vladimir Oltean
2026-10-01 20:40 ` Vincent Jardin [this message]
2026-09-29 17:59 ` [PATCH v5 09/13] board: lx2160a: serdes: enter a SD1 mode through the mode it starts from Vincent Jardin
2026-09-29 17:59 ` [PATCH v5 10/13] board: lx2160a: serdes: add serdes1:40g4x10g Vincent Jardin
2026-09-29 17:59 ` [PATCH v5 11/13] board: lx2160a: serdes: add serdes1:100g4x10g Vincent Jardin
2026-10-01 15:21 ` Vladimir Oltean
2026-09-29 17:59 ` [PATCH v5 12/13] doc: lx2160a: document the sd1 hwconfig option Vincent Jardin
2026-10-01 15:25 ` Vladimir Oltean
2026-10-01 20:41 ` Vincent Jardin
2026-09-29 17:59 ` [PATCH v5 13/13] board: nbxv3: apply sd1 hwconfig before MC starts Vincent Jardin
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=ar7FTdJUk30BviBl@L30177.local \
--to=vjardin@free.fr \
--cc=hemant.agrawal@nxp.com \
--cc=ioana.ciornei@nxp.com \
--cc=meenakshi.aggarwal@nxp.com \
--cc=peng.fan@nxp.com \
--cc=priyanka.jain@nxp.com \
--cc=trini@konsulko.com \
--cc=u-boot@lists.u-boot-project.org \
--cc=vladimir.oltean@nxp.com \
--cc=wasim.khan@nxp.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