All of lore.kernel.org
 help / color / mirror / Atom feed
From: Josua Mayer <josua@solid-run.com>
To: Vladimir Oltean <vladimir.oltean@nxp.com>
Cc: Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Shawn Guo <shawnguo@kernel.org>, Frank Li <Frank.Li@nxp.com>,
	Sascha Hauer <s.hauer@pengutronix.de>,
	Pengutronix Kernel Team <kernel@pengutronix.de>,
	Fabio Estevam <festevam@gmail.com>, Andrew Lunn <andrew@lunn.ch>,
	Vladimir Oltean <olteanv@gmail.com>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	Yazan Shhady <yazan.shhady@solid-run.com>,
	Mikhail Anikin <mikhail.anikin@solid-run.com>,
	Alexander Dahl <ada@thorsis.com>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"imx@lists.linux.dev" <imx@lists.linux.dev>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	Conor Dooley <conor.dooley@microchip.com>,
	Krzysztof Kozlowski <krzk@kernel.org>,
	"netdev@vger.kernel.org" <netdev@vger.kernel.org>
Subject: Re: [PATCH v4 2/2] arm64: dts: imx8dxl: Add SolidRun SoM and HummingBoard
Date: Mon, 11 May 2026 12:30:35 +0000	[thread overview]
Message-ID: <f0fdea25-6b2d-4b64-b925-a3f30c8e044c@solid-run.com> (raw)
In-Reply-To: <20260511112438.4fxvhelf242emzft@skbuf>

Hi Vladimir,

