Thread (13 messages) 13 messages, 4 authors, 2024-11-16

Re: [RFC PATCH 2/2] net: selpcimac: Add driver for SEL PCIe network adapter

From: Maxime Chevallier <maxime.chevallier@bootlin.com>
Date: 2024-10-29 16:49:49
Also in: lkml

Hello,

On Mon, 28 Oct 2024 15:35:08 -0700
Robert Joslyn [off-list ref] wrote:
Add support for SEL FPGA based network adapters. The network device is
implemented as an FPGA IP core and enumerated by the selpvmf driver.
This is used on multiple devices, including:
 - SEL-3350 mainboard
 - SEL-3390E4 card
 - SEL-3390T card
Make sure that you get the right people as recipients for this
patchset. You would need at least the net maintainers, make sure to use
the scripts/get_maintainers.pl tool to know who to send the patch to.
Signed-off-by: Robert Joslyn <redacted>
---
 MAINTAINERS                                  |   1 +
 drivers/net/ethernet/Kconfig                 |   1 +
 drivers/net/ethernet/Makefile                |   1 +
 drivers/net/ethernet/sel/Kconfig             |  31 +
 drivers/net/ethernet/sel/Makefile            |  22 +
 drivers/net/ethernet/sel/ethtool.c           | 404 ++++++++
 drivers/net/ethernet/sel/ethtool.h           |  17 +
 drivers/net/ethernet/sel/hw_interface.c      | 410 ++++++++
 drivers/net/ethernet/sel/hw_interface.h      |  46 +
 drivers/net/ethernet/sel/mac_main.c          | 155 +++
 drivers/net/ethernet/sel/mdio.c              | 166 ++++
 drivers/net/ethernet/sel/mdio.h              |  15 +
 drivers/net/ethernet/sel/mii.c               | 422 +++++++++
 drivers/net/ethernet/sel/mii.h               |  21 +
 drivers/net/ethernet/sel/mii_interface.c     | 133 +++
 drivers/net/ethernet/sel/mii_interface.h     |  23 +
 drivers/net/ethernet/sel/netdev.c            | 946 +++++++++++++++++++
 drivers/net/ethernet/sel/netdev.h            |  24 +
 drivers/net/ethernet/sel/netdev_isr.c        | 245 +++++
 drivers/net/ethernet/sel/netdev_isr.h        |  20 +
 drivers/net/ethernet/sel/netdev_rx.c         | 785 +++++++++++++++
 drivers/net/ethernet/sel/netdev_rx.h         |  17 +
 drivers/net/ethernet/sel/netdev_tx.c         | 647 +++++++++++++
 drivers/net/ethernet/sel/netdev_tx.h         |  22 +
 drivers/net/ethernet/sel/pci_mac.h           | 290 ++++++
 drivers/net/ethernet/sel/pci_mac_hw_regs.h   | 370 ++++++++
 drivers/net/ethernet/sel/pci_mac_sysfs.c     | 642 +++++++++++++
 drivers/net/ethernet/sel/pci_mac_sysfs.h     |  14 +
 drivers/net/ethernet/sel/sel_pci_mac_ioctl.h |  25 +
 drivers/net/ethernet/sel/sel_phy.h           |  91 ++
 drivers/net/ethernet/sel/sel_phy_broadcom.c  | 316 +++++++
 drivers/net/ethernet/sel/sel_phy_broadcom.h  |  15 +
 drivers/net/ethernet/sel/sel_phy_marvell.c   | 458 +++++++++
 drivers/net/ethernet/sel/sel_phy_marvell.h   |  15 +
 drivers/net/ethernet/sel/sel_phy_ti.c        | 419 ++++++++
 drivers/net/ethernet/sel/sel_phy_ti.h        |  14 +
 drivers/net/ethernet/sel/sel_soft_phy.c      |  98 ++
 drivers/net/ethernet/sel/sel_soft_phy.h      |  15 +
 drivers/net/ethernet/sel/semaphore.h         |  85 ++
 drivers/net/ethernet/sel/sfp.c               | 615 ++++++++++++
 drivers/net/ethernet/sel/sfp.h               |  61 ++
I haven't reviewed the code itself as this is a biiiiig patch, I
suggest you try to split it into more digestable patches, focusing on
individual aspects of the driver.

One thing is the PHY support as you mention in the cover-letter, in the
current state this driver re-implements PHY drivers from what I
understand. You definitely need to use the kernel infra for PHY
handling.

As it seems this driver also re-implements SFP entirely, I suggest you
look into phylink [1]. This will help you supporting the PHYs and SFPs.
You can take a look at the mvneta.c and mvpp2 drivers for examples.

Make sure you handle the mdio bus control using the dedicated framework
(see mii_bus et al.).

I'd be happy to give you more reviews, but this would be a more
manageable task with smaller patches :)

Best regards,

Maxime
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help