DPDK patches and discussions
 help / color / mirror / Atom feed
* [PATCH] net/igc: add I226 support
@ 2022-05-19  6:09 Qiming Yang
  0 siblings, 0 replies; 2+ messages in thread
From: Qiming Yang @ 2022-05-19  6:09 UTC (permalink / raw)
  To: dev, qi.z.zhang; +Cc: Qiming Yang, Kevin Liu

Added I226 Series device ID in igc driver and updated igc guide
document for new devices.

Signed-off-by: Qiming Yang <qiming.yang@intel.com>
Signed-off-by: Kevin Liu <kevinx.liu@intel.com>
---
 doc/guides/nics/igc.rst                | 14 +++++++-------
 doc/guides/rel_notes/release_22_03.rst |  5 +++++
 drivers/net/igc/base/igc_api.c         |  6 ++++++
 drivers/net/igc/base/igc_defines.h     |  1 +
 drivers/net/igc/base/igc_hw.h          |  6 ++++++
 drivers/net/igc/base/igc_i225.c        |  1 +
 drivers/net/igc/igc_ethdev.c           |  6 ++++++
 7 files changed, 32 insertions(+), 7 deletions(-)

diff --git a/doc/guides/nics/igc.rst b/doc/guides/nics/igc.rst
index da77e0845e..399d2d650c 100644
--- a/doc/guides/nics/igc.rst
+++ b/doc/guides/nics/igc.rst
@@ -5,11 +5,12 @@ IGC Poll Mode Driver
 ======================
 
 The IGC PMD (**librte_net_igc**) provides poll mode driver support for Foxville
-I225 Series Network Adapters.
+I225 and I226 Series Network Adapters.
 
 - For information about I225, please refer to: `Intel® Ethernet Controller I225 Series
   <https://ark.intel.com/content/www/us/en/ark/products/series/184686/intel-ethernet-controller-i225-series.html>`_.
-
+- For information about I226, please refer to: `Intel® Ethernet Controller I226 Series
+  <https://ark.intel.com/content/www/us/en/ark/products/series/210588/intel-ethernet-controller-i226-series.html>`_.
 
 Driver compilation and testing
 ------------------------------
@@ -21,11 +22,10 @@ for details.
 Supported Chipsets and NICs
 ---------------------------
 
-Foxville LM (I225 LM): Client 2.5G LAN vPro Corporate
-Foxville V (I225 V): Client 2.5G LAN Consumer
-Foxville I (I225 I): Client 2.5G Industrial Temp
-Foxville V (I225 K): Client 2.5G LAN Consumer
-
+Foxville LM (I225 LM, I226 LM): Client 2.5G LAN vPro Corporate
+Foxville V (I225 V, I226 V): Client 2.5G LAN Consumer
+Foxville I (I225 I, I226 IM): Client 2.5G Industrial Temp
+Foxville V (I225 K, I226 K): Client 2.5G LAN Consumer
 
 Sample Application Notes
 ------------------------
diff --git a/doc/guides/rel_notes/release_22_03.rst b/doc/guides/rel_notes/release_22_03.rst
index f03183ee86..17ca1510e4 100644
--- a/doc/guides/rel_notes/release_22_03.rst
+++ b/doc/guides/rel_notes/release_22_03.rst
@@ -88,6 +88,11 @@ New Features
   * Added AES-XCBC support in lookaside protocol (IPsec) for CN9K & CN10K.
   * Added AES-CMAC support in CN9K & CN10K.
 
+* **Added support for Intel Foxville I226 devices.**
+
+  Added Intel Foxville I226 devices in ``igc`` driver. See the
+  :doc:`../nics/igc` NIC guide for more details.
+
 * **Added an API to retrieve event port id of ethdev Rx adapter.**
 
   The new API ``rte_event_eth_rx_adapter_event_port_get()`` was added.
diff --git a/drivers/net/igc/base/igc_api.c b/drivers/net/igc/base/igc_api.c
index 2f8c0753cb..9b791dc082 100644
--- a/drivers/net/igc/base/igc_api.c
+++ b/drivers/net/igc/base/igc_api.c
@@ -888,6 +888,12 @@ s32 igc_set_mac_type(struct igc_hw *hw)
 	case IGC_DEV_ID_I225_I:
 	case IGC_DEV_ID_I220_V:
 	case IGC_DEV_ID_I225_BLANK_NVM:
+	case IGC_DEV_ID_I226_K:
+	case IGC_DEV_ID_I226_LMVP:
+	case IGC_DEV_ID_I226_LM:
+	case IGC_DEV_ID_I226_V:
+	case IGC_DEV_ID_I226_IT:
+	case IGC_DEV_ID_I226_BLANK_NVM:
 		mac->type = igc_i225;
 		break;
 	case IGC_DEV_ID_I350_VF:
