[PATCH v2 net-next 00/12] net: enetc: Prepare for ENETC v4 VF support

Wei Fang posted 12 patches 2 days, 8 hours ago
drivers/net/ethernet/freescale/enetc/Kconfig  |   2 +
drivers/net/ethernet/freescale/enetc/Makefile |   2 +-
drivers/net/ethernet/freescale/enetc/enetc.h  |  22 +-
.../net/ethernet/freescale/enetc/enetc4_pf.c  |   4 -
.../net/ethernet/freescale/enetc/enetc_cbdr.c |  16 +-
.../net/ethernet/freescale/enetc/enetc_hw.h   |   1 -
.../ethernet/freescale/enetc/enetc_mailbox.h  | 170 ++++++++++++++
.../net/ethernet/freescale/enetc/enetc_msg.c  | 209 +++++++++++++++++-
.../net/ethernet/freescale/enetc/enetc_pf.c   | 142 +-----------
.../net/ethernet/freescale/enetc/enetc_pf.h   |  10 +-
.../freescale/enetc/enetc_pf_common.c         |  31 ++-
.../freescale/enetc/enetc_pf_common.h         |  11 +
.../net/ethernet/freescale/enetc/enetc_vf.c   | 175 +++++++++++----
13 files changed, 581 insertions(+), 214 deletions(-)
create mode 100644 drivers/net/ethernet/freescale/enetc/enetc_mailbox.h
[PATCH v2 net-next 00/12] net: enetc: Prepare for ENETC v4 VF support
Posted by Wei Fang 2 days, 8 hours ago
This patch series refactors and extends the ENETC driver infrastructure
to prepare for upcoming ENETC v4 Virtual Function (VF) support. The main
focus is on code commonization, improved VF-PF communication, and dynamic
resource allocation.

The ENETC IP has evolved across different revisions, and the existing
driver architecture was primarily designed around v1 hardware. To support
v4 VFs efficiently, we need to share common code between PF drivers of
different IP versions while maintaining compatibility.

Key changes in this series:

1. VF-PF Messaging Infrastructure:
   - Convert mailbox messages to new formats
   - Use read_poll_timeout() for simplifying VF mailbox polling
   - Add support for IP minor revision query via messaging

2. Code Commonization:
   - Relocate SR-IOV configuration helpers to common PF code
   - Move VF message handlers to dedicated enetc_msg.c
   - Integrate enetc_msg.c into enetc-pf-common driver

3. CBDR (Control Buffer Descriptor Ring) Improvements:
   - Align v1 CBDR API with v4 for VF driver sharing
   - Add CBDR setup/teardown hooks to enetc_si_ops

4. Dynamic Resource Management:
   - Dynamically allocate rxmsg based on actual VF count
   - Use MADDR_TYPE constant for MAC filter array sizing

5. Generic SR-IOV Initialization:
   - Add generic helper to initialize SR-IOV resources

This refactoring lays the groundwork for cleanly integrating ENETC v4 VF
support in subsequent patch series, allowing code reuse between v1 and v4
PF drivers while maintaining a clean separation of version-specific
logic.

---
v2:
1. Drop patch 3, 14 and 15 in v1.
2. Use enetc_set_si_hw_addr() instead of pf->ops->set_si_primary_mac()
   in patch 1, update title and commit message
3. Refine the implementation of patch 6, such as remove bitfields from
   the message structure (struct enetc_msg_header), remove union
   enetc_pf_msg, change the prototypes of some functions, add a generic
   error code (ENETC_MSG_CLASS_ID_CMD_FAIL) for PF message, and update
   the commit message
4. Remove class_code from struct enetc_msg_swbd. enetc_msg_vsi_send()
   directly returns the message code for 'get' messages, as the message
   code is >= 0
5. Update commit messages of some other patches
v1 link: https://lore.kernel.org/imx/20260511080805.2052495-1-wei.fang@nxp.com/
---

Wei Fang (12):
  net: enetc: use enetc_set_si_hw_addr() for setting MAC address
  net: enetc: move VF message handlers to enetc_msg.c
  net: enetc: relocate SR-IOV configuration helper for common PF support
  net: enetc: integrate enetc_msg.c into enetc-pf-common driver
  net: enetc: use read_poll_timeout() for VF mailbox polling
  net: enetc: convert mailbox messages to new formats
  net: enetc: add VF-PF messaging support for IP minor revision query
  net: enetc: align v1 CBDR API with v4 for VF driver sharing
  net: enetc: add CBDR setup/teardown hooks to enetc_si_ops for VF
    support
  net: enetc: add generic helper to initialize SR-IOV resources
  net: enetc: use MADDR_TYPE for MAC filter array size
  net: enetc: dynamically allocate rxmsg based on VF count

 drivers/net/ethernet/freescale/enetc/Kconfig  |   2 +
 drivers/net/ethernet/freescale/enetc/Makefile |   2 +-
 drivers/net/ethernet/freescale/enetc/enetc.h  |  22 +-
 .../net/ethernet/freescale/enetc/enetc4_pf.c  |   4 -
 .../net/ethernet/freescale/enetc/enetc_cbdr.c |  16 +-
 .../net/ethernet/freescale/enetc/enetc_hw.h   |   1 -
 .../ethernet/freescale/enetc/enetc_mailbox.h  | 170 ++++++++++++++
 .../net/ethernet/freescale/enetc/enetc_msg.c  | 209 +++++++++++++++++-
 .../net/ethernet/freescale/enetc/enetc_pf.c   | 142 +-----------
 .../net/ethernet/freescale/enetc/enetc_pf.h   |  10 +-
 .../freescale/enetc/enetc_pf_common.c         |  31 ++-
 .../freescale/enetc/enetc_pf_common.h         |  11 +
 .../net/ethernet/freescale/enetc/enetc_vf.c   | 175 +++++++++++----
 13 files changed, 581 insertions(+), 214 deletions(-)
 create mode 100644 drivers/net/ethernet/freescale/enetc/enetc_mailbox.h

-- 
2.34.1