mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Lucas Tanure <tanure@linux.com>
To: Maxime Chevallier <maxime.chevallier@bootlin.com>,
	xianwei.zhao@amlogic.com, Andrew Lunn <andrew+netdev@lunn.ch>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@kernel.org>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Neil Armstrong <neil.armstrong@linaro.org>,
	Kevin Hilman <khilman@baylibre.com>,
	Jerome Brunet <jbrunet@baylibre.com>,
	Martin Blumenstingl <martin.blumenstingl@googlemail.com>,
	Maxime Coquelin <mcoquelin.stm32@gmail.com>,
	Alexandre Torgue <alexandre.torgue@foss.st.com>
Cc: netdev@vger.kernel.org, devicetree@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-amlogic@lists.infradead.org, linux-kernel@vger.kernel.org,
	linux-stm32@st-md-mailman.stormreply.com
Subject: Re: [RFC PATCH 6/6] arm64: dts: amlogic: t7: khadas-vim4: enable the ethernet port
Date: Mon, 5 Oct 2026 11:04:25 +0100	[thread overview]
Message-ID: <f246ff74-a30e-4381-a6a0-ab51261f9e90@linux.com> (raw)
In-Reply-To: <d1ae6c21-72a9-4bc7-aaaf-9051d0f6b1b0@bootlin.com>