diff --git a/drivers/net/igc/base/igc_defines.h b/drivers/net/igc/base/igc_defines.h
index 30a41300f5..61964bcdd2 100644
--- a/drivers/net/igc/base/igc_defines.h
+++ b/drivers/net/igc/base/igc_defines.h
@@ -1351,6 +1351,7 @@
 #define IGP04IGC_E_PHY_ID	0x02A80391
 #define M88_VENDOR		0x0141
 #define I225_I_PHY_ID		0x67C9DC00
+#define I226_LM_PHY_ID          0x67C9DC10
 
 /* M88E1000 Specific Registers */
 #define M88IGC_PHY_SPEC_CTRL		0x10  /* PHY Specific Control Reg */
diff --git a/drivers/net/igc/base/igc_hw.h b/drivers/net/igc/base/igc_hw.h
index be38fafa5f..707a1883b4 100644
--- a/drivers/net/igc/base/igc_hw.h
+++ b/drivers/net/igc/base/igc_hw.h
@@ -166,6 +166,12 @@ struct igc_hw;
 #define IGC_DEV_ID_I225_I			0x15F8
 #define IGC_DEV_ID_I220_V			0x15F7
 #define IGC_DEV_ID_I225_BLANK_NVM		0x15FD
+#define IGC_DEV_ID_I226_K           0x3102
+#define IGC_DEV_ID_I226_LMVP        0x5503
+#define IGC_DEV_ID_I226_LM          0x125B
+#define IGC_DEV_ID_I226_V           0x125C
+#define IGC_DEV_ID_I226_IT          0x125D
+#define IGC_DEV_ID_I226_BLANK_NVM   0x125F
 #define IGC_DEV_ID_I354_BACKPLANE_1GBPS	0x1F40
 #define IGC_DEV_ID_I354_SGMII			0x1F41
 #define IGC_DEV_ID_I354_BACKPLANE_2_5GBPS	0x1F45
diff --git a/drivers/net/igc/base/igc_i225.c b/drivers/net/igc/base/igc_i225.c
index 060b2f8f93..5f3d535490 100644
--- a/drivers/net/igc/base/igc_i225.c
+++ b/drivers/net/igc/base/igc_i225.c
@@ -176,6 +176,7 @@ static s32 igc_init_phy_params_i225(struct igc_hw *hw)
 	/* Verify phy id and set remaining function pointers */
 	switch (phy->id) {
 	case I225_I_PHY_ID:
+	case I226_LM_PHY_ID:
 		phy->type		= igc_phy_i225;
 		phy->ops.set_d0_lplu_state = igc_set_d0_lplu_state_i225;
 		phy->ops.set_d3_lplu_state = igc_set_d3_lplu_state_i225;
diff --git a/drivers/net/igc/igc_ethdev.c b/drivers/net/igc/igc_ethdev.c
index a1f1a9772b..b9933b395d 100644
--- a/drivers/net/igc/igc_ethdev.c
+++ b/drivers/net/igc/igc_ethdev.c
@@ -97,6 +97,12 @@ static const struct rte_pci_id pci_id_igc_map[] = {
 	{ RTE_PCI_DEVICE(IGC_INTEL_VENDOR_ID, IGC_DEV_ID_I225_V)  },
 	{ RTE_PCI_DEVICE(IGC_INTEL_VENDOR_ID, IGC_DEV_ID_I225_I)  },
 	{ RTE_PCI_DEVICE(IGC_INTEL_VENDOR_ID, IGC_DEV_ID_I225_K)  },
+	{ RTE_PCI_DEVICE(IGC_INTEL_VENDOR_ID, IGC_DEV_ID_I226_K)  },
+	{ RTE_PCI_DEVICE(IGC_INTEL_VENDOR_ID, IGC_DEV_ID_I226_LMVP)  },
+	{ RTE_PCI_DEVICE(IGC_INTEL_VENDOR_ID, IGC_DEV_ID_I226_LM)  },
+	{ RTE_PCI_DEVICE(IGC_INTEL_VENDOR_ID, IGC_DEV_ID_I226_V)  },
+	{ RTE_PCI_DEVICE(IGC_INTEL_VENDOR_ID, IGC_DEV_ID_I226_IT)  },
+	{ RTE_PCI_DEVICE(IGC_INTEL_VENDOR_ID, IGC_DEV_ID_I226_BLANK_NVM)  },
 	{ .vendor_id = 0, /* sentinel */ },
 };
 
-- 
2.25.1


^ permalink raw reply	[flat|nested] 2+ messages in thread

* [PATCH] net/igc: add I226 support
@ 2022-05-19  6:04 Qiming Yang
  0 siblings, 0 replies; 2+ messages in thread
From: Qiming Yang @ 2022-05-19  6:04 UTC (permalink / raw)
  To: dev, qi.z.zhang; +Cc: Qiming Yang, Kevin Liu

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset=y, Size: 5933 bytes --]

