RE: [PATCH v6 net-next 11/12] net: enetc: add preliminary support for i.MX95 ENETC PF

From: Wei Fang
Date: Wed Oct 30 2024 - 21:26:50 EST


> On Wed, Oct 30, 2024 at 05:39:22PM +0800, Wei Fang wrote:
> > The i.MX95 ENETC has been upgraded to revision 4.1, which is different
> > from the LS1028A ENETC (revision 1.0) except for the SI part.
> > Therefore, the fsl-enetc driver is incompatible with i.MX95 ENETC PF.
> > So add new
> > nxp-enetc4 driver to support i.MX95 ENETC PF, and this driver will be
> > used to support the ENETC PF with major revision 4 for other SoCs in
> > the future.
> >
> > Currently, the nxp-enetc4 driver only supports basic transmission
> > feature for i.MX95 ENETC PF, the more basic and advanced features will
> > be added in the subsequent patches. In addition, PCS support has not
> > been added yet, so 10G ENETC (ENETC instance 2) is not supported now.
> >
> > Signed-off-by: Wei Fang <wei.fang@xxxxxxx>
> > ---
> > v6:
> > 1. remove pinctrl_pm_select_default_state() 2. add macros to define
> > the vendor ID and device ID of ENETC PF
> > ---
> > drivers/net/ethernet/freescale/enetc/Kconfig | 17 +
> > drivers/net/ethernet/freescale/enetc/Makefile | 3 +
> > drivers/net/ethernet/freescale/enetc/enetc.c | 86 +-
> > drivers/net/ethernet/freescale/enetc/enetc.h | 30 +-
> > .../net/ethernet/freescale/enetc/enetc4_hw.h | 155 ++++
> > .../net/ethernet/freescale/enetc/enetc4_pf.c | 756 ++++++++++++++++++
> > .../ethernet/freescale/enetc/enetc_ethtool.c | 35 +-
> > .../net/ethernet/freescale/enetc/enetc_hw.h | 19 +-
> > .../net/ethernet/freescale/enetc/enetc_pf.c | 7 +
> > .../net/ethernet/freescale/enetc/enetc_pf.h | 9 +
> > .../freescale/enetc/enetc_pf_common.c | 11 +-
> > .../freescale/enetc/enetc_pf_common.h | 5 +
> > .../net/ethernet/freescale/enetc/enetc_qos.c | 2 +-
> > .../net/ethernet/freescale/enetc/enetc_vf.c | 6 +
> > 14 files changed, 1113 insertions(+), 28 deletions(-) create mode
> > 100644 drivers/net/ethernet/freescale/enetc/enetc4_hw.h
> > create mode 100644 drivers/net/ethernet/freescale/enetc/enetc4_pf.c
> >
> > diff --git a/drivers/net/ethernet/freescale/enetc/Kconfig
> > b/drivers/net/ethernet/freescale/enetc/Kconfig
> > index e1b151a98b41..6c2779047dcd 100644
> > --- a/drivers/net/ethernet/freescale/enetc/Kconfig
> > +++ b/drivers/net/ethernet/freescale/enetc/Kconfig
> > @@ -33,6 +33,23 @@ config FSL_ENETC
> >
> > If compiled as module (M), the module name is fsl-enetc.
> >
> > +config NXP_ENETC4
> > + tristate "ENETC4 PF driver"
> > + depends on PCI_MSI
> > + select MDIO_DEVRES
> > + select FSL_ENETC_CORE
> > + select FSL_ENETC_MDIO
> > + select NXP_ENETC_PF_COMMON
> > + select PHYLINK
> > + select DIMLIB
> > + help
> > + This driver supports NXP ENETC devices with major revision 4. ENETC is
> > + as the NIC functionality in NETC, it supports virtualization/isolation
> > + based on PCIe Single Root IO Virtualization (SR-IOV) and a full range
> > + of TSN standards and NIC offload capabilities.
> > +
> > + If compiled as module (M), the module name is nxp-enetc4.
> > +
> > config FSL_ENETC_VF
> > tristate "ENETC VF driver"
> > depends on PCI_MSI
> > diff --git a/drivers/net/ethernet/freescale/enetc/Makefile
> > b/drivers/net/ethernet/freescale/enetc/Makefile
> > index ebe232673ed4..6fd27ee4fcd1 100644
> > --- a/drivers/net/ethernet/freescale/enetc/Makefile
> > +++ b/drivers/net/ethernet/freescale/enetc/Makefile
> > @@ -11,6 +11,9 @@ fsl-enetc-y := enetc_pf.o
> > fsl-enetc-$(CONFIG_PCI_IOV) += enetc_msg.o
> > fsl-enetc-$(CONFIG_FSL_ENETC_QOS) += enetc_qos.o
> >
> > +obj-$(CONFIG_NXP_ENETC4) += nxp-enetc4.o nxp-enetc4-y := enetc4_pf.o
> > +
> > obj-$(CONFIG_FSL_ENETC_VF) += fsl-enetc-vf.o fsl-enetc-vf-y :=
> > enetc_vf.o
> >
> > diff --git a/drivers/net/ethernet/freescale/enetc/enetc.c
> > b/drivers/net/ethernet/freescale/enetc/enetc.c
> > index 89d919c713df..4be7c767d1e9 100644
> > --- a/drivers/net/ethernet/freescale/enetc/enetc.c
> > +++ b/drivers/net/ethernet/freescale/enetc/enetc.c
> > @@ -3,6 +3,7 @@
> >
> > #include "enetc.h"
>
> nit: generally private header file should be after common header file.
> #include "..." should after #include <...>
>

Yeah, but this is not the change of this patch. We can fix this nit in the future.

> Reviewed-by: Frank Li <Frank.Li@xxxxxxx>