[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20251021-macb-eyeq5-v1-0-3b0b5a9d2f85@bootlin.com>
Date: Tue, 21 Oct 2025 18:32:41 +0200
From: Théo Lebrun <theo.lebrun@...tlin.com>
To: Andrew Lunn <andrew+netdev@...n.ch>,
"David S. Miller" <davem@...emloft.net>, Eric Dumazet <edumazet@...gle.com>,
Jakub Kicinski <kuba@...nel.org>, Paolo Abeni <pabeni@...hat.com>,
Rob Herring <robh@...nel.org>, Krzysztof Kozlowski <krzk+dt@...nel.org>,
Conor Dooley <conor+dt@...nel.org>,
Nicolas Ferre <nicolas.ferre@...rochip.com>,
Claudiu Beznea <claudiu.beznea@...on.dev>,
Vladimir Kondratiev <vladimir.kondratiev@...ileye.com>,
Grégory Clement <gregory.clement@...tlin.com>,
Russell King <linux@...linux.org.uk>, Vinod Koul <vkoul@...nel.org>,
Kishon Vijay Abraham I <kishon@...nel.org>,
Michael Turquette <mturquette@...libre.com>,
Stephen Boyd <sboyd@...nel.org>,
Thomas Bogendoerfer <tsbogend@...ha.franken.de>,
Philipp Zabel <p.zabel@...gutronix.de>
Cc: netdev@...r.kernel.org, devicetree@...r.kernel.org,
linux-kernel@...r.kernel.org, linux-mips@...r.kernel.org,
linux-phy@...ts.infradead.org, linux-clk@...r.kernel.org,
Tawfik Bayouk <tawfik.bayouk@...ileye.com>,
Thomas Petazzoni <thomas.petazzoni@...tlin.com>,
Benoît Monin <benoit.monin@...tlin.com>,
Maxime Chevallier <maxime.chevallier@...tlin.com>,
Théo Lebrun <theo.lebrun@...tlin.com>,
Andrew Lunn <andrew@...n.ch>, Jerome Brunet <jbrunet@...libre.com>
Subject: [PATCH net-next 00/12] net: macb: EyeQ5 support (alongside generic
PHY driver in syscon)
This series' goal is adding support to the MACB driver for EyeQ5 GEM.
The specifics for this compatible are:
- HW cannot add dummy bytes at the start of IP packets for alignment
purposes. The behavior can be detected using DCFG6 so it isn't
attached to compatible data.
- The hardware LSO/TSO is known to be buggy: add a compatible
capability flag to force disable it.
- At init, we have to wiggle two syscon registers that configure the
PHY integration.
In past attempts [0] we did it in macb_config->init() using a syscon
regmap. That was far from ideal so now a generic PHY driver
abstracts that away. We reuse the bp->sgmii_phy field used by some
compatibles.
We have to add a phy_set_mode() call as the PHY power on sequence
depends on whether we do RGMII or SGMII.
I want drivers/phy/phy-eyeq5-eth.c to appear in this series for
review-ability, but that leads to this series having many patches
unrelated to net & MACB:
- [02/12] dt-bindings: soc: mobileye: OLB is an Ethernet PHY provider on EyeQ5
[07/12] phy: Add driver for EyeQ5 Ethernet PHY wrapper
[09/12] clk: eyeq: add EyeQ5 children auxiliary device for generic PHYs
Add the generic PHY driver that lives in the OLB register region.
In Linux, we model that with auxiliary devices (spawned by clk-eyeq).
[08/12] clk: eyeq: use the auxiliary device creation helper
[10/12] reset: eyeq: drop device_set_of_node_from_dev() done by parent
Auxiliary devices don't inherit a dev->of_node by default. Previously
we addressed that with a call to device_set_of_node_from_dev() from
each clk-eyeq children device probe. Jerome Brunet improved the
situation with creation helpers that do the call in the parent. We
take that patch to ensure we get a dev->of_node assigned to our PHY
device. [1]
Merging all this won't be easy, sorry. Is this split across trees OK?
The net-next part is pretty evident, it is the rest that appears
complex to merge to me. I can resend the series exploded if useful
(or at least split net-next versus the rest).
=> net-next
[PATCH net-next 01/12] dt-bindings: net: cdns,macb: add Mobileye EyeQ5 ethernet interface
[PATCH net-next 03/12] net: macb: match skb_reserve(skb, NET_IP_ALIGN) with HW alignment
[PATCH net-next 04/12] net: macb: add no LSO capability (MACB_CAPS_NO_LSO)
[PATCH net-next 05/12] net: macb: rename bp->sgmii_phy field to bp->phy
[PATCH net-next 06/12] net: macb: Add "mobileye,eyeq5-gem" compatible
=> linux-phy
[PATCH net-next 02/12] dt-bindings: soc: mobileye: OLB is an Ethernet PHY provider on EyeQ5
[PATCH net-next 07/12] phy: Add driver for EyeQ5 Ethernet PHY wrapper
=> linux-clk
[PATCH net-next 08/12] clk: eyeq: use the auxiliary device creation helper
[PATCH net-next 09/12] clk: eyeq: add EyeQ5 children auxiliary device for generic PHYs
=> linux-reset
[PATCH net-next 10/12] reset: eyeq: drop device_set_of_node_from_dev() done by parent
=> linux-mips
[PATCH net-next 11/12] MIPS: mobileye: eyeq5: add two Cadence GEM Ethernet controllers
[PATCH net-next 12/12] MIPS: mobileye: eyeq5-epm: add two Cadence GEM Ethernet PHYs
About potential conflicts, Benoît Monin has a series [5] touching
dt-bindings, clk-eyeq, reset-eyeq and the Mobileye MAINTAINERS section.
Maybe [02/12] dt-bindings of OLB shouldn't go to the linux-phy tree (?).
Thanks,
Have a nice day,
Théo
[0]: https://lore.kernel.org/lkml/20250627-macb-v2-15-ff8207d0bb77@bootlin.com/
[1]: https://lore.kernel.org/lkml/20250611-clk-aux-v1-0-fb6575ed86a7@baylibre.com/
[2]: https://lore.kernel.org/lkml/20250903-clk-eyeq7-v1-19-3f5024b5d6e2@bootlin.com/
Past versions of the MACB EyeQ5 patches:
- March 2025: [PATCH net-next 00/13] Support the Cadence MACB/GEM
instances on Mobileye EyeQ5 SoCs
https://lore.kernel.org/lkml/20250321-macb-v1-0-537b7e37971d@bootlin.com/
- June 2025: [PATCH net-next v2 00/18] Support the Cadence MACB/GEM
instances on Mobileye EyeQ5 SoCs
https://lore.kernel.org/lkml/20250627-macb-v2-0-ff8207d0bb77@bootlin.com/
- August 2025: [PATCH net v3 00/16] net: macb: various fixes & cleanup
https://lore.kernel.org/lkml/20250808-macb-fixes-v3-0-08f1fcb5179f@bootlin.com/
Signed-off-by: Théo Lebrun <theo.lebrun@...tlin.com>
---
Jerome Brunet (1):
clk: eyeq: use the auxiliary device creation helper
Théo Lebrun (11):
dt-bindings: net: cdns,macb: add Mobileye EyeQ5 ethernet interface
dt-bindings: soc: mobileye: OLB is an Ethernet PHY provider on EyeQ5
net: macb: match skb_reserve(skb, NET_IP_ALIGN) with HW alignment
net: macb: add no LSO capability (MACB_CAPS_NO_LSO)
net: macb: rename bp->sgmii_phy field to bp->phy
net: macb: Add "mobileye,eyeq5-gem" compatible
phy: Add driver for EyeQ5 Ethernet PHY wrapper
clk: eyeq: add EyeQ5 children auxiliary device for generic PHYs
reset: eyeq: drop device_set_of_node_from_dev() done by parent
MIPS: mobileye: eyeq5: add two Cadence GEM Ethernet controllers
MIPS: mobileye: eyeq5-epm: add two Cadence GEM Ethernet PHYs
.../devicetree/bindings/net/cdns,macb.yaml | 10 +
.../bindings/soc/mobileye/mobileye,eyeq5-olb.yaml | 7 +-
MAINTAINERS | 1 +
arch/mips/boot/dts/mobileye/eyeq5-epm5.dts | 26 +++
arch/mips/boot/dts/mobileye/eyeq5.dtsi | 47 ++++
drivers/clk/clk-eyeq.c | 60 ++---
drivers/net/ethernet/cadence/macb.h | 6 +-
drivers/net/ethernet/cadence/macb_main.c | 92 ++++++--
drivers/phy/Kconfig | 13 ++
drivers/phy/Makefile | 1 +
drivers/phy/phy-eyeq5-eth.c | 254 +++++++++++++++++++++
drivers/reset/reset-eyeq.c | 24 +-
12 files changed, 454 insertions(+), 87 deletions(-)
---
base-commit: 3ff9bcecce83f12169ab3e42671bd76554ca521a
change-id: 20251020-macb-eyeq5-fe2c0d1edc75
Best regards,
--
Théo Lebrun <theo.lebrun@...tlin.com>
Powered by blists - more mailing lists