From patchwork Wed Mar 25 03:23:55 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Min, JiaqiX" X-Patchwork-Id: 67093 X-Patchwork-Delegate: xiaolong.ye@intel.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 0052FA058E; Wed, 25 Mar 2020 04:25:33 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 8CB081C030; Wed, 25 Mar 2020 04:25:25 +0100 (CET) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by dpdk.org (Postfix) with ESMTP id 7F80E1BFE2 for ; Wed, 25 Mar 2020 04:25:22 +0100 (CET) IronPort-SDR: 3HG0ziI+XHWFeyVJTNMnku/3nRZcZU7R4wt4UL6QdujPqCLSPLI16TJzmWYcTZ8/7jD3E5y1/8 TJLF203sK0dw== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Mar 2020 20:25:21 -0700 IronPort-SDR: tevyNq90HsMlkBpCA2EqSAaeiAKrMggBIQYwSi592f/mXH8UZrwq4Qy/A3/qCpE1OTRhyur73M bfxArbegQRjw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.72,302,1580803200"; d="scan'208";a="265396783" Received: from dpdk.sh.intel.com ([10.239.255.20]) by orsmga002.jf.intel.com with ESMTP; 24 Mar 2020 20:25:20 -0700 From: Jiaqi Min To: dev@dpdk.org Cc: Jiaqi Min , Zalfresso-Jundzillo Date: Wed, 25 Mar 2020 03:23:55 +0000 Message-Id: <20200325032356.20198-3-jiaqix.min@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200325032356.20198-1-jiaqix.min@intel.com> References: <20200325032356.20198-1-jiaqix.min@intel.com> Subject: [dpdk-dev] [PATCH 2/3] net/i40e/base: new device ID introduced for V710-TL 5G X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" This change is adding new device ID and handling it in the same way as X710-T*L head of family. A new device ID is for new V710-T*L adapter supporting speeds up to 5G. Signed-off-by: Zalfresso-Jundzillo Signed-off-by: Jiaqi Min --- drivers/net/i40e/base/i40e_common.c | 12 +++++++++--- drivers/net/i40e/base/i40e_devids.h | 4 +++- drivers/net/i40e/i40e_ethdev.c | 1 + 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/drivers/net/i40e/base/i40e_common.c b/drivers/net/i40e/base/i40e_common.c index 84e67f285..4e06f2d23 100644 --- a/drivers/net/i40e/base/i40e_common.c +++ b/drivers/net/i40e/base/i40e_common.c @@ -34,6 +34,7 @@ enum i40e_status_code i40e_set_mac_type(struct i40e_hw *hw) case I40E_DEV_ID_10G_BASE_T_BC: case I40E_DEV_ID_10G_B: case I40E_DEV_ID_10G_SFP: + case I40E_DEV_ID_5G_BASE_T_BC: case I40E_DEV_ID_20G_KR2: case I40E_DEV_ID_20G_KR2_A: case I40E_DEV_ID_25G_B: @@ -6728,6 +6729,7 @@ enum i40e_status_code i40e_write_phy_register(struct i40e_hw *hw, case I40E_DEV_ID_10G_BASE_T: case I40E_DEV_ID_10G_BASE_T4: case I40E_DEV_ID_10G_BASE_T_BC: + case I40E_DEV_ID_5G_BASE_T_BC: case I40E_DEV_ID_10G_BASE_T_X722: case I40E_DEV_ID_25G_B: case I40E_DEV_ID_25G_SFP28: @@ -6764,6 +6766,7 @@ enum i40e_status_code i40e_read_phy_register(struct i40e_hw *hw, break; case I40E_DEV_ID_10G_BASE_T: case I40E_DEV_ID_10G_BASE_T4: + case I40E_DEV_ID_5G_BASE_T_BC: case I40E_DEV_ID_10G_BASE_T_X722: case I40E_DEV_ID_25G_B: case I40E_DEV_ID_25G_SFP28: @@ -7036,7 +7039,8 @@ enum i40e_status_code i40e_get_phy_lpi_status(struct i40e_hw *hw, stat->rx_lpi_status = 0; stat->tx_lpi_status = 0; - if (hw->device_id == I40E_DEV_ID_10G_BASE_T_BC && + if ((hw->device_id == I40E_DEV_ID_10G_BASE_T_BC || + hw->device_id == I40E_DEV_ID_5G_BASE_T_BC) && (hw->phy.link_info.link_speed == I40E_LINK_SPEED_2_5GB || hw->phy.link_info.link_speed == I40E_LINK_SPEED_5GB)) { ret = i40e_aq_get_phy_register(hw, @@ -7081,7 +7085,8 @@ enum i40e_status_code i40e_get_lpi_counters(struct i40e_hw *hw, /* only X710-T*L requires special handling of counters * for other devices we just read the MAC registers */ - if (hw->device_id == I40E_DEV_ID_10G_BASE_T_BC && + if ((hw->device_id == I40E_DEV_ID_10G_BASE_T_BC || + hw->device_id == I40E_DEV_ID_5G_BASE_T_BC) && hw->phy.link_info.link_speed != I40E_LINK_SPEED_1GB) { enum i40e_status_code retval; u32 cmd_status = 0; @@ -7123,7 +7128,8 @@ enum i40e_status_code i40e_get_lpi_duration(struct i40e_hw *hw, enum i40e_status_code retval; u32 cmd_status; - if (hw->device_id != I40E_DEV_ID_10G_BASE_T_BC) + if (hw->device_id != I40E_DEV_ID_10G_BASE_T_BC && + hw->device_id != I40E_DEV_ID_5G_BASE_T_BC) return I40E_ERR_NOT_IMPLEMENTED; retval = i40e_aq_run_phy_activity diff --git a/drivers/net/i40e/base/i40e_devids.h b/drivers/net/i40e/base/i40e_devids.h index 5897d38f6..b87e1bcb4 100644 --- a/drivers/net/i40e/base/i40e_devids.h +++ b/drivers/net/i40e/base/i40e_devids.h @@ -25,6 +25,7 @@ #define I40E_DEV_ID_X710_N3000 0x0CF8 #define I40E_DEV_ID_XXV710_N3000 0x0D58 #define I40E_DEV_ID_10G_BASE_T_BC 0x15FF +#define I40E_DEV_ID_5G_BASE_T_BC 0x101F #if defined(INTEGRATED_VF) || defined(VF_DRIVER) || defined(I40E_NDIS_SUPPORT) #define I40E_DEV_ID_VF 0x154C #define I40E_DEV_ID_VF_HV 0x1571 @@ -39,7 +40,8 @@ #define I40E_DEV_ID_10G_B 0x104F #define I40E_DEV_ID_10G_SFP 0x104E #define I40E_IS_X710TL_DEVICE(d) \ - ((d) == I40E_DEV_ID_10G_BASE_T_BC) + (((d) == I40E_DEV_ID_10G_BASE_T_BC) || \ + ((d) == I40E_DEV_ID_5G_BASE_T_BC)) #define I40E_DEV_ID_KX_X722 0x37CE #define I40E_DEV_ID_QSFP_X722 0x37CF #define I40E_DEV_ID_SFP_X722 0x37D0 diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c index 9539b0470..6740d00e2 100644 --- a/drivers/net/i40e/i40e_ethdev.c +++ b/drivers/net/i40e/i40e_ethdev.c @@ -443,6 +443,7 @@ static const struct rte_pci_id pci_id_i40e_map[] = { { RTE_PCI_DEVICE(I40E_INTEL_VENDOR_ID, I40E_DEV_ID_X710_N3000) }, { RTE_PCI_DEVICE(I40E_INTEL_VENDOR_ID, I40E_DEV_ID_XXV710_N3000) }, { RTE_PCI_DEVICE(I40E_INTEL_VENDOR_ID, I40E_DEV_ID_10G_BASE_T_BC) }, + { RTE_PCI_DEVICE(I40E_INTEL_VENDOR_ID, I40E_DEV_ID_5G_BASE_T_BC) }, { RTE_PCI_DEVICE(I40E_INTEL_VENDOR_ID, I40E_DEV_ID_10G_B) }, { RTE_PCI_DEVICE(I40E_INTEL_VENDOR_ID, I40E_DEV_ID_10G_SFP) }, { .vendor_id = 0, /* sentinel */ },