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 `_. - +- For information about I226, please refer to: `IntelĀ® Ethernet Controller I226 Series + `_. 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_07.rst b/doc/guides/rel_notes/release_22_07.rst index 55659b4c05..d46f773df0 100644 --- a/doc/guides/rel_notes/release_22_07.rst +++ b/doc/guides/rel_notes/release_22_07.rst @@ -106,6 +106,11 @@ New Features * Added Tx QoS queue / queue group priority configuration support. * Added Tx QoS queue weight configuration support. +* **Updated Intel igc driver.** + + Added Intel Foxville I226 devices in ``igc`` driver. + See the doc:`../nics/igc` NIC guide for more details. + * **Updated Mellanox mlx5 driver.** * Added support for promiscuous mode on Windows. 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 */ }, };