On 04/10/2026 21:58, Maxime Chevallier wrote:
> Hi Lucas,
> 
> On 10/4/26 16:40, Lucas Tanure wrote:
>> The board carries a Realtek RTL8211F gigabit PHY on the external
>> management bus, connected to the MAC over RGMII.
>>
>> Enable the controller, hand it the ethernet pins and point it at the
>> PHY. The clock delays RGMII needs are supplied by the MAC rather than
>> the PHY: 2ns on transmit and 2000ps on receive, the values the vendor
>> kernel programs.
>>
>> The PHY interrupt output is wired to GPIOH_6, so describe it and let
>> link changes be reported instead of polled. The PHY reset pin is driven
>> by an RC network on the board, not by the SoC, so there is no reset line
>> to describe.
>>
>> Tested at 930Mbit/s sustained receive over a minute, with no MAC error
>> counters moving in either direction.
>>
>> Assisted-by: LLM
>> Signed-off-by: Lucas Tanure <tanure@linux.com>
>> ---
>>   .../amlogic/amlogic-t7-a311d2-khadas-vim4.dts | 28 +++++++++++++++++++
>>   1 file changed, 28 insertions(+)
>>
>> diff --git a/arch/arm64/boot/dts/amlogic/amlogic-t7-a311d2-khadas-vim4.dts b/arch/arm64/boot/dts/amlogic/amlogic-t7-a311d2-khadas-vim4.dts
>> index 0fa83362b417..5d0365ddde72 100644
>> --- a/arch/arm64/boot/dts/amlogic/amlogic-t7-a311d2-khadas-vim4.dts
>> +++ b/arch/arm64/boot/dts/amlogic/amlogic-t7-a311d2-khadas-vim4.dts
>> @@ -14,6 +14,7 @@ / {
>>   	compatible = "khadas,vim4", "amlogic,a311d2", "amlogic,t7";
>>   
>>   	aliases {
>> +		ethernet0 = &ethmac;
>>   		serial0 = &uart_a;
>>   		mmc0 = &sd_emmc_c;
>>   		mmc1 = &sd_emmc_b;
>> @@ -256,6 +257,33 @@ xtal: xtal-clk {
>>   	};
>>   };
>>   
>> +&ethmac {
>> +	status = "okay";
>> +	pinctrl-0 = <&eth_pins>, <&eth_rgmii_pins>;
>> +	pinctrl-names = "default";
>> +
>> +	/*
>> +	 * The RGMII clock delays are added by the MAC, so the PHY is
>> +	 * asked for the mode that adds none.
>> +	 */
>> +	phy-mode = "rgmii";
> 
> In devicetree, "rgmii" means that the delays are inserted at the hardware
> level, i.e. with longer PCB traces for the clock. With the above comment,
> this is therefore wrong.
> 
> As a rule of thumb, "phy-mode = rgmii" is almost always wrong.
> 
> The right behaviour here is to represent the HW as it is, that is to say
> pass phy-mode = "rgmii-id"; delays are internal. In DT we don't say who
> inserts the delays (MAC or PHY), that's for the drive to figure out.
> 
> If the MAC inserts the delays, then it needs to fixup the mode passed to the PHY so that
> they follow this doc :
> 
> https://www.kernel.org/doc/html/v7.2/networking/phy.html#rg-mii-electrical-interface-considerations
> 
> Maxime
Hi Maxime,

Thanks for the review. You are right about what the mode names mean,
but after a few tests I do not think this board can follow it. I tried
all three:

   rgmii-id    23 of 23 received frames had a bad CRC, DHCP never
               completes.
   rgmii-txid  receive becomes perfect, but then the peer sees nothing
               we send, not even an error counter.
   rgmii       1Gbit/s, 930Mbit/s sustained, no error counter moving.

There was nothing to tune on the PHY side either: the RTL8211F delays
are single enable bits, TXCR bit 8 and RXCR bit 3, on or off.

The modes whose names promise internal delays are the same ones where
the glue switches its own off, so there is no value that is both right
by phy.rst and working here. Keeping "rgmii" and the comment, so the
next person sees why before trying it. Glad to help test and convert
this board if the driver's phy-mode handling is ever reworked along
with the other Amlogic boards.

Thanks,
Lucas


  reply	other threads:[~2026-10-05 10:04 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-04 14:40 [RFC PATCH 0/6] Add ethernet support for the Amlogic T7 Lucas Tanure
2026-10-04 14:40 ` [RFC PATCH 1/6] dt-bindings: net: amlogic,meson-dwmac: spell out the compatible combinations Lucas Tanure
2026-10-05 10:39   ` Conor Dooley
2026-10-04 14:40 ` [RFC PATCH 2/6] dt-bindings: net: amlogic,meson-dwmac: add amlogic,t7-dwmac Lucas Tanure
2026-10-05 10:46   ` Conor Dooley
2026-10-04 14:40 ` [RFC PATCH 3/6] net: stmmac: dwmac-meson8b: add support for the Amlogic T7 Lucas Tanure
2026-10-04 15:28   ` Neil Armstrong
2026-10-04 21:13   ` Maxime Chevallier
2026-10-04 14:40 ` [RFC PATCH 4/6] arm64: dts: amlogic: t7: add the ethernet pinctrl nodes Lucas Tanure
2026-10-04 15:28   ` Neil Armstrong
2026-10-04 14:40 ` [RFC PATCH 5/6] arm64: dts: amlogic: t7: add the ethernet controller Lucas Tanure
2026-10-04 15:29   ` Neil Armstrong
2026-10-04 14:40 ` [RFC PATCH 6/6] arm64: dts: amlogic: t7: khadas-vim4: enable the ethernet port Lucas Tanure
2026-10-04 15:29   ` Neil Armstrong
2026-10-04 20:58   ` Maxime Chevallier
2026-10-05 10:04     ` Lucas Tanure [this message]
2026-10-05 15:56   ` Andrew Lunn

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=f246ff74-a30e-4381-a6a0-ab51261f9e90@linux.com \
    --to=tanure@linux.com \
    --cc=alexandre.torgue@foss.st.com \
    --cc=andrew+netdev@lunn.ch \
    --cc=conor+dt@kernel.org \
    --cc=davem@davemloft.net \
    --cc=devicetree@vger.kernel.org \
    --cc=edumazet@kernel.org \
    --cc=jbrunet@baylibre.com \
    --cc=khilman@baylibre.com \
    --cc=krzk+dt@kernel.org \
    --cc=kuba@kernel.org \
    --cc=linux-amlogic@lists.infradead.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-stm32@st-md-mailman.stormreply.com \
    --cc=martin.blumenstingl@googlemail.com \
    --cc=maxime.chevallier@bootlin.com \
    --cc=mcoquelin.stm32@gmail.com \
    --cc=neil.armstrong@linaro.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=robh@kernel.org \
    --cc=xianwei.zhao@amlogic.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

all inboxes | Powered by JetHome®