Added I226 Series device ID in igc driver and updated igc guide doc for new devices. Signed-off-by: Qiming Yang Signed-off-by: Kevin Liu --- 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 `_. - +- For information about I225, 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_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