Linux-ARM-Kernel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: "Nazle Asmade, Muhammad Nazim Amirul" <muhammad.nazim.amirul.nazle.asmade@altera.com>
To: Andrew Lunn <andrew@lunn.ch>
Cc: "dinguyen@kernel.org" <dinguyen@kernel.org>,
	"maxime.chevallier@bootlin.com" <maxime.chevallier@bootlin.com>,
	"rmk+kernel@armlinux.org.uk" <rmk+kernel@armlinux.org.uk>,
	"krzk+dt@kernel.org" <krzk+dt@kernel.org>,
	"conor+dt@kernel.org" <conor+dt@kernel.org>,
	"robh@kernel.org" <robh@kernel.org>,
	"davem@davemloft.net" <davem@davemloft.net>,
	"edumazet@google.com" <edumazet@google.com>,
	"kuba@kernel.org" <kuba@kernel.org>,
	"pabeni@redhat.com" <pabeni@redhat.com>,
	"andrew+netdev@lunn.ch" <andrew+netdev@lunn.ch>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 2/3] arm64: dts: socfpga: agilex5: Add SoCDK TSN Config2 board
Date: Tue, 7 Jul 2026 01:41:44 +0000	[thread overview]
Message-ID: <64ddd953-d609-41d9-95d1-c251da6373cf@altera.com> (raw)
In-Reply-To: <bf7c6343-e0c0-47bd-a857-0f1881fc8659@lunn.ch>

