[PATCH v2 00/45] Support AMD Solarflare X45xx adaptors

Andrew Rybchenko andrew.rybchenko at oktetlabs.ru
Wed Apr 23 21:19:41 CEST 2025


On 4/23/25 18:59, Ivan Malov wrote:
> New X4522 (dual port SFP56) and X4542 (dual port QSFP56) adaptors are
> Medford4 (X4) chips that are based on EF10 architecture. An X4 NIC
> supports multiple network engine types. This series provides support
> only for the Medford2-alike, 'full-feature' (FF) network engine. This
> shall not be confused with the concept of 'datapath FW variants': the
> FF network engine supports both 'full-feature' and 'ultra-low-latency'
> datapath FW variants, with corresponding Medford2-alike feature sets.
> 
> The first part of the series provides general support for the adaptors,
> whilst the second one adds support for the new management controller
> interface for configuration of network port features (netport MCDI).
> 
> For now, only support for physical functions (PFs) is concerned. There
> is a small number of TODO and FIXME markings in the code. Those are
> normal at this development stage and will be removed by future patches
> when VF support has fleshed out.
> 
> v2:
> - squashed respective parts of commit [1] into commits [2] and [3]
> - dropped irrelevant TODO and FIXME markings from the patches
> - applied review notes and tested build in FreeBSD14-64
> 
> [1] https://mails.dpdk.org/archives/dev/2025-April/317109.html
> [2] https://mails.dpdk.org/archives/dev/2025-April/317096.html
> [3] https://mails.dpdk.org/archives/dev/2025-April/317098.html
> 
> 
> Andy Moreton (2):
>    net/sfc: add Medford4 with only full feature datapath engine
>    common/sfc_efx/base: add port mode for 8 port hardware
> 
> Denis Pryazhennikov (15):
>    common/sfc_efx/base: add Medford4 PCI IDs to common code
>    common/sfc_efx/base: add efsys option for Medford4
>    common/sfc_efx/base: add Medford4 support to NIC module
>    common/sfc_efx/base: add Medford4 support to EV module
>    common/sfc_efx/base: add Medford4 support to FILTER module
>    common/sfc_efx/base: add Medford4 support to INTR module
>    common/sfc_efx/base: add Medford4 support to MAC module
>    common/sfc_efx/base: add Medford4 support to PHY module
>    common/sfc_efx/base: add Medford4 support to TUNNEL module
>    common/sfc_efx/base: add Medford4 support to MCDI module
>    common/sfc_efx/base: add Medford4 support to Rx module
>    common/sfc_efx/base: add Medford4 support to Tx module
>    drivers: enable support for AMD Solarflare X4 adapter family
>    common/sfc_efx/base: add new X4 port mode
>    common/sfc_efx/base: extend list of supported X4 port modes
> 
> Ivan Malov (28):
>    common/sfc_efx/base: update MCDI headers
>    common/sfc_efx/base: provide a stub for basic netport attach
>    common/sfc_efx/base: provide defaults on netport attach path
>    common/sfc_efx/base: obtain assigned netport handle from NIC
>    common/sfc_efx/base: allow for const in MCDI struct accessor
>    common/sfc_efx/base: get netport fixed capabilities on probe
>    common/sfc_efx/base: decode netport link state on probe path
>    common/sfc_efx/base: fill in loopback modes on netport probe
>    common/sfc_efx/base: introduce Medford4 stub for PHY methods
>    common/sfc_efx/base: refactor EF10 link mode decoding helper
>    common/sfc_efx/base: provide PHY link get method on Medford4
>    common/sfc_efx/base: implement PHY link control for Medford4
>    common/sfc_efx/base: introduce Medford4 stub for MAC methods
>    common/sfc_efx/base: add MAC reconfigure method for Medford4
>    common/sfc_efx/base: fill in software LUT for MAC statistics
>    common/sfc_efx/base: fill in MAC statistics mask on Medford4
>    common/sfc_efx/base: support MAC statistics on Medford4 NICs
>    common/sfc_efx/base: implement MAC PDU controls for Medford4
>    common/sfc_efx/base: correct MAC PDU calculation on Medford4
>    net/sfc: make use of generic EFX MAC PDU calculation helpers
>    common/sfc_efx/base: ignore legacy link events on new boards
>    common/sfc_efx/base: add link event processing on new boards
>    net/sfc: query link status on link change events on new NICs
>    common/sfc_efx/base: subscribe to netport link change events
>    net/sfc: offer support for 200G link ability on new adaptors
>    common/sfc_efx/base: support controls for netport lane count
>    net/sfc: add support for control of physical port lane count
>    doc: advertise support for AMD Solarflare X45xx adapters
> 
>   .mailmap                                      |    3 +-
>   doc/guides/nics/sfc_efx.rst                   |    9 +-
>   doc/guides/rel_notes/release_25_07.rst        |    4 +
>   drivers/common/sfc_efx/base/ef10_ev.c         |   39 +
>   drivers/common/sfc_efx/base/ef10_impl.h       |   19 +
>   drivers/common/sfc_efx/base/ef10_nic.c        |   93 +-
>   drivers/common/sfc_efx/base/ef10_phy.c        |   43 +-
>   drivers/common/sfc_efx/base/ef10_tlv_layout.h |    9 +-
>   drivers/common/sfc_efx/base/efx.h             |   98 +-
>   drivers/common/sfc_efx/base/efx_check.h       |   25 +-
>   drivers/common/sfc_efx/base/efx_ev.c          |    6 +
>   drivers/common/sfc_efx/base/efx_filter.c      |    6 +
>   drivers/common/sfc_efx/base/efx_impl.h        |  115 +-
>   drivers/common/sfc_efx/base/efx_intr.c        |    6 +
>   drivers/common/sfc_efx/base/efx_mac.c         |   56 +-
>   drivers/common/sfc_efx/base/efx_mcdi.c        |   18 +-
>   drivers/common/sfc_efx/base/efx_mcdi.h        |    2 +-
>   drivers/common/sfc_efx/base/efx_nic.c         |   60 +
>   drivers/common/sfc_efx/base/efx_np.c          | 1591 +++++
>   drivers/common/sfc_efx/base/efx_phy.c         |   88 +-
>   drivers/common/sfc_efx/base/efx_port.c        |    1 +
>   drivers/common/sfc_efx/base/efx_regs_mcdi.h   | 5868 ++++++++++++++++-
>   drivers/common/sfc_efx/base/efx_rx.c          |    6 +
>   drivers/common/sfc_efx/base/efx_tunnel.c      |   18 +-
>   drivers/common/sfc_efx/base/efx_tx.c          |   33 +
>   drivers/common/sfc_efx/base/medford4_impl.h   |  105 +
>   drivers/common/sfc_efx/base/medford4_mac.c    |  286 +
>   drivers/common/sfc_efx/base/medford4_phy.c    |  156 +
>   drivers/common/sfc_efx/base/meson.build       |    3 +
>   drivers/common/sfc_efx/efsys.h                |    2 +
>   drivers/common/sfc_efx/sfc_base_symbols.c     |    2 +
>   drivers/net/sfc/sfc.c                         |    5 +-
>   drivers/net/sfc/sfc.h                         |    4 +
>   drivers/net/sfc/sfc_dp_tx.h                   |    3 +
>   drivers/net/sfc/sfc_ef10_tx.c                 |   13 +-
>   drivers/net/sfc/sfc_ethdev.c                  |  186 +-
>   drivers/net/sfc/sfc_ev.c                      |   51 +-
>   drivers/net/sfc/sfc_port.c                    |   27 +-
>   drivers/net/sfc/sfc_repr.c                    |    7 +-
>   drivers/net/sfc/sfc_repr.h                    |    1 +
>   drivers/net/sfc/sfc_tx.c                      |    2 +
>   41 files changed, 8944 insertions(+), 125 deletions(-)
>   create mode 100644 drivers/common/sfc_efx/base/efx_np.c
>   create mode 100644 drivers/common/sfc_efx/base/medford4_impl.h
>   create mode 100644 drivers/common/sfc_efx/base/medford4_mac.c
>   create mode 100644 drivers/common/sfc_efx/base/medford4_phy.c
> 

With few nits fixed
Series-acked-by: Andrew Rybchenko <andrew.rybchenko at oktetlabs.ru>

Frankly speaking I'd squash trivial patches which add M4 support to
various modules inheriting ef10 ops.

Also it is always better to update documentation in patches with
corresponding code (when support is really added and starts to work).



More information about the dev mailing list