Am 11.05.26 um 13:24 schrieb Vladimir Oltean:
> On Mon, May 11, 2026 at 12:11:31PM +0200, Josua Mayer wrote:
>> +&eqos {
>> +	/* delays are added by connected ethernet-switch cpu port */
>> +	phy-mode = "rgmii";
> Documentation/devicetree/bindings/net/ethernet-controller.yaml says:
>
> # Informative
> # ===========
> #
> # 'phy-modes' & 'phy-connection-type' properties 'rgmii', 'rgmii-id',
> # 'rgmii-rxid', and 'rgmii-txid' are frequently used wrongly by
> # developers. This informative section clarifies their usage.
> #
> # The RGMII specification requires a 2ns delay between the data and
> # clock signals on the RGMII bus. How this delay is implemented is not
> # specified.
> #
> # One option is to make the clock traces on the PCB longer than the
> # data traces. A sufficient difference in length can provide the 2ns
> # delay. If both the RX and TX delays are implemented in this manner,
> # 'rgmii' should be used, so indicating the PCB adds the delays.
> #
> # If the PCB does not add these delays via extra long traces,
> # 'rgmii-id' should be used. Here, 'id' refers to 'internal delay',
> # where either the MAC or PHY adds the delay.
> #
> # If only one of the two delays are implemented via extra long clock
> # lines, either 'rgmii-rxid' or 'rgmii-txid' should be used,
> # indicating the MAC or PHY should implement one of the delays
> # internally, while the PCB implements the other delay.
> #
> # Device Tree describes hardware, and in this case, it describes the
> # PCB between the MAC and the PHY, if the PCB implements delays or
> # not.
> #
> # In practice, very few PCBs make use of extra long clock lines. Hence
> # any RGMII phy mode other than 'rgmii-id' is probably wrong, and is
> # unlikely to be accepted during review without details provided in
> # the commit description and comments in the .dts file.
>
> My understanding from the above is that when the RGMII delays are
> provided by the switch, the eqos should have phy-mode = "rgmii-id".
I had the reverse understanding, the switch port specifies rgmii-id,
and the cpu port specifies "rgmii".

The switch port has mode rgmii-id, indicating that someone should add delays.
It is a fixed link without PHY, so switch must add the delays.

From the cpu (eqos) perspcetive it is also a fixed link without phy,
so I specify rgmii indicating nobody should add delays.

Is this correct?

>
>> +	pinctrl-0 = <&eqos_pins>;
>> +	pinctrl-names = "default";
>> +	status = "okay";
>> +
>> +	fixed-link {
>> +		full-duplex;
>> +		speed = <1000>;
>> +	};
>> +};
>> +
>> +&lpspi0 {
>> +	cs-gpios = <&lsio_gpio1 8 GPIO_ACTIVE_LOW>, <&lsio_gpio1 7 GPIO_ACTIVE_LOW>;
>> +	pinctrl-0 = <&lpspi0_pins>, <&switch_pins>;
>> +	pinctrl-names = "default";
>> +	status = "okay";
>> +
>> +	ethernet-switch@0 {
>> +		compatible = "nxp,sja1110a";
>> +		reg = <0>;
>> +		reset-gpios = <&lsio_gpio4 3 GPIO_ACTIVE_LOW>;
>> +		spi-max-frequency = <4000000>;
>> +
>> +		ethernet-ports {
>> +			#address-cells = <1>;
>> +			#size-cells = <0>;
>> +
>> +			/* 100Base-TX on connector J26 */
>> +			port@1 {
> Some people might prefer seeing ethernet-port@N instead of port@N, to
> fully avoid confusion with dtschema/schemas/graph.yaml (although, the
> container node being ethernet-ports now, the confusion should be
> avoidable).
>
> Also, if you ever perform device tree fixups from the bootloader (like
> for setting status = "disabled" to status = "okay" for the ports that go
> to addon boards), please never hardcode fixup paths,
I was expecting device-tree overlays to be used, in which case aliases
are not needed.
> but always use eth
> aliases to get to them.
However if it is okay to add eth[0-9]+ aliases also for switch ports, I'll add them.
> This is in case the port node names ever change,
> to avoid bootloader regressions.
Good point!
>
>> +				reg = <0x1>;
>> +				phy-handle = <&switch_port1_base_tx_phy>;
>> +				phy-mode = "internal";
>> +			};

  reply	other threads:[~2026-05-11 12:30 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-11 10:11 [PATCH v4 0/2] arm64: dts: imx8dxl: Add SolidRun SoM and HummingBoard Josua Mayer
2026-05-11 10:11 ` [PATCH v4 1/2] dt-bindings: arm: fsl: Add SolidRun i.MX8DXL " Josua Mayer
2026-05-11 10:11 ` [PATCH v4 2/2] arm64: dts: imx8dxl: Add SolidRun " Josua Mayer
2026-05-11 11:24   ` Vladimir Oltean
2026-05-11 12:30     ` Josua Mayer [this message]
2026-05-11 12:50       ` Vladimir Oltean
2026-05-11 13:29     ` Andrew Lunn
2026-05-12 10:27       ` Josua Mayer
2026-05-12 23:05   ` sashiko-bot
2026-05-13  9:51     ` Josua Mayer

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=f0fdea25-6b2d-4b64-b925-a3f30c8e044c@solid-run.com \
    --to=josua@solid-run.com \
    --cc=Frank.Li@nxp.com \
    --cc=ada@thorsis.com \
    --cc=andrew@lunn.ch \
    --cc=conor+dt@kernel.org \
    --cc=conor.dooley@microchip.com \
    --cc=davem@davemloft.net \
    --cc=devicetree@vger.kernel.org \
    --cc=edumazet@google.com \
    --cc=festevam@gmail.com \
    --cc=imx@lists.linux.dev \
    --cc=kernel@pengutronix.de \
    --cc=krzk+dt@kernel.org \
    --cc=krzk@kernel.org \
    --cc=kuba@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mikhail.anikin@solid-run.com \
    --cc=netdev@vger.kernel.org \
    --cc=olteanv@gmail.com \
    --cc=pabeni@redhat.com \
    --cc=robh@kernel.org \
    --cc=s.hauer@pengutronix.de \
    --cc=shawnguo@kernel.org \
    --cc=vladimir.oltean@nxp.com \
    --cc=yazan.shhady@solid-run.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.