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 >