From: "Arınç ÜNAL" <arinc.unal@arinc9.com>
To: Andrew Lunn <andrew@lunn.ch>
Cc: "Rob Herring" <robh@kernel.org>,
"David S. Miller" <davem@davemloft.net>,
"Eric Dumazet" <edumazet@google.com>,
"Jakub Kicinski" <kuba@kernel.org>,
"Paolo Abeni" <pabeni@redhat.com>,
"Krzysztof Kozlowski" <krzysztof.kozlowski+dt@linaro.org>,
"Conor Dooley" <conor+dt@kernel.org>,
"George McCollister" <george.mccollister@gmail.com>,
"Florian Fainelli" <f.fainelli@gmail.com>,
"Vladimir Oltean" <olteanv@gmail.com>,
"Kurt Kanzenbach" <kurt@linutronix.de>,
"Matthias Brugger" <matthias.bgg@gmail.com>,
"AngeloGioacchino Del Regno"
<angelogioacchino.delregno@collabora.com>,
"Woojung Huh" <woojung.huh@microchip.com>,
UNGLinuxDriver@microchip.com,
"Linus Walleij" <linus.walleij@linaro.org>,
"Alvin Šipraga" <alsi@bang-olufsen.dk>,
"Clément Léger" <clement.leger@bootlin.com>,
"Marcin Wojtas" <mw@semihalf.com>,
"Russell King (Oracle)" <linux@armlinux.org.uk>,
"Lars Povlsen" <lars.povlsen@microchip.com>,
"Steen Hegelund" <Steen.Hegelund@microchip.com>,
"Daniel Machon" <daniel.machon@microchip.com>,
"Radhey Shyam Pandey" <radhey.shyam.pandey@amd.com>,
"Daniel Golle" <daniel@makrotopia.org>,
"Landen Chao" <Landen.Chao@mediatek.com>,
"DENG Qingfang" <dqfext@gmail.com>,
"Sean Wang" <sean.wang@mediatek.com>,
"Geert Uytterhoeven" <geert+renesas@glider.be>,
"Magnus Damm" <magnus.damm@gmail.com>,
"Maxime Chevallier" <maxime.chevallier@bootlin.com>,
"Nicolas Ferre" <nicolas.ferre@microchip.com>,
"Claudiu Beznea" <claudiu.beznea@microchip.com>,
"Marek Vasut" <marex@denx.de>,
"Claudiu Manoil" <claudiu.manoil@nxp.com>,
"Alexandre Belloni" <alexandre.belloni@bootlin.com>,
"John Crispin" <john@phrozen.org>,
"Madalin Bucur" <madalin.bucur@nxp.com>,
"Ioana Ciornei" <ioana.ciornei@nxp.com>,
"Lorenzo Bianconi" <lorenzo@kernel.org>,
"Felix Fietkau" <nbd@nbd.name>,
"Horatiu Vultur" <horatiu.vultur@microchip.com>,
"Oleksij Rempel" <linux@rempel-privat.de>,
"Alexandre Torgue" <alexandre.torgue@foss.st.com>,
"Giuseppe Cavallaro" <peppe.cavallaro@st.com>,
"Jose Abreu" <joabreu@synopsys.com>,
"Grygorii Strashko" <grygorii.strashko@ti.com>,
"Sekhar Nori" <nsekhar@ti.com>,
"Shyam Pandey" <radhey.shyam.pandey@xilinx.com>,
mithat.guner@xeront.com, erkin.bozoglu@xeront.com,
netdev@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-mediatek@lists.infradead.org,
linux-renesas-soc@vger.kernel.org
Subject: Re: [PATCH net-next v2 07/10] dt-bindings: net: enforce phylink bindings on certain ethernet controllers
Date: Thu, 21 Sep 2023 21:21:40 +0300 [thread overview]
Message-ID: <85cc3b27-417e-4cf4-9f77-347a338c9d67@arinc9.com> (raw)
In-Reply-To: <a8d49992-4fa8-4a9f-b954-79011a3040a8@lunn.ch>
On 21.09.2023 16:00, Andrew Lunn wrote:
>> - Link descriptions must be required on ethernet controllers. We don't care
>> whether some Linux driver can or cannot find the PHY or set up a fixed
>> link without looking at the devicetree.
>
> That can lead to future surprises, and breakage.
>
> Something which is not used is not tested, and so sometimes wrong, and
> nobody knows. Say the driver is extended to a new device and actually
> does need to use this never before used information. You then find it
> is wrong, and you get a regression.
>
> We have had issues like this before. There are four rgmii phy-link
> modes. We have had PHY drivers which ignored one of those modes, it
> silently accepted it, but did not change the hardware to actually use
> that mode. The PHY continues to use its reset defaults or strapping,
> and it worked. A lot of device trees ended up using this mode. And it
> was not the same as reset defaults/strapping.
>
> And then somebody needed that fourth mode, and made it actually
> work. And all those boards wrongly using that mode broke.
>
> The lesson i learned from that episode is that anything in device tree
> must actually be used and tested.
It looks like the root cause here was the lack of dt-bindings to only allow
the phy-mode values the hardware supports. What I see here is the driver
change should've been tested on all different hardware the driver controls
then the improper describing of hardware on the devicetree source file
addressed.
If a devicetree change that ensures proper describing of hardware is found
to break a driver in the future, then that exposes a bug on the driver and
the driver will have to be fixed. I don't see this upholding writing
dt-bindings that ensures proper describing of the hardware.
>
>> Although I see dsa.yaml and dsa-port.yaml mostly consist of describing an
>> ethernet switch with CPU port(s), there're properties that are specific to
>> DSA, such as dsa,member on dsa.yaml and dsa-tag-protocol and label on
>> dsa-port.yaml.
>
> I would say dsa,member does describe the hardware. It provides two
> bits of information:
>
> Which cluster of switches does this switch belong to. You probably can
> derive it using the DSA links between switches, which is also a
> hardware property. But having it in device tree makes it simpler.
>
> Which switch is this within a cluster. You need to be able to say:
> Send this frame out Port X of switch Y. How does a switch know it is
> Y? It could be strapping, which is clearly a hardware property.
>
> dsa-tag-protocol is similar to phy-mode. It tells you the protocol
> running between the CPU port and the SoC master interface. You often
> can imply it, but again, it could be determined by strapping on the
> switch.
>
> label is an interesting one, and probably would not be accepted if it
> was proposed now. But it has been around a long time. It also does
> describe the hardware, it is what is printed on the case next to the
> RJ45. To make the user experience simpler, we then try to make the
> linux interface name match the label on the case.
Looks like we can incorporate dsa.port and dsa-port.yaml into
ethernet-switch.yaml and ethernet-switch-port.yaml with adjustments.
Arınç
next prev parent reply other threads:[~2023-09-21 18:39 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-16 11:08 [PATCH net-next v2 00/10] define and enforce phylink bindings Arınç ÜNAL
2023-09-16 11:08 ` [PATCH net-next v2 01/10] net: dsa: mt7530: register OF node for internal MDIO bus Arınç ÜNAL
2023-09-16 11:08 ` [PATCH net-next v2 02/10] dt-bindings: net: dsa: microchip,lan937x: add missing ethernet on example Arınç ÜNAL
2023-09-16 11:08 ` [PATCH net-next v2 03/10] dt-bindings: net: dsa: realtek: fix MDIO bus child node restrictions Arınç ÜNAL
2023-09-16 11:08 ` [PATCH net-next v2 04/10] dt-bindings: net: dsa: nxp,sja1105: improve MDIO bus bindings Arınç ÜNAL
2023-09-18 18:22 ` Rob Herring
2023-09-16 11:08 ` [PATCH net-next v2 05/10] dt-bindings: net: dsa: define MDIO bus child node Arınç ÜNAL
2023-09-16 14:11 ` Andrew Lunn
2023-09-16 15:30 ` Arınç ÜNAL
2023-09-18 18:44 ` Rob Herring
2023-09-16 11:08 ` [PATCH net-next v2 06/10] dt-bindings: net: define phylink bindings Arınç ÜNAL
2023-09-16 11:08 ` [PATCH net-next v2 07/10] dt-bindings: net: enforce phylink bindings on certain ethernet controllers Arınç ÜNAL
2023-09-16 14:58 ` Rob Herring
2023-09-16 16:00 ` Arınç ÜNAL
2023-09-18 18:13 ` Rob Herring
2023-09-21 11:38 ` Arınç ÜNAL
2023-09-21 13:00 ` Andrew Lunn
2023-09-21 18:21 ` Arınç ÜNAL [this message]
2023-09-21 23:29 ` Andrew Lunn
2023-09-22 5:47 ` Arınç ÜNAL
2023-09-16 11:09 ` [PATCH net-next v2 08/10] dt-bindings: net: dsa: marvell: convert to json-schema Arınç ÜNAL
2023-09-16 14:05 ` Andrew Lunn
2023-09-16 15:44 ` Arınç ÜNAL
2023-09-18 18:40 ` Rob Herring
2023-09-16 11:09 ` [PATCH net-next v2 09/10] MAINTAINERS: update MARVELL 88E6XXX ETHERNET SWITCH document file name Arınç ÜNAL
2023-09-16 11:09 ` [PATCH net-next v2 10/10] dt-bindings: net: marvell-armada-370-neta: convert to json-schema Arınç ÜNAL
[not found] ` <169487631064.1637966.13545721653989465162.robh@kernel.org>
2023-09-16 16:15 ` Arınç ÜNAL
2023-09-22 12:40 ` [PATCH net-next v2 00/10] define and enforce phylink bindings Russell King (Oracle)
2023-09-22 21:57 ` Arınç ÜNAL
2023-09-22 22:29 ` Russell King (Oracle)
2023-09-22 22:44 ` Andrew Lunn
2023-09-23 6:06 ` Arınç ÜNAL
2023-09-23 7:51 ` Arınç ÜNAL
2023-09-23 14:54 ` Andrew Lunn
2023-09-22 22:36 ` Andrew Lunn
2023-09-23 6:28 ` Arınç ÜNAL
2023-09-23 15:12 ` Andrew Lunn
2023-09-23 17:51 ` Arınç ÜNAL
2023-09-24 3:15 ` Andrew Lunn
2023-09-24 7:49 ` Arınç ÜNAL
2023-09-24 14:55 ` Andrew Lunn
2023-09-25 7:47 ` Arınç ÜNAL
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=85cc3b27-417e-4cf4-9f77-347a338c9d67@arinc9.com \
--to=arinc.unal@arinc9.com \
--cc=Landen.Chao@mediatek.com \
--cc=Steen.Hegelund@microchip.com \
--cc=UNGLinuxDriver@microchip.com \
--cc=alexandre.belloni@bootlin.com \
--cc=alexandre.torgue@foss.st.com \
--cc=alsi@bang-olufsen.dk \
--cc=andrew@lunn.ch \
--cc=angelogioacchino.delregno@collabora.com \
--cc=claudiu.beznea@microchip.com \
--cc=claudiu.manoil@nxp.com \
--cc=clement.leger@bootlin.com \
--cc=conor+dt@kernel.org \
--cc=daniel.machon@microchip.com \
--cc=daniel@makrotopia.org \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=dqfext@gmail.com \
--cc=edumazet@google.com \
--cc=erkin.bozoglu@xeront.com \
--cc=f.fainelli@gmail.com \
--cc=geert+renesas@glider.be \
--cc=george.mccollister@gmail.com \
--cc=grygorii.strashko@ti.com \
--cc=horatiu.vultur@microchip.com \
--cc=ioana.ciornei@nxp.com \
--cc=joabreu@synopsys.com \
--cc=john@phrozen.org \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=kuba@kernel.org \
--cc=kurt@linutronix.de \
--cc=lars.povlsen@microchip.com \
--cc=linus.walleij@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=linux-renesas-soc@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=linux@rempel-privat.de \
--cc=lorenzo@kernel.org \
--cc=madalin.bucur@nxp.com \
--cc=magnus.damm@gmail.com \
--cc=marex@denx.de \
--cc=matthias.bgg@gmail.com \
--cc=maxime.chevallier@bootlin.com \
--cc=mithat.guner@xeront.com \
--cc=mw@semihalf.com \
--cc=nbd@nbd.name \
--cc=netdev@vger.kernel.org \
--cc=nicolas.ferre@microchip.com \
--cc=nsekhar@ti.com \
--cc=olteanv@gmail.com \
--cc=pabeni@redhat.com \
--cc=peppe.cavallaro@st.com \
--cc=radhey.shyam.pandey@amd.com \
--cc=radhey.shyam.pandey@xilinx.com \
--cc=robh@kernel.org \
--cc=sean.wang@mediatek.com \
--cc=woojung.huh@microchip.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®