Added I226 Series device ID in igc driver and updated igc guide
doc for new devices.

Signed-off-by: Qiming Yang <qiming.yang@intel.com>
Signed-off-by: Kevin Liu <kevinx.liu@intel.com>
---
 doc/guides/nics/igc.rst                | 14 +++++++-------
 doc/guides/rel_notes/release_22_03.rst |  5 +++++
 drivers/net/igc/base/igc_api.c         |  6 ++++++
 drivers/net/igc/base/igc_defines.h     |  1 +
 drivers/net/igc/base/igc_hw.h          |  6 ++++++
 drivers/net/igc/base/igc_i225.c        |  1 +
 drivers/net/igc/igc_ethdev.c           |  6 ++++++
 7 files changed, 32 insertions(+), 7 deletions(-)

diff --git a/doc/guides/nics/igc.rst b/doc/guides/nics/igc.rst
index da77e0845e..da904c2130 100644
--- a/doc/guides/nics/igc.rst
+++ b/doc/guides/nics/igc.rst
@@ -5,11 +5,12 @@ IGC Poll Mode Driver
 ======================
 
 The IGC PMD (**librte_net_igc**) provides poll mode driver support for Foxville
-I225 Series Network Adapters.
+I225 and I226 Series Network Adapters.
 
 - For information about I225, please refer to: `Intel® Ethernet Controller I225 Series
   <https://ark.intel.com/content/www/us/en/ark/products/series/184686/intel-ethernet-controller-i225-series.html>`_.
-
+- For information about I225, please refer to: `Intel® Ethernet Controller I226 Series
+  <https://ark.intel.com/content/www/us/en/ark/products/series/210588/intel-ethernet-controller-i226-series.html>`_.
 
 Driver compilation and testing
 ------------------------------
@@ -21,11 +22,10 @@ for details.
 Supported Chipsets and NICs
 ---------------------------
 
-Foxville LM (I225 LM): Client 2.5G LAN vPro Corporate
-Foxville V (I225 V): Client 2.5G LAN Consumer
-Foxville I (I225 I): Client 2.5G Industrial Temp
-Foxville V (I225 K): Client 2.5G LAN Consumer
-
+Foxville LM (I225 LM, I226 LM): Client 2.5G LAN vPro Corporate
+Foxville V (I225 V, I226 V): Client 2.5G LAN Consumer
+Foxville I (I225 I, I226 IM): Client 2.5G Industrial Temp
+Foxville V (I225 K, I226 K): Client 2.5G LAN Consumer
 
 Sample Application Notes
 ------------------------
diff --git a/doc/guides/rel_notes/release_22_03.rst b/doc/guides/rel_notes/release_22_03.rst
index f03183ee86..d752bd27da 100644
--- a/doc/guides/rel_notes/release_22_03.rst
+++ b/doc/guides/rel_notes/release_22_03.rst
@@ -88,6 +88,11 @@ New Features
   * Added AES-XCBC support in lookaside protocol (IPsec) for CN9K & CN10K.
   * Added AES-CMAC support in CN9K & CN10K.
 
+* **Added support for Intel Foxville I226 devices.**
+
+  Added Intel Foxville I225 devices in ``igc`` driver. See the
+  :doc:`../nics/igc` NIC guide for more details.
+
 * **Added an API to retrieve event port id of ethdev Rx adapter.**
 
   The new API ``rte_event_eth_rx_adapter_event_port_get()`` was added.
diff --git a/drivers/net/igc/base/igc_api.c b/drivers/net/igc/base/igc_api.c
index 2f8c0753cb..9b791dc082 100644
--- a/drivers/net/igc/base/igc_api.c
+++ b/drivers/net/igc/base/igc_api.c
@@ -888,6 +888,12 @@ s32 igc_set_mac_type(struct igc_hw *hw)
 	case IGC_DEV_ID_I225_I:
 	case IGC_DEV_ID_I220_V:
 	case IGC_DEV_ID_I225_BLANK_NVM:
+	case IGC_DEV_ID_I226_K:
+	case IGC_DEV_ID_I226_LMVP:
+	case IGC_DEV_ID_I226_LM:
+	case IGC_DEV_ID_I226_V:
+	case IGC_DEV_ID_I226_IT:
+	case IGC_DEV_ID_I226_BLANK_NVM:
 		mac->type = igc_i225;
 		break;
 	case IGC_DEV_ID_I350_VF:
