[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20250627-macb-v2-0-ff8207d0bb77@bootlin.com>
Date: Fri, 27 Jun 2025 11:08:46 +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>,
Paul Walmsley <paul.walmsley@...ive.com>,
Palmer Dabbelt <palmer@...belt.com>, Albert Ou <aou@...s.berkeley.edu>,
Alexandre Ghiti <alex@...ti.fr>, Samuel Holland <samuel.holland@...ive.com>,
Richard Cochran <richardcochran@...il.com>,
Russell King <linux@...linux.org.uk>,
Thomas Bogendoerfer <tsbogend@...ha.franken.de>,
Vladimir Kondratiev <vladimir.kondratiev@...ileye.com>,
Gregory CLEMENT <gregory.clement@...tlin.com>,
Cyrille Pitchen <cyrille.pitchen@...el.com>,
Harini Katakam <harini.katakam@...inx.com>,
Rafal Ozieblo <rafalo@...ence.com>,
Haavard Skinnemoen <hskinnemoen@...el.com>, Jeff Garzik <jeff@...zik.org>
Cc: netdev@...r.kernel.org, devicetree@...r.kernel.org,
linux-kernel@...r.kernel.org, linux-riscv@...ts.infradead.org,
linux-mips@...r.kernel.org, Thomas Petazzoni <thomas.petazzoni@...tlin.com>,
Tawfik Bayouk <tawfik.bayouk@...ileye.com>,
Théo Lebrun <theo.lebrun@...tlin.com>,
Andrew Lunn <andrew@...n.ch>
Subject: [PATCH net-next v2 00/18] Support the Cadence MACB/GEM instances
on Mobileye EyeQ5 SoCs
Mobileye EyeQ5 SoCs provides two GEM IP blocks. The end result of this
series is working 1G networking on the EyeQ5 eval board. It isn't just
a new macb_config & compatible, we also provide some cleanup & fixes
along the way.
dt-bindings:
[PATCH net-next v2 01/18] dt-bindings: net: cdns,macb: sort compatibles
[PATCH net-next v2 02/18] dt-bindings: net: cdns,macb: add Mobileye EyeQ5 ethernet interface
[PATCH net-next v2 03/18] dt-bindings: net: cdns,macb: allow tsu_clk without tx_clk
[PATCH net-next v2 04/18] dt-bindings: net: cdns,macb: allow dma-coherent
Cleanup:
[PATCH net-next v2 05/18] net: macb: use BIT() macro for capability definitions
[PATCH net-next v2 06/18] net: macb: Remove local variables clk_init and init in macb_probe()
[PATCH net-next v2 07/18] net: macb: drop macb_config NULL checking
[PATCH net-next v2 08/18] net: macb: introduce DMA descriptor helpers (is 64bit? is PTP?)
[PATCH net-next v2 09/18] net: macb: sort #includes
Fixes:
[PATCH net-next v2 10/18] net: macb: remove illusion about TBQPH/RBQPH being per-queue
[PATCH net-next v2 11/18] net: macb: single dma_alloc_coherent() for DMA descriptors
[PATCH net-next v2 12/18] net: macb: match skb_reserve(skb, NET_IP_ALIGN) with HW alignment
[PATCH net-next v2 13/18] net: macb: avoid double endianness swap in macb_set_hwaddr()
EyeQ5 support:
[PATCH net-next v2 14/18] net: macb: add no LSO capability (MACB_CAPS_NO_LSO)
[PATCH net-next v2 15/18] net: macb: Add "mobileye,eyeq5-gem" compatible
DTS:
[PATCH net-next v2 16/18] MIPS: mobileye: add EyeQ5 DMA IOCU support
[PATCH net-next v2 17/18] MIPS: mobileye: eyeq5: add two Cadence GEM Ethernet controllers
[PATCH net-next v2 18/18] MIPS: mobileye: eyeq5-epm: add two Cadence GEM Ethernet PHYs
Note: I've categorised [PATCH 12/18] as a fix, but it is also mandatory
for working GEM on EyeQ5 SoCs. Hardware is RSC capable so we mustn't do
the skb_reserve(). It probably is the first platform where
NET_IP_ALIGN=2 and the devices are RSC capable.
Note: I did not extract the platform specific code (2 syscon registers
being written to) from macb_config->init into separate resources. I
cannot dissociate that register write sequence into something more
fluid (modeling clocks/PHYs).
Have a nice day,
Théo
Signed-off-by: Théo Lebrun <theo.lebrun@...tlin.com>
---
Changes in v2:
- Rebase upon latest net-next (1ea2e106130a).
- dt-bindings:
- Add description to mobileye,olb phandle, following a
`make dt_binding_check` warning reported by Rob's bot.
- Add "sort compatibles" patch.
- Take "Acked-by: Rob Herring" on dma-coherent patch.
- Improve "allow tsu_clk without tx_clk" commit message following
Rob's comment.
- Take "Reviewed-by: Andrew Lunn" trailer on four patches:
net: macb: use BIT() macro for capability definitions
net: macb: add no LSO capability (MACB_CAPS_NO_LSO)
net: macb: sort #includes
MIPS: mobileye: eyeq5-epm: add two Cadence GEM Ethernet PHYs
- net: macb:
- Split:
simplify macb_probe() code touching match data
into two commits, following comment by Andrew:
Remove local variables clk_init and init in macb_probe()
drop macb_config NULL checking
- Replace match-data IP alignment value by a more robust solution: HW support
IP alignment if it does not support RSC.
- use regmap_update_bits() for OLB register writes.
- fix insertion order of compatible.
- fix LSO detection comment.
- move local variables `struct macb_dma_desc_64` inside conditionals,
in macb_{get,get}_addr().
- add "remove illusion about TBQPH/RBQPH being per-queue" commit.
- add "single dma_alloc_coherent() for DMA descriptors" commit.
- add "avoid double endianness swap in macb_set_hwaddr()" commit.
- DTS: lowercase reg properties of PHYs.
- Link to v1: https://lore.kernel.org/r/20250321-macb-v1-0-537b7e37971d@bootlin.com
---
Théo Lebrun (18):
dt-bindings: net: cdns,macb: sort compatibles
dt-bindings: net: cdns,macb: add Mobileye EyeQ5 ethernet interface
dt-bindings: net: cdns,macb: allow tsu_clk without tx_clk
dt-bindings: net: cdns,macb: allow dma-coherent
net: macb: use BIT() macro for capability definitions
net: macb: Remove local variables clk_init and init in macb_probe()
net: macb: drop macb_config NULL checking
net: macb: introduce DMA descriptor helpers (is 64bit? is PTP?)
net: macb: sort #includes
net: macb: remove illusion about TBQPH/RBQPH being per-queue
net: macb: single dma_alloc_coherent() for DMA descriptors
net: macb: match skb_reserve(skb, NET_IP_ALIGN) with HW alignment
net: macb: avoid double endianness swap in macb_set_hwaddr()
net: macb: add no LSO capability (MACB_CAPS_NO_LSO)
net: macb: Add "mobileye,eyeq5-gem" compatible
MIPS: mobileye: add EyeQ5 DMA IOCU support
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 | 38 ++-
MAINTAINERS | 2 +-
arch/mips/boot/dts/mobileye/eyeq5-epm5.dts | 26 ++
arch/mips/boot/dts/mobileye/eyeq5.dtsi | 34 ++
arch/mips/mobileye/Kconfig | 1 +
arch/mips/mobileye/Makefile | 2 +
arch/mips/mobileye/eyeq5-iocu-dma.c | 160 +++++++++
drivers/net/ethernet/cadence/macb.h | 56 ++-
drivers/net/ethernet/cadence/macb_main.c | 380 ++++++++++++---------
9 files changed, 498 insertions(+), 201 deletions(-)
---
base-commit: bb26d1066f9db96d9b10d7724798aa14203f3ef8
change-id: 20250311-macb-65a7fa86af1d
Best regards,
--
Théo Lebrun <theo.lebrun@...tlin.com>
Powered by blists - more mailing lists