On 3/7/2026 9:12 pm, Andrew Lunn wrote:
>>>> The delays are provided by the FPGA GMII-to-RGMII converter soft IP,
>>>> which is hardcoded in the FPGA bitstream and cannot be disabled or
>>>> modified from the driver side.
>>>>
>>>> Using phy-mode = "rgmii" is intentional here — it prevents the PHY from
>>>> adding its own internal delays on top, since the FPGA converter already
>>>> provides the full required delay. This is consistent with how all other
>>>> Agilex5 SoCDK board variants are described, as seen in commit
>>>> c5637e5ceb4b ("arm64: dts: socfpga: agilex5: Fix phy-mode to rgmii as HW
>>>> provides clock delay") already in Dinh Nguyen's tree, which applies the
>>>> same rationale across all Agilex5 boards.
>>>
>>> I've become more insistent that designs get this correct. So i don't
>>> care too much about past systems. Many vendors are having to fix up
>>> their drivers and DT in order to make new boards consistent.
>>>
>>> You can look at your system as the FPGA being the MAC, and the PHY is
>>> the PHY. The PCB is not providing the delay, the MAC is. This exactly
>>> fits the description above.
>>>
>>>        Andrew
>> Hi Andrew,
>>
>> Thank you for the clarification. We agree with your framework in
>> principle, but would like to explain why phy-mode = "rgmii" is the
>> appropriate description for this specific case.
> 
> So you want to be different to every other system? Please extend the
> text in that document to say that this device is special and has a
> different definition of phy-mode to all other systems.
> 
>> After getting more information from hw team, for Agilex specific device,
>> the RGMII timing delays on this board are provided by an FPGA delay
>> chain (Input/Output Delay Chain primitives in the FPGA fabric). The
>> reason for using the FPGA rather than the PHY is that the Marvell PHY on
>> this board only supports 0ns or 2ns delay steps — too coarse to meet the
>> RGMII timing requirements. The FPGA delay chain provides up to 63 steps
>> of ~0.1ns precision, which the hardware team has tuned at design time to
>> achieve correct signal timing.
> 
> As the text says, fine tuning is different. You can have fine tuning,
> in both the MAC or PHY, while using either rgmii or rgmii-id.
> 
> Also, you cannot fine tune just the MAC, tuning needs to take into
> account the PCB design, the length of the clock and data tracks on the
> PCB. You can however take into account the difference in timing within
> the FPGA.
> 
> Or does your FPGA team produce a different bitstream per board design,
> after some sort of calibration in order to determine what the PCB
> characteristics are?
> 
> This however opens up a new possibility. It does sound like you can
> produce a new bitstream with the delays set to just the tuning delay,
> not the 2ns + tuning? You need to decide if this is simpler than
> changing the MAC driver to mask the phy-mode.
> 
>> Changing to phy-mode = "rgmii-id" and having
>> the driver strip the delay before passing to the PHY would produce the
>> same hardware behaviour (PHY adds zero delay), but would add driver
>> complexity with no practical benefit, and would misrepresent the FPGA
>> delay as a driver-managed MAC delay when it is actually a fixed,
>> board-level hardware calibration.
> 
> Look at the wording again. It does not say it is driver managed.
> 
> # There are a small number of cases where the MAC has hard coded
> # delays which cannot be disabled.
> 
> This exactly fits your situation.
> 
>> Could you advise if you still prefer the rgmii-id approach given this
>> constraint?
> 
> rgmii-id is the correct value for your PCB design. Please follow what
> the text says.
> 
> 	Andrew
> 
> 	
Hi Andrew,

Sure, will reflect this changes in v2, Thanks for the review


BR,
Nazim

  reply	other threads:[~2026-07-07  1:42 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-06-30 13:31 [PATCH 0/3] arm64: dts/net: stmmac: Add Agilex5 SoCDK TSN Config2 board support muhammad.nazim.amirul.nazle.asmade
2026-06-30 13:31 ` [PATCH 1/3] dt-bindings: arm: altera: Add Agilex5 SoCDK TSN Config2 board board muhammad.nazim.amirul.nazle.asmade
2026-07-02  7:16   ` Krzysztof Kozlowski
2026-06-30 13:31 ` [PATCH 2/3] arm64: dts: socfpga: agilex5: Add SoCDK TSN Config2 board muhammad.nazim.amirul.nazle.asmade
2026-06-30 13:58   ` Andrew Lunn
2026-06-30 14:39     ` Nazle Asmade, Muhammad Nazim Amirul
2026-06-30 15:25       ` Andrew Lunn
2026-07-01  1:54         ` Nazle Asmade, Muhammad Nazim Amirul
2026-07-01 12:47           ` Andrew Lunn
2026-07-03  7:04             ` Nazle Asmade, Muhammad Nazim Amirul
2026-07-03 13:12               ` Andrew Lunn
2026-07-07  1:41                 ` Nazle Asmade, Muhammad Nazim Amirul [this message]
2026-07-02  7:17   ` Krzysztof Kozlowski
2026-07-03  5:28     ` Nazle Asmade, Muhammad Nazim Amirul
2026-06-30 13:31 ` [PATCH 3/3] net: stmmac: dwmac-socfpga: Add mac-mode DT property support muhammad.nazim.amirul.nazle.asmade
2026-06-30 14:02   ` Andrew Lunn
2026-06-30 14:04     ` Maxime Chevallier
2026-06-30 15:13       ` Nazle Asmade, Muhammad Nazim Amirul
2026-06-30 15:42         ` Maxime Chevallier
2026-07-01  1:32           ` Nazle Asmade, Muhammad Nazim Amirul
2026-07-01  6:49   ` Maxime Chevallier
2026-07-01 14:43   ` Andrew Lunn
2026-07-03  8:10     ` Nazle Asmade, Muhammad Nazim Amirul
2026-07-03 13:15       ` Andrew Lunn
2026-06-30 13:53 ` [PATCH 0/3] arm64: dts/net: stmmac: Add Agilex5 SoCDK TSN Config2 board support Maxime Chevallier
2026-07-01  2:09   ` Nazle Asmade, Muhammad Nazim Amirul

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=64ddd953-d609-41d9-95d1-c251da6373cf@altera.com \
    --to=muhammad.nazim.amirul.nazle.asmade@altera.com \
    --cc=andrew+netdev@lunn.ch \
    --cc=andrew@lunn.ch \
    --cc=conor+dt@kernel.org \
    --cc=davem@davemloft.net \
    --cc=devicetree@vger.kernel.org \
    --cc=dinguyen@kernel.org \
    --cc=edumazet@google.com \
    --cc=krzk+dt@kernel.org \
    --cc=kuba@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=maxime.chevallier@bootlin.com \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=rmk+kernel@armlinux.org.uk \
    --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