[PATCH net-next v3 0/3] net: stmmac: Add PCI driver support for BCM8958x

Serge Semin fancer.lancer at gmail.com
Fri Aug 2 03:02:50 PDT 2024


Hi Jitendra

On Thu, Aug 01, 2024 at 08:18:19PM -0700, jitendra.vegiraju at broadcom.com wrote:
> From: Jitendra Vegiraju <jitendra.vegiraju at broadcom.com>
> 
> 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
> driver uses common dwxgmac2 code where applicable.

Thanks for submitting the series.

I am curious how come Broadcom got to use an IP-core which hasn't
been even announced by Synopsys. AFAICS the most modern DW XGMAC
IP-core is of v3.xxa version:

https://www.synopsys.com/dw/ipdir.php?ds=dwc_ether_xgmac

Are you sure that your device isn't equipped with some another DW MAC
IP-core, like DW 25G Ethernet MAC? (which BTW is equipped with a new
Hyper DMA engine with a capability to have up to 128/256 channels with
likely indirect addressing.) Do I miss something?

* I'll join the patch set review after the weekend, sometime on the
next week.

-Serge(y)

> Driver functionality specific to this MAC is implemented in dwxgmac4.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.
> 
> 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
> 
> 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@broadcom.com/
> 
> v1:  
>    https://lore.kernel.org/netdev/20240510000331.154486-1-jitendra.vegiraju@broadcom.com/
> 
> Jitendra Vegiraju (3):
>   Add basic dwxgmac4 support to stmmac core
>   Integrate dwxgmac4 into stmmac hwif handling
>   Add PCI driver support for BCM8958x
> 
>  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/dwmac-brcm.c  | 517 ++++++++++++++++++
>  .../ethernet/stmicro/stmmac/dwxgmac2_dma.c    |  31 ++
>  .../net/ethernet/stmicro/stmmac/dwxgmac4.c    | 142 +++++
>  .../net/ethernet/stmicro/stmmac/dwxgmac4.h    |  84 +++
>  drivers/net/ethernet/stmicro/stmmac/hwif.c    |  26 +-
>  drivers/net/ethernet/stmicro/stmmac/hwif.h    |   1 +
>  10 files changed, 825 insertions(+), 2 deletions(-)
>  create mode 100644 drivers/net/ethernet/stmicro/stmmac/dwmac-brcm.c
>  create mode 100644 drivers/net/ethernet/stmicro/stmmac/dwxgmac4.c
>  create mode 100644 drivers/net/ethernet/stmicro/stmmac/dwxgmac4.h
> 
> -- 
> 2.34.1
> 
> 



More information about the linux-arm-kernel mailing list