Re: [net-next v5 0/5] net: stmmac: Add PCI driver support for BCM8958x

From: Serge Semin
Date: Tue Sep 10 2024 - 07:56:14 EST


Hi Paolo

On Tue, Sep 10, 2024 at 01:29:34PM +0200, Paolo Abeni wrote:
> On 9/4/24 07:48, jitendra.vegiraju@xxxxxxxxxxxx wrote:
> > From: Jitendra Vegiraju <jitendra.vegiraju@xxxxxxxxxxxx>
> >
> > This patchset adds basic PCI ethernet device driver support for Broadcom
> > BCM8958x Automotive Ethernet switch SoC devices.
> >
> > This SoC device has PCIe ethernet MAC attached to an integrated ethernet
> > switch using XGMII interface. The PCIe ethernet controller is presented to
> > the Linux host as PCI network device.
> >
> > The following block diagram gives an overview of the application.
> > +=================================+
> > | Host CPU/Linux |
> > +=================================+
> > || PCIe
> > ||
> > +==========================================+
> > | +--------------+ |
> > | | PCIE Endpoint| |
> > | | Ethernet | |
> > | | Controller | |
> > | | DMA | |
> > | +--------------+ |
> > | | MAC | BCM8958X |
> > | +--------------+ SoC |
> > | || XGMII |
> > | || |
> > | +--------------+ |
> > | | Ethernet | |
> > | | switch | |
> > | +--------------+ |
> > | || || || || |
> > +==========================================+
> > || || || || More external interfaces
> >
> > The MAC block on BCM8958x is based on Synopsis XGMAC 4.00a core. This
> > MAC IP introduces new DMA architecture called Hyper-DMA for virtualization
> > scalability.
> >
> > Driver functionality specific to new MAC (DW25GMAC) is implemented in
> > new file dw25gmac.c.
> >
> > Management of integrated ethernet switch on this SoC is not handled by
> > the PCIe interface.
> > This SoC device has PCIe ethernet MAC directly attached to an integrated
> > ethernet switch using XGMII interface.
> >
> > v4->v5:
> > Summary of changes in this patch series:
> > As suggested by Serge Semin, defined common setup function for dw25gmac.
> > To accommodate early adopter DW25GMAC used in BCM8958x device, provide
> > a mechanism to override snps_id and snps_dev_id used for driver entry
> > matching in hwif.c
> >
> > Patch1:
> > Added plat_stmmacenet_data::snps_id,snps_dev_id fields - Serge Semin
> > Patch2:
> > Define common setup function for dw25gmac_setup() - Serge Semin
> > Support DW25GMAC IPs with varying VDMA/PDMA count - Abhishek Chauhan
> > Allocate and initialize hdma mapping configuration data dynamically
> > based on device's VDMA/PDMA feature capabilities in dw25gmac_setup().
> > Spelling errors in commit log, lower case 0x for hex -Amit Singh Tomar
> > Patch3:
> > Glue support in hwif.c for DW25GMAC in hwif.c - Serge Semin
> > Provide an option to override snps_id and snps_dev_id when the device
> > reports version info not conformant with driver's expectations as is
> > the case with BCM8958x device. - Serge Semin
> > Patch4:
> > Remove setup function in the glue driver - Serge Semin
> > Remove unnecessary calls pci_enable_device() and pci_set_master()
> > in dwxgmac_brcm_pci_resume() - Jakub Kicinski
> > Merge variable definitions to single line - Amit Singh Tomar
> >
> > v3->v4:
> > Based on Serge's questions, received a confirmation from Synopsys that
> > the MAC IP is indeed the new 25GMAC design.
> > Renamed all references of XGMAC4 to 25GMAC.
> > The patch series is rearranged slightly as follows.
> > Patch1 (new): Define HDMA mapping data structure in kernel's stmmac.h
> > Patch2 (v3 Patch1): Adds dma_ops for dw25gmac in stmmac core
> > Renamed new files dwxgmac4.* to dw25gmac.* - Serge Semin
> > Defined new Synopsis version and device id macros for DW25GMAC.
> > Converted bit operations to FIELD_PREP macros - Russell King
> > Moved hwif.h to this patch, Sparse flagged warning - Simon Horman
> > Defined macros for hardcoded values TDPS etc - Serge Semin
> > Read number of PDMAs/VDMAs from hardware - Serge Semin
> > Patch3 (v3 Patch2): Hooks in hardware interface handling for dw25gmac
> > Resolved user_version quirks questions - Serge, Russell, Andrew
> > Added new stmmac_hw entry for DW25GMAC. - Serge
> > Added logic to override synopsis_dev_id by glue driver.
> > Patch4 (v3 Patch3): Adds PCI driver for BCM8958x device
> > Define bitmmap macros for hardcoded values - Andrew Lunn
> > Added per device software node - Andrew Lunn
> > Patch5(new/split): Adds BCM8958x driver to build system
> > https://lore.kernel.org/netdev/20240814221818.2612484-1-jitendra.vegiraju@xxxxxxxxxxxx/
> >
> > v2->v3:
> > Addressed v2 comments from Andrew, Jakub, Russel and Simon.
> > Based on suggestion by Russel and Andrew, added software node to create
> > phylink in fixed-link mode.
> > Moved dwxgmac4 specific functions to new files dwxgmac4.c and dwxgmac4.h
> > in stmmac core module.
> > Reorganized the code to use the existing glue logic support for xgmac in
> > hwif.c and override ops functions for dwxgmac4 specific functions.
> > The patch is split into three parts.
> > Patch#1 Adds dma_ops for dwxgmac4 in stmmac core
> > Patch#2 Hooks in the hardware interface handling for dwxgmac4
> > Patch#3 Adds PCI driver for BCM8958x device
> > https://lore.kernel.org/netdev/20240802031822.1862030-1-jitendra.vegiraju@xxxxxxxxxxxx/
> >
> > v1->v2:
> > Minor fixes to address coding style issues.
> > Sent v2 too soon by mistake, without waiting for review comments.
> > Received feedback on this version.
> > https://lore.kernel.org/netdev/20240511015924.41457-1-jitendra.vegiraju@xxxxxxxxxxxx/
> >
> > v1:
> > https://lore.kernel.org/netdev/20240510000331.154486-1-jitendra.vegiraju@xxxxxxxxxxxx/
> >
> > Jitendra Vegiraju (5):
> > Add HDMA mapping for dw25gmac support
> > Add basic dw25gmac support in stmmac core
> > Integrate dw25gmac into stmmac hwif handling
> > Add PCI driver support for BCM8958x
> > Add BCM8958x driver to build system
> >
> > MAINTAINERS | 8 +
> > drivers/net/ethernet/stmicro/stmmac/Kconfig | 11 +
> > drivers/net/ethernet/stmicro/stmmac/Makefile | 3 +-
> > drivers/net/ethernet/stmicro/stmmac/common.h | 4 +
> > .../net/ethernet/stmicro/stmmac/dw25gmac.c | 224 ++++++++
> > .../net/ethernet/stmicro/stmmac/dw25gmac.h | 92 ++++
> > .../net/ethernet/stmicro/stmmac/dwmac-brcm.c | 507 ++++++++++++++++++
> > .../net/ethernet/stmicro/stmmac/dwxgmac2.h | 1 +
> > .../ethernet/stmicro/stmmac/dwxgmac2_core.c | 43 ++
> > .../ethernet/stmicro/stmmac/dwxgmac2_dma.c | 31 ++
> > drivers/net/ethernet/stmicro/stmmac/hwif.c | 26 +-
> > drivers/net/ethernet/stmicro/stmmac/hwif.h | 1 +
> > include/linux/stmmac.h | 48 ++
> > 13 files changed, 997 insertions(+), 2 deletions(-)
> > create mode 100644 drivers/net/ethernet/stmicro/stmmac/dw25gmac.c
> > create mode 100644 drivers/net/ethernet/stmicro/stmmac/dw25gmac.h
> > create mode 100644 drivers/net/ethernet/stmicro/stmmac/dwmac-brcm.c
>

> Hi Serge, to you think you will have time to review this series soon?
>
> We are sort in a rush to flush the net-next material before the upcoming
> merge window.

I'll get back to reviewing the series today. Sorry for the
inconvenience.

-Serge(y)

>
> Thanks,
>
> Paolo
>