On Wed, 16 Apr 2025, Stephen Hemminger wrote:

On Wed, 16 Apr 2025 19:38:58 +0400 (+04)
Ivan Malov <ivan.ma...@arknetworks.am> wrote:

On Wed, 16 Apr 2025, Stephen Hemminger wrote:

On Wed, 16 Apr 2025 17:59:30 +0400
Ivan Malov <ivan.ma...@arknetworks.am> 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.


Andy Moreton (3):
  common/sfc_efx/base: update X4 BAR layout and PCI IDs
  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        |   98 +-
 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       |   24 +-
 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          | 1625 +++++
 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   |  110 +
 drivers/common/sfc_efx/base/medford4_mac.c    |  299 +
 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, 9000 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


Overall looks good but:
 - need to fix build on FreeBSD, you are using an errno not available there.
 - can you address some of the checkpatch warnings in the base code.


I can fix the errno, yes. Thanks for catching this.

As for the checkpatch warnings in the base code -- unfortunately, that part does
not follow DPDK style in general and has always triggered such warnings in DPDK.
Should I try to fix some anyway? Which, for instance?

Mostly it is the use of BSD style parens on returns that clutters the warnings.
I.e
        return (0);

I see. Unfortunately, this, as well as space character in 'sizeof ()', follows
the base driver's own style and it has been so for a long time. May be it is
acceptable to retain it. But I do care to comply with DPDK conventions in the
SFC driver itself. So shall I fix ENODATA->ENODEV and send v2?

Thank you.

Reply via email to