lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<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

Powered by Openwall GNU/*/Linux Powered by OpenVZ