[PATCH net-next 00/12] net: macb: EyeQ5 support (alongside generic PHY driver in syscon)
From: Théo Lebrun <theo.lebrun@bootlin.com>
Date: 2025-10-21 16:33:09
Also in:
linux-clk, linux-devicetree, linux-mips, linux-phy, lkml
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/ (local) [1]: https://lore.kernel.org/lkml/20250611-clk-aux-v1-0-fb6575ed86a7@baylibre.com/ (local) [2]: https://lore.kernel.org/lkml/20250903-clk-eyeq7-v1-19-3f5024b5d6e2@bootlin.com/ (local) 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/ (local) - 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/ (local) - 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/ (local) Signed-off-by: Théo Lebrun <theo.lebrun@bootlin.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 [off-list ref]