diff --git a/drivers/net/igc/base/igc_defines.h b/drivers/net/igc/base/igc_defines.h
index 30a41300f5..61964bcdd2 100644
--- a/drivers/net/igc/base/igc_defines.h
+++ b/drivers/net/igc/base/igc_defines.h
@@ -1351,6 +1351,7 @@
 #define IGP04IGC_E_PHY_ID	0x02A80391
 #define M88_VENDOR		0x0141
 #define I225_I_PHY_ID		0x67C9DC00
+#define I226_LM_PHY_ID          0x67C9DC10
 
 /* M88E1000 Specific Registers */
 #define M88IGC_PHY_SPEC_CTRL		0x10  /* PHY Specific Control Reg */
diff --git a/drivers/net/igc/base/igc_hw.h b/drivers/net/igc/base/igc_hw.h
index be38fafa5f..707a1883b4 100644
--- a/drivers/net/igc/base/igc_hw.h
+++ b/drivers/net/igc/base/igc_hw.h
@@ -166,6 +166,12 @@ struct igc_hw;
 #define IGC_DEV_ID_I225_I			0x15F8
 #define IGC_DEV_ID_I220_V			0x15F7
 #define IGC_DEV_ID_I225_BLANK_NVM		0x15FD
+#define IGC_DEV_ID_I226_K           0x3102
+#define IGC_DEV_ID_I226_LMVP        0x5503
+#define IGC_DEV_ID_I226_LM          0x125B
+#define IGC_DEV_ID_I226_V           0x125C
+#define IGC_DEV_ID_I226_IT          0x125D
+#define IGC_DEV_ID_I226_BLANK_NVM   0x125F
 #define IGC_DEV_ID_I354_BACKPLANE_1GBPS	0x1F40
 #define IGC_DEV_ID_I354_SGMII			0x1F41
 #define IGC_DEV_ID_I354_BACKPLANE_2_5GBPS	0x1F45
diff --git a/drivers/net/igc/base/igc_i225.c b/drivers/net/igc/base/igc_i225.c
index 060b2f8f93..5f3d535490 100644
--- a/drivers/net/igc/base/igc_i225.c
+++ b/drivers/net/igc/base/igc_i225.c
@@ -176,6 +176,7 @@ static s32 igc_init_phy_params_i225(struct igc_hw *hw)
 	/* Verify phy id and set remaining function pointers */
 	switch (phy->id) {
 	case I225_I_PHY_ID:
+	case I226_LM_PHY_ID:
 		phy->type		= igc_phy_i225;
 		phy->ops.set_d0_lplu_state = igc_set_d0_lplu_state_i225;
 		phy->ops.set_d3_lplu_state = igc_set_d3_lplu_state_i225;
diff --git a/drivers/net/igc/igc_ethdev.c b/drivers/net/igc/igc_ethdev.c
index a1f1a9772b..b9933b395d 100644
--- a/drivers/net/igc/igc_ethdev.c
+++ b/drivers/net/igc/igc_ethdev.c
@@ -97,6 +97,12 @@ static const struct rte_pci_id pci_id_igc_map[] = {
 	{ RTE_PCI_DEVICE(IGC_INTEL_VENDOR_ID, IGC_DEV_ID_I225_V)  },
 	{ RTE_PCI_DEVICE(IGC_INTEL_VENDOR_ID, IGC_DEV_ID_I225_I)  },
 	{ RTE_PCI_DEVICE(IGC_INTEL_VENDOR_ID, IGC_DEV_ID_I225_K)  },
+	{ RTE_PCI_DEVICE(IGC_INTEL_VENDOR_ID, IGC_DEV_ID_I226_K)  },
+	{ RTE_PCI_DEVICE(IGC_INTEL_VENDOR_ID, IGC_DEV_ID_I226_LMVP)  },
+	{ RTE_PCI_DEVICE(IGC_INTEL_VENDOR_ID, IGC_DEV_ID_I226_LM)  },
+	{ RTE_PCI_DEVICE(IGC_INTEL_VENDOR_ID, IGC_DEV_ID_I226_V)  },
+	{ RTE_PCI_DEVICE(IGC_INTEL_VENDOR_ID, IGC_DEV_ID_I226_IT)  },
+	{ RTE_PCI_DEVICE(IGC_INTEL_VENDOR_ID, IGC_DEV_ID_I226_BLANK_NVM)  },
 	{ .vendor_id = 0, /* sentinel */ },
 };
 
-- 
2.25.1


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2022-05-19  6:12 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-19  6:09 [PATCH] net/igc: add I226 support Qiming Yang
  -- strict thread matches above, loose matches on Subject: below --
2022-05-19  6:04 Qiming Yang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).