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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.

Thanks,

Paolo





[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux