> 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>