From patchwork Fri Sep 2 03:00:03 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiawen Wu X-Patchwork-Id: 115764 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 834F5A0542; Fri, 2 Sep 2022 05:01:01 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 22FBE4280B; Fri, 2 Sep 2022 05:00:54 +0200 (CEST) Received: from smtpbg.qq.com (smtpbgbr2.qq.com [54.207.22.56]) by mails.dpdk.org (Postfix) with ESMTP id 93C7940E09; Fri, 2 Sep 2022 05:00:49 +0200 (CEST) X-QQ-mid: bizesmtp70t1662087644td3ja4ou Received: from wxdbg.localdomain.com ( [183.129.236.74]) by bizesmtp.qq.com (ESMTP) with id ; Fri, 02 Sep 2022 11:00:44 +0800 (CST) X-QQ-SSF: 01400000000000G0T000000A0000000 X-QQ-FEAT: q+EIYT+FhZpUq6uvjhG9Cryqz8rZ2EVGErbTEqunJhS/NhclwxrRBXEWKfEX1 eWPsQXoAQLMKaCfZkkQDvNUBhxhTOmvQijprEuwTatEZ6z4kpxXORUQC+t4OZ2EQr7pVUIA Qeoa3p3MocEHqVQsvExgu7dh9uhenDEsIbkJy9oFR99SmxrRMf3CyF5n8cZfmBwB5lNemuS pl/XFCYZ18zMRVp/Us9H8Vujd50iIJsFZ2D6iCwN+PUbLKqLvZ40imny73uBtcd0JGBL/v8 PZGNJRoZVnP0EVUNVBy3wRcokBgL2tS11ipo9Y0hHY9Y9mYtaQvMq2HTbUim89KX1oVi+Q+ 3SL+l2SFIgTlM3UVQP97SECU7PC7V5AI7tpUW+Yco5jKbA59Kyhr7Btn37fG3kunNAuUJSG X-QQ-GoodBg: 2 From: Jiawen Wu To: dev@dpdk.org Cc: Jiawen Wu , stable@dpdk.org Subject: [PATCH 1/9] net/txgbe: fix IPv6 rule in flow director Date: Fri, 2 Sep 2022 11:00:03 +0800 Message-Id: <20220902030011.377523-2-jiawenwu@trustnetic.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20220902030011.377523-1-jiawenwu@trustnetic.com> References: <20220902030011.377523-1-jiawenwu@trustnetic.com> MIME-Version: 1.0 X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:trustnetic.com:qybglogicsvr:qybglogicsvr5 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Convert the correct packet type and flow type, to fix IPv6 rule in FDIR. Fixes: b973ee26747a ("net/txgbe: parse flow director filter") Cc: stable@dpdk.org Signed-off-by: Jiawen Wu --- drivers/net/txgbe/txgbe_flow.c | 33 ++++++++++++++++++++++++++------- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/drivers/net/txgbe/txgbe_flow.c b/drivers/net/txgbe/txgbe_flow.c index d0093c0163..07d0337095 100644 --- a/drivers/net/txgbe/txgbe_flow.c +++ b/drivers/net/txgbe/txgbe_flow.c @@ -1583,9 +1583,7 @@ txgbe_parse_fdir_filter_normal(struct rte_eth_dev *dev __rte_unused, * value. So, we need not do anything for the not provided fields later. */ memset(rule, 0, sizeof(struct txgbe_fdir_rule)); - memset(&rule->mask, 0xFF, sizeof(struct txgbe_hw_fdir_mask)); - rule->mask.vlan_tci_mask = 0; - rule->mask.flex_bytes_mask = 0; + memset(&rule->mask, 0, sizeof(struct txgbe_hw_fdir_mask)); /** * The first not void item should be @@ -1867,7 +1865,10 @@ txgbe_parse_fdir_filter_normal(struct rte_eth_dev *dev __rte_unused, * as we must have a flow type. */ rule->input.flow_type |= TXGBE_ATR_L4TYPE_TCP; - ptype = txgbe_ptype_table[TXGBE_PT_IPV4_TCP]; + if (rule->input.flow_type & TXGBE_ATR_FLOW_TYPE_IPV6) + ptype = txgbe_ptype_table[TXGBE_PT_IPV6_TCP]; + else + ptype = txgbe_ptype_table[TXGBE_PT_IPV4_TCP]; /*Not supported last point for range*/ if (item->last) { rte_flow_error_set(error, EINVAL, @@ -1931,7 +1932,10 @@ txgbe_parse_fdir_filter_normal(struct rte_eth_dev *dev __rte_unused, * as we must have a flow type. */ rule->input.flow_type |= TXGBE_ATR_L4TYPE_UDP; - ptype = txgbe_ptype_table[TXGBE_PT_IPV4_UDP]; + if (rule->input.flow_type & TXGBE_ATR_FLOW_TYPE_IPV6) + ptype = txgbe_ptype_table[TXGBE_PT_IPV6_UDP]; + else + ptype = txgbe_ptype_table[TXGBE_PT_IPV4_UDP]; /*Not supported last point for range*/ if (item->last) { rte_flow_error_set(error, EINVAL, @@ -1990,7 +1994,10 @@ txgbe_parse_fdir_filter_normal(struct rte_eth_dev *dev __rte_unused, * as we must have a flow type. */ rule->input.flow_type |= TXGBE_ATR_L4TYPE_SCTP; - ptype = txgbe_ptype_table[TXGBE_PT_IPV4_SCTP]; + if (rule->input.flow_type & TXGBE_ATR_FLOW_TYPE_IPV6) + ptype = txgbe_ptype_table[TXGBE_PT_IPV6_SCTP]; + else + ptype = txgbe_ptype_table[TXGBE_PT_IPV4_SCTP]; /*Not supported last point for range*/ if (item->last) { rte_flow_error_set(error, EINVAL, @@ -2141,6 +2148,16 @@ txgbe_parse_fdir_filter_normal(struct rte_eth_dev *dev __rte_unused, rule->input.pkt_type = cpu_to_be16(txgbe_encode_ptype(ptype)); + if (rule->input.flow_type & TXGBE_ATR_FLOW_TYPE_IPV6) { + if (rule->input.flow_type & TXGBE_ATR_L4TYPE_MASK) + rule->input.pkt_type &= 0xFFFF; + else + rule->input.pkt_type &= 0xF8FF; + + rule->input.flow_type &= TXGBE_ATR_L3TYPE_MASK | + TXGBE_ATR_L4TYPE_MASK; + } + return txgbe_parse_fdir_act_attr(attr, actions, rule, error); } @@ -2827,8 +2844,10 @@ txgbe_flow_create(struct rte_eth_dev *dev, ret = memcmp(&fdir_info->mask, &fdir_rule.mask, sizeof(struct txgbe_hw_fdir_mask)); - if (ret) + if (ret) { + PMD_DRV_LOG(ERR, "only support one global mask"); goto out; + } if (fdir_info->flex_bytes_offset != fdir_rule.flex_bytes_offset) From patchwork Fri Sep 2 03:00:04 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiawen Wu X-Patchwork-Id: 115763 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 120C2A0542; Fri, 2 Sep 2022 05:00:54 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 044CC40F18; Fri, 2 Sep 2022 05:00:53 +0200 (CEST) Received: from smtpbg.qq.com (smtpbgjp3.qq.com [54.92.39.34]) by mails.dpdk.org (Postfix) with ESMTP id 9951640F18; Fri, 2 Sep 2022 05:00:50 +0200 (CEST) X-QQ-mid: bizesmtp70t1662087647tjf6uv5l Received: from wxdbg.localdomain.com ( [183.129.236.74]) by bizesmtp.qq.com (ESMTP) with id ; Fri, 02 Sep 2022 11:00:46 +0800 (CST) X-QQ-SSF: 01400000000000G0T000000A0000000 X-QQ-FEAT: FS9dDLprKnJ8trYl6XGuCEKps8+HChsxfZ3N9Ufd3ZK5nL9nRagzLJtK9n2Ho ySpug8jZ4HlCAkUsG0DWcqkvRYL5RgJGbbE+yvmk6EfeO+Rj3NTy9GS6QaPPKQv74zQl2D9 CjKhpF5TPK9VNWEjxXJYVrpMidDQnmVxUNFD+ZG5fPHhNVmXaZADUVugAmWX+nrsci91Xzg PifPNrhbKqobRofHN0gxbRvTnETe08XnMH85G7BQhKHmL7lQU83M4E7sl/kOybj//27A0ut HBs5nRVy9TgPMGVtoF+syqeC7LamnoIwWqap7nZ5OScxaeCp1STTvV4AdDzHEyaNsaUSKo8 w1NHXnN/GyK2uana0ywI6xb1/IIJzshu4pX2hCiqj5xAF0iUgdNvW78hObK6SkJ3ycyzjrS X-QQ-GoodBg: 2 From: Jiawen Wu To: dev@dpdk.org Cc: Jiawen Wu , stable@dpdk.org Subject: [PATCH 2/9] net/txgbe: fix OEM customized LED Date: Fri, 2 Sep 2022 11:00:04 +0800 Message-Id: <20220902030011.377523-3-jiawenwu@trustnetic.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20220902030011.377523-1-jiawenwu@trustnetic.com> References: <20220902030011.377523-1-jiawenwu@trustnetic.com> MIME-Version: 1.0 X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:trustnetic.com:qybglogicsvr:qybglogicsvr5 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Fix to read the correct mailbox register. Fixes: f45834fd5c6a ("net/txgbe: support OEM customized LED") Cc: stable@dpdk.org Signed-off-by: Jiawen Wu --- drivers/net/txgbe/base/txgbe_mng.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/txgbe/base/txgbe_mng.c b/drivers/net/txgbe/base/txgbe_mng.c index 07bbfe8142..df7145094f 100644 --- a/drivers/net/txgbe/base/txgbe_mng.c +++ b/drivers/net/txgbe/base/txgbe_mng.c @@ -284,7 +284,7 @@ s32 txgbe_close_notify(struct txgbe_hw *hw) if (status) return status; - tmp = rd32(hw, TXGBE_MNGSWSYNC); + tmp = rd32a(hw, TXGBE_MNGMBX, 1); if (tmp == TXGBE_CHECKSUM_CAP_ST_PASS) status = 0; else @@ -314,7 +314,7 @@ s32 txgbe_open_notify(struct txgbe_hw *hw) if (status) return status; - tmp = rd32(hw, TXGBE_MNGSWSYNC); + tmp = rd32a(hw, TXGBE_MNGMBX, 1); if (tmp == TXGBE_CHECKSUM_CAP_ST_PASS) status = 0; else From patchwork Fri Sep 2 03:00:05 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiawen Wu X-Patchwork-Id: 115765 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id DA021A0542; Fri, 2 Sep 2022 05:01:07 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id F15F342829; Fri, 2 Sep 2022 05:00:54 +0200 (CEST) Received: from smtpbg.qq.com (smtpbgeu1.qq.com [52.59.177.22]) by mails.dpdk.org (Postfix) with ESMTP id CCC4A40684; Fri, 2 Sep 2022 05:00:52 +0200 (CEST) X-QQ-mid: bizesmtp70t1662087649tlykbg2o Received: from wxdbg.localdomain.com ( [183.129.236.74]) by bizesmtp.qq.com (ESMTP) with id ; Fri, 02 Sep 2022 11:00:49 +0800 (CST) X-QQ-SSF: 01400000000000G0T000000A0000000 X-QQ-FEAT: 6O9OQ9ciFt5so7feLr4vx1H6iSUl+q6nfWGPE6pMcpwydwPCcq52NFDU7coW1 lAqM62l0pYbvBgAbkeAakoTcctfWxBp9oQJKCo56+W4T90qL6+TFRcwb9LDDmeQeQsGZ5gf M87ViSQtoYN3KqDzytzlvstEwfWb+7ZmxqXQv6Yh2QKB2BtoXNdR3JBwT/K0nVllu8a3cTc 7Z+WbG7h+00lJf7rYyMESbF5GJUh7LQuiZ2YoQxs4o4lceXUagq3Z/SS504mu0yf4Y9xXZX KsoRHXXomtb0M/VWTP+wXOA1FZ/qdBUUK97SsHGrwnqBc3sLFcDZY1dNfFOHnIFG6vyuDZh pzgrHKtMRMNtC4RC69SoTgPCGxCoYX5ueRYZb8Ny1kobU6j0U4MggI0brKq8mqQNOY+3ayN X-QQ-GoodBg: 2 From: Jiawen Wu To: dev@dpdk.org Cc: Jiawen Wu , stable@dpdk.org Subject: [PATCH 3/9] net/txgbe: remove semaphore between SW/FW Date: Fri, 2 Sep 2022 11:00:05 +0800 Message-Id: <20220902030011.377523-4-jiawenwu@trustnetic.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20220902030011.377523-1-jiawenwu@trustnetic.com> References: <20220902030011.377523-1-jiawenwu@trustnetic.com> MIME-Version: 1.0 X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:trustnetic.com:qybglogicsvr:qybglogicsvr5 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Since firmware does not use the semaphore between software and firmware. Remove useless unilateral semaphore setting. Fixes: 35c90ecccfd4 ("net/txgbe: add EEPROM functions") Cc: stable@dpdk.org Signed-off-by: Jiawen Wu --- drivers/net/txgbe/base/txgbe_eeprom.c | 32 --------------------------- 1 file changed, 32 deletions(-) diff --git a/drivers/net/txgbe/base/txgbe_eeprom.c b/drivers/net/txgbe/base/txgbe_eeprom.c index 4ed6bd6728..aeeae06dfc 100644 --- a/drivers/net/txgbe/base/txgbe_eeprom.c +++ b/drivers/net/txgbe/base/txgbe_eeprom.c @@ -111,37 +111,6 @@ s32 txgbe_get_eeprom_semaphore(struct txgbe_hw *hw) status = 0; } - /* Now get the semaphore between SW/FW through the SWESMBI bit */ - if (status == 0) { - for (i = 0; i < timeout; i++) { - /* Set the SW EEPROM semaphore bit to request access */ - wr32m(hw, TXGBE_MNGSWSYNC, - TXGBE_MNGSWSYNC_REQ, TXGBE_MNGSWSYNC_REQ); - - /* - * If we set the bit successfully then we got the - * semaphore. - */ - swsm = rd32(hw, TXGBE_MNGSWSYNC); - if (swsm & TXGBE_MNGSWSYNC_REQ) - break; - - usec_delay(50); - } - - /* - * Release semaphores and return error if SW EEPROM semaphore - * was not granted because we don't have access to the EEPROM - */ - if (i >= timeout) { - DEBUGOUT("SWESMBI Software EEPROM semaphore not granted."); - txgbe_release_eeprom_semaphore(hw); - status = TXGBE_ERR_EEPROM; - } - } else { - DEBUGOUT("Software semaphore SMBI between device drivers not granted."); - } - return status; } @@ -153,7 +122,6 @@ s32 txgbe_get_eeprom_semaphore(struct txgbe_hw *hw) **/ void txgbe_release_eeprom_semaphore(struct txgbe_hw *hw) { - wr32m(hw, TXGBE_MNGSWSYNC, TXGBE_MNGSWSYNC_REQ, 0); wr32m(hw, TXGBE_SWSEM, TXGBE_SWSEM_PF, 0); txgbe_flush(hw); } From patchwork Fri Sep 2 03:00:06 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiawen Wu X-Patchwork-Id: 115766 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 9AE3BA0542; Fri, 2 Sep 2022 05:01:17 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 6A53A427FF; Fri, 2 Sep 2022 05:00:58 +0200 (CEST) Received: from smtpbg.qq.com (smtpbguseast2.qq.com [54.204.34.130]) by mails.dpdk.org (Postfix) with ESMTP id C7B644282F; Fri, 2 Sep 2022 05:00:55 +0200 (CEST) X-QQ-mid: bizesmtp70t1662087652t7w5vwhr Received: from wxdbg.localdomain.com ( [183.129.236.74]) by bizesmtp.qq.com (ESMTP) with id ; Fri, 02 Sep 2022 11:00:51 +0800 (CST) X-QQ-SSF: 01400000000000G0T000000A0000000 X-QQ-FEAT: y5UFFkuhlmIcUsruJXKlRhnyWQ2JdHIpBaNPeYcOXSPS69YNGJl+hT758uCq3 rg9svz4zUUhd50F/UwezqzT8wxbQMDmmxAXGcwVtNus2phr5ha65gwpudlOkPet8dAeNkc2 dLWUGRwCXtkvX6o1XYgvZBwQL/PFsqb1R27hqWuwf/1+dGV7uf18h4NVtxsIjdgAt5XrIFx of5OMdt1G+7LTkPdcJ0/0PAq9J/RHLcsjb5iVeB9526WqcmLHSdNh63rXb+k5+HLjfjRKfe fGHD7umpxi7gShqU9wLhVZXfdh8W1tHBmacsfehO/EHSCJnO/PEGewSNWYhEpDcrpZ4EFK0 rVV6KnWqpnIhVH+duszheKK/SfJa6/qWTgfALzb3YoC8k6FaClJZauuKGYn88GSXR/ANUT6 u2xLB5AYIo4= X-QQ-GoodBg: 2 From: Jiawen Wu To: dev@dpdk.org Cc: Jiawen Wu , stable@dpdk.org Subject: [PATCH 4/9] net/txgbe: rename some extended statistic Date: Fri, 2 Sep 2022 11:00:06 +0800 Message-Id: <20220902030011.377523-5-jiawenwu@trustnetic.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20220902030011.377523-1-jiawenwu@trustnetic.com> References: <20220902030011.377523-1-jiawenwu@trustnetic.com> MIME-Version: 1.0 X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:trustnetic.com:qybglogicsvr:qybglogicsvr5 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Rename rx_oversize_errors to rx_oversize_cnt since it depends on giant packet size limit instead of MTU, by hardware design. Rename rx_drop_packets to rx_rdb_drop to indicate the drop location. And add rx_dma_drop to extended statistics. Fixes: 91fe49c87d76 ("net/txgbe: support device xstats") Cc: stable@dpdk.org Signed-off-by: Jiawen Wu --- drivers/net/txgbe/base/txgbe_type.h | 4 ++-- drivers/net/txgbe/txgbe_ethdev.c | 11 ++++++----- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/drivers/net/txgbe/base/txgbe_type.h b/drivers/net/txgbe/base/txgbe_type.h index 343279127f..c3486b472f 100644 --- a/drivers/net/txgbe/base/txgbe_type.h +++ b/drivers/net/txgbe/base/txgbe_type.h @@ -356,9 +356,9 @@ struct txgbe_hw_stats { u64 tx_management_packets; u64 rx_management_dropped; u64 rx_dma_drop; - u64 rx_drop_packets; /* Basic Error */ + u64 rx_rdb_drop; u64 rx_crc_errors; u64 rx_illegal_byte_errors; u64 rx_error_bytes; @@ -366,7 +366,7 @@ struct txgbe_hw_stats { u64 rx_length_errors; u64 rx_undersize_errors; u64 rx_fragment_errors; - u64 rx_oversize_errors; + u64 rx_oversize_cnt; u64 rx_jabber_errors; u64 rx_l3_l4_xsum_error; u64 mac_local_errors; diff --git a/drivers/net/txgbe/txgbe_ethdev.c b/drivers/net/txgbe/txgbe_ethdev.c index 9dc9948219..1c1d959ab5 100644 --- a/drivers/net/txgbe/txgbe_ethdev.c +++ b/drivers/net/txgbe/txgbe_ethdev.c @@ -183,8 +183,10 @@ static const struct rte_txgbe_xstats_name_off rte_txgbe_stats_strings[] = { HW_XSTAT(rx_management_packets), HW_XSTAT(tx_management_packets), HW_XSTAT(rx_management_dropped), + HW_XSTAT(rx_dma_drop), /* Basic Error */ + HW_XSTAT(rx_rdb_drop), HW_XSTAT(rx_crc_errors), HW_XSTAT(rx_illegal_byte_errors), HW_XSTAT(rx_error_bytes), @@ -192,7 +194,7 @@ static const struct rte_txgbe_xstats_name_off rte_txgbe_stats_strings[] = { HW_XSTAT(rx_length_errors), HW_XSTAT(rx_undersize_errors), HW_XSTAT(rx_fragment_errors), - HW_XSTAT(rx_oversize_errors), + HW_XSTAT(rx_oversize_cnt), HW_XSTAT(rx_jabber_errors), HW_XSTAT(rx_l3_l4_xsum_error), HW_XSTAT(mac_local_errors), @@ -2157,7 +2159,7 @@ txgbe_read_stats_registers(struct txgbe_hw *hw, hw_stats->rx_bytes += rd64(hw, TXGBE_DMARXOCTL); hw_stats->tx_bytes += rd64(hw, TXGBE_DMATXOCTL); hw_stats->rx_dma_drop += rd32(hw, TXGBE_DMARXDROP); - hw_stats->rx_drop_packets += rd32(hw, TXGBE_PBRXDROP); + hw_stats->rx_rdb_drop += rd32(hw, TXGBE_PBRXDROP); /* MAC Stats */ hw_stats->rx_crc_errors += rd64(hw, TXGBE_MACRXERRCRCL); @@ -2189,7 +2191,7 @@ txgbe_read_stats_registers(struct txgbe_hw *hw, rd64(hw, TXGBE_MACTX1024TOMAXL); hw_stats->rx_undersize_errors += rd64(hw, TXGBE_MACRXERRLENL); - hw_stats->rx_oversize_errors += rd32(hw, TXGBE_MACRXOVERSIZE); + hw_stats->rx_oversize_cnt += rd32(hw, TXGBE_MACRXOVERSIZE); hw_stats->rx_jabber_errors += rd32(hw, TXGBE_MACRXJABBER); /* MNG Stats */ @@ -2311,8 +2313,7 @@ txgbe_dev_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats) hw_stats->rx_mac_short_packet_dropped + hw_stats->rx_length_errors + hw_stats->rx_undersize_errors + - hw_stats->rx_oversize_errors + - hw_stats->rx_drop_packets + + hw_stats->rx_rdb_drop + hw_stats->rx_illegal_byte_errors + hw_stats->rx_error_bytes + hw_stats->rx_fragment_errors + From patchwork Fri Sep 2 03:00:07 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiawen Wu X-Patchwork-Id: 115767 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 491BAA0542; Fri, 2 Sep 2022 05:01:24 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B0AC842B72; Fri, 2 Sep 2022 05:01:02 +0200 (CEST) Received: from smtpbg.qq.com (smtpbgbr2.qq.com [54.207.22.56]) by mails.dpdk.org (Postfix) with ESMTP id DD08242905; Fri, 2 Sep 2022 05:00:58 +0200 (CEST) X-QQ-mid: bizesmtp70t1662087654tepkcmy2 Received: from wxdbg.localdomain.com ( [183.129.236.74]) by bizesmtp.qq.com (ESMTP) with id ; Fri, 02 Sep 2022 11:00:54 +0800 (CST) X-QQ-SSF: 01400000000000G0T000000A0000000 X-QQ-FEAT: NGMqyHdgFPZqCS0z2PNXX4doXELaub0YVRMf4GgE1HSaOv9wmwGrkMr73bkbV WT0TBkx0pXrvZTeCvWQCLYPHrsC4pd9PUQKq+C6/Iz9OdX7Ov4Z4YiYyAquGR3GoY/KmJlF vU2I51pmbp47OdxR5yLrAJdFf4Bth5X07Vnn/1EPC6lPuihSeN3DllBlZr6eNuKAv5kAKJM UvSPlImbkjjzt9UTs/3fmQrIOYZXTKi0vv8cbDUC9oqyUm+CAJkk0iIci7daxKuxMRNBIKd tgY/vYUwZbqzG+FIW+4DZmQV+R+YTCAv6yA+Dn3Hv0vHH7+JA+Ij0YHPpkv3tdUwv5m2ov+ ceyivJaPkEiEsIShShEjZZKqjdJz+mDyujhAH2e0mvE26FcbCkF4/n3UpXst3vdhyOyk61F X-QQ-GoodBg: 2 From: Jiawen Wu To: dev@dpdk.org Cc: Jiawen Wu , stable@dpdk.org Subject: [PATCH 5/9] net/ngbe: rename some extended statistic Date: Fri, 2 Sep 2022 11:00:07 +0800 Message-Id: <20220902030011.377523-6-jiawenwu@trustnetic.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20220902030011.377523-1-jiawenwu@trustnetic.com> References: <20220902030011.377523-1-jiawenwu@trustnetic.com> MIME-Version: 1.0 X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:trustnetic.com:qybglogicsvr:qybglogicsvr5 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Rename rx_oversize_errors to rx_oversize_cnt since it depends on giant packet size limit instead of MTU, by hardware design. Rename rx_drop_packets and tx_drop_packets to rx_dma_drop and tx_dma_drop to indicate the drop location. And add tx_dma_drop to extended statistics. Fixes: 8b433d04adc9 ("net/ngbe: support device xstats") Cc: stable@dpdk.org Signed-off-by: Jiawen Wu --- drivers/net/ngbe/base/ngbe_type.h | 5 ++--- drivers/net/ngbe/ngbe_ethdev.c | 10 +++++----- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/drivers/net/ngbe/base/ngbe_type.h b/drivers/net/ngbe/base/ngbe_type.h index 4a6c273f1e..73111f7950 100644 --- a/drivers/net/ngbe/base/ngbe_type.h +++ b/drivers/net/ngbe/base/ngbe_type.h @@ -142,9 +142,8 @@ struct ngbe_hw_stats { u64 mng_bmc2host_packets; u64 mng_host2bmc_packets; /* Basix RxTx */ - u64 rx_drop_packets; - u64 tx_drop_packets; u64 rx_dma_drop; + u64 tx_dma_drop; u64 tx_secdrp_packets; u64 rx_packets; u64 tx_packets; @@ -170,7 +169,7 @@ struct ngbe_hw_stats { u64 rx_length_errors; u64 rx_undersize_errors; u64 rx_fragment_errors; - u64 rx_oversize_errors; + u64 rx_oversize_cnt; u64 rx_jabber_errors; u64 rx_l3_l4_xsum_error; u64 mac_local_errors; diff --git a/drivers/net/ngbe/ngbe_ethdev.c b/drivers/net/ngbe/ngbe_ethdev.c index 86c28099c4..df32bf64ff 100644 --- a/drivers/net/ngbe/ngbe_ethdev.c +++ b/drivers/net/ngbe/ngbe_ethdev.c @@ -165,6 +165,7 @@ static const struct rte_ngbe_xstats_name_off rte_ngbe_stats_strings[] = { HW_XSTAT(tx_management_packets), HW_XSTAT(rx_management_dropped), HW_XSTAT(rx_dma_drop), + HW_XSTAT(tx_dma_drop), HW_XSTAT(tx_secdrp_packets), /* Basic Error */ @@ -175,7 +176,7 @@ static const struct rte_ngbe_xstats_name_off rte_ngbe_stats_strings[] = { HW_XSTAT(rx_length_errors), HW_XSTAT(rx_undersize_errors), HW_XSTAT(rx_fragment_errors), - HW_XSTAT(rx_oversize_errors), + HW_XSTAT(rx_oversize_cnt), HW_XSTAT(rx_jabber_errors), HW_XSTAT(rx_l3_l4_xsum_error), HW_XSTAT(mac_local_errors), @@ -1374,9 +1375,8 @@ ngbe_read_stats_registers(struct ngbe_hw *hw, hw_stats->rx_xoff_packets += rd32(hw, NGBE_PBRXLNKXOFF); /* DMA Stats */ - hw_stats->rx_drop_packets += rd32(hw, NGBE_DMARXDROP); - hw_stats->tx_drop_packets += rd32(hw, NGBE_DMATXDROP); hw_stats->rx_dma_drop += rd32(hw, NGBE_DMARXDROP); + hw_stats->tx_dma_drop += rd32(hw, NGBE_DMATXDROP); hw_stats->tx_secdrp_packets += rd32(hw, NGBE_DMATXSECDROP); hw_stats->rx_packets += rd32(hw, NGBE_DMARXPKT); hw_stats->tx_packets += rd32(hw, NGBE_DMATXPKT); @@ -1413,7 +1413,7 @@ ngbe_read_stats_registers(struct ngbe_hw *hw, rd64(hw, NGBE_MACTX1024TOMAXL); hw_stats->rx_undersize_errors += rd64(hw, NGBE_MACRXERRLENL); - hw_stats->rx_oversize_errors += rd32(hw, NGBE_MACRXOVERSIZE); + hw_stats->rx_oversize_cnt += rd32(hw, NGBE_MACRXOVERSIZE); hw_stats->rx_jabber_errors += rd32(hw, NGBE_MACRXJABBER); /* MNG Stats */ @@ -1512,7 +1512,7 @@ ngbe_dev_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats) hw_stats->rx_mac_short_packet_dropped + hw_stats->rx_length_errors + hw_stats->rx_undersize_errors + - hw_stats->rx_oversize_errors + + hw_stats->rdb_drp_cnt + hw_stats->rx_illegal_byte_errors + hw_stats->rx_error_bytes + hw_stats->rx_fragment_errors; From patchwork Fri Sep 2 03:00:08 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiawen Wu X-Patchwork-Id: 115768 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id AF7C6A0542; Fri, 2 Sep 2022 05:01:31 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B87C942B7B; Fri, 2 Sep 2022 05:01:03 +0200 (CEST) Received: from smtpbg.qq.com (smtpbgeu2.qq.com [18.194.254.142]) by mails.dpdk.org (Postfix) with ESMTP id D3D1D427F4; Fri, 2 Sep 2022 05:01:00 +0200 (CEST) X-QQ-mid: bizesmtp70t1662087657tv66i7q0 Received: from wxdbg.localdomain.com ( [183.129.236.74]) by bizesmtp.qq.com (ESMTP) with id ; Fri, 02 Sep 2022 11:00:56 +0800 (CST) X-QQ-SSF: 01400000000000G0T000000A0000000 X-QQ-FEAT: Vi+pOBAqRtdoGsmo+1b4Jw4WsUJntc0UUppQ1oo4FBB8vbH/FkCm9I45dcAPl Qbgfuy6jScijrO+Ka0oG9HdDLNipcLjKvCKzVQ13HcNoqO5Jqjlnf8bmHPBeIh5wQyQFoCF iC1HpUW3UBw6USckBXNBxNuU1BpSr6lXqQFTyjnQ5T1C+sx00lSKq3WN2OtxWOm362NGT3v ++vuI/rs2hmrC7dYnU8txt8ji+4bRNPna6VTmwZYygbTJ4L5zXSVrpIqT6on+5J3jgzbEZL /g8X6XoS/r0brsYRlcVMZi6Hit0vkkKvWJbGqdHsel2nNd45h5TN+Y/ztlN3LzMtnCZen2A o1r7xhznhYL/9ArVHbqgQhtlWP3T5R3n9sFBqeXoOAv7QNbS288uulS3RqbwnWw5m8r+vkE N3/7rPf4VRo= X-QQ-GoodBg: 2 From: Jiawen Wu To: dev@dpdk.org Cc: Jiawen Wu , stable@dpdk.org Subject: [PATCH 6/9] net/ngbe: remove semaphore between SW/FW Date: Fri, 2 Sep 2022 11:00:08 +0800 Message-Id: <20220902030011.377523-7-jiawenwu@trustnetic.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20220902030011.377523-1-jiawenwu@trustnetic.com> References: <20220902030011.377523-1-jiawenwu@trustnetic.com> MIME-Version: 1.0 X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:trustnetic.com:qybglogicsvr:qybglogicsvr5 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Since firmware does not use the semaphore between software and firmware. Remove useless unilateral semaphore setting. Fixes: f501a195bded ("net/ngbe: initialize and validate EEPROM") Cc: stable@dpdk.org Signed-off-by: Jiawen Wu --- drivers/net/ngbe/base/ngbe_eeprom.c | 32 ----------------------------- 1 file changed, 32 deletions(-) diff --git a/drivers/net/ngbe/base/ngbe_eeprom.c b/drivers/net/ngbe/base/ngbe_eeprom.c index 6375ee9b29..104501fa7a 100644 --- a/drivers/net/ngbe/base/ngbe_eeprom.c +++ b/drivers/net/ngbe/base/ngbe_eeprom.c @@ -105,37 +105,6 @@ s32 ngbe_get_eeprom_semaphore(struct ngbe_hw *hw) status = 0; } - /* Now get the semaphore between SW/FW through the SWESMBI bit */ - if (status == 0) { - for (i = 0; i < timeout; i++) { - /* Set the SW EEPROM semaphore bit to request access */ - wr32m(hw, NGBE_MNGSWSYNC, - NGBE_MNGSWSYNC_REQ, NGBE_MNGSWSYNC_REQ); - - /* - * If we set the bit successfully then we got the - * semaphore. - */ - swsm = rd32(hw, NGBE_MNGSWSYNC); - if (swsm & NGBE_MNGSWSYNC_REQ) - break; - - usec_delay(50); - } - - /* - * Release semaphores and return error if SW EEPROM semaphore - * was not granted because we don't have access to the EEPROM - */ - if (i >= timeout) { - DEBUGOUT("SWESMBI Software EEPROM semaphore not granted."); - ngbe_release_eeprom_semaphore(hw); - status = NGBE_ERR_EEPROM; - } - } else { - DEBUGOUT("Software semaphore SMBI between device drivers not granted."); - } - return status; } @@ -147,7 +116,6 @@ s32 ngbe_get_eeprom_semaphore(struct ngbe_hw *hw) **/ void ngbe_release_eeprom_semaphore(struct ngbe_hw *hw) { - wr32m(hw, NGBE_MNGSWSYNC, NGBE_MNGSWSYNC_REQ, 0); wr32m(hw, NGBE_SWSEM, NGBE_SWSEM_PF, 0); ngbe_flush(hw); } From patchwork Fri Sep 2 03:00:09 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiawen Wu X-Patchwork-Id: 115769 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 1C322A0542; Fri, 2 Sep 2022 05:01:38 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E52AA42B84; Fri, 2 Sep 2022 05:01:06 +0200 (CEST) Received: from smtpbg.qq.com (smtpbguseast1.qq.com [54.204.34.129]) by mails.dpdk.org (Postfix) with ESMTP id C4DEF42B7C; Fri, 2 Sep 2022 05:01:03 +0200 (CEST) X-QQ-mid: bizesmtp70t1662087659txynvalo Received: from wxdbg.localdomain.com ( [183.129.236.74]) by bizesmtp.qq.com (ESMTP) with id ; Fri, 02 Sep 2022 11:00:59 +0800 (CST) X-QQ-SSF: 01400000000000G0T000000A0000000 X-QQ-FEAT: PeTlvEY0Q2Cat7OdCch1AmxgQ83T4D9nCePQqqZL5Ob7KeWej8FnW8fQ9jyyC nG+PRFt4DOL5VEugxzrZsW7GgbBxSPKK5rfUmLVlAvvm8q/ip8srf/Z1jUwpftfj0rKlhYw RoCTbuRPnGjrX0JP6dCmdEegA7Zr3cpY6bohwjnp6OAEi40BnJXVaJvwuUBZS1MWBlAmfHE sASMWkMYd1B/TfAcc8gZ4FPSB+4jK+NqJy025NiIxGjg0ZGMVhyEE7KF5PzBWpliWmJ7AtM +7jn61Axt96Ogex19eJcUvg9DQhk5RDcIctC20tzhdlIOKDB/AJf0CTBiPQwQ3mFUMyeWw5 V/6n8/GKLIC0Yt2BK9py+xmA1CNdmFhqs7UJX1+c4NrKuAegTj8RaImd+JOeaBM7oYMNC++ X-QQ-GoodBg: 2 From: Jiawen Wu To: dev@dpdk.org Cc: Jiawen Wu , stable@dpdk.org Subject: [PATCH 7/9] net/ngbe: fix max frame size Date: Fri, 2 Sep 2022 11:00:09 +0800 Message-Id: <20220902030011.377523-8-jiawenwu@trustnetic.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20220902030011.377523-1-jiawenwu@trustnetic.com> References: <20220902030011.377523-1-jiawenwu@trustnetic.com> MIME-Version: 1.0 X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:trustnetic.com:qybglogicsvr:qybglogicsvr5 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Remain the same max frame size after the device restarts. Fixes: 07baabb6a51a ("net/ngbe: support MTU set") Cc: stable@dpdk.org Signed-off-by: Jiawen Wu --- drivers/net/ngbe/base/ngbe_regs.h | 2 +- drivers/net/ngbe/base/ngbe_type.h | 2 +- drivers/net/ngbe/ngbe_ethdev.c | 10 +++------- 3 files changed, 5 insertions(+), 9 deletions(-) diff --git a/drivers/net/ngbe/base/ngbe_regs.h b/drivers/net/ngbe/base/ngbe_regs.h index 640e385990..c0e79a2ba7 100644 --- a/drivers/net/ngbe/base/ngbe_regs.h +++ b/drivers/net/ngbe/base/ngbe_regs.h @@ -525,7 +525,7 @@ enum ngbe_5tuple_protocol { #define NGBE_PSRCTL_LBENA MS(18, 0x1) #define NGBE_FRMSZ 0x015020 #define NGBE_FRMSZ_MAX_MASK MS(0, 0xFFFF) -#define NGBE_FRMSZ_MAX(v) LS(v, 0, 0xFFFF) +#define NGBE_FRMSZ_MAX(v) LS((v) + 4, 0, 0xFFFF) #define NGBE_VLANCTL 0x015088 #define NGBE_VLANCTL_TPID_MASK MS(0, 0xFFFF) #define NGBE_VLANCTL_TPID(v) LS(v, 0, 0xFFFF) diff --git a/drivers/net/ngbe/base/ngbe_type.h b/drivers/net/ngbe/base/ngbe_type.h index 73111f7950..aa5c41146c 100644 --- a/drivers/net/ngbe/base/ngbe_type.h +++ b/drivers/net/ngbe/base/ngbe_type.h @@ -9,7 +9,7 @@ #define NGBE_LINK_UP_TIME 90 /* 9.0 Seconds */ #define NGBE_FRAME_SIZE_MAX (9728) /* Maximum frame size, +FCS */ -#define NGBE_FRAME_SIZE_DFT (1522) /* Default frame size, +FCS */ +#define NGBE_FRAME_SIZE_DFT (1518) /* Default frame size, +FCS */ #define NGBE_NUM_POOL (32) #define NGBE_PBRXSIZE_MAX 0x00080000 /* 512KB Packet Buffer */ #define NGBE_PBTXSIZE_MAX 0x00005000 /* 20KB Packet Buffer */ diff --git a/drivers/net/ngbe/ngbe_ethdev.c b/drivers/net/ngbe/ngbe_ethdev.c index df32bf64ff..1090ba9a11 100644 --- a/drivers/net/ngbe/ngbe_ethdev.c +++ b/drivers/net/ngbe/ngbe_ethdev.c @@ -2473,7 +2473,7 @@ static int ngbe_dev_mtu_set(struct rte_eth_dev *dev, uint16_t mtu) { struct ngbe_hw *hw = ngbe_dev_hw(dev); - uint32_t frame_size = mtu + RTE_ETHER_HDR_LEN + RTE_ETHER_CRC_LEN + 4; + uint32_t frame_size = mtu + RTE_ETHER_HDR_LEN + RTE_ETHER_CRC_LEN; struct rte_eth_dev_data *dev_data = dev->data; /* If device is started, refuse mtu that requires the support of @@ -2486,12 +2486,8 @@ ngbe_dev_mtu_set(struct rte_eth_dev *dev, uint16_t mtu) return -EINVAL; } - if (hw->mode) - wr32m(hw, NGBE_FRMSZ, NGBE_FRMSZ_MAX_MASK, - NGBE_FRAME_SIZE_MAX); - else - wr32m(hw, NGBE_FRMSZ, NGBE_FRMSZ_MAX_MASK, - NGBE_FRMSZ_MAX(frame_size)); + wr32m(hw, NGBE_FRMSZ, NGBE_FRMSZ_MAX_MASK, + NGBE_FRMSZ_MAX(frame_size)); return 0; } From patchwork Fri Sep 2 03:00:10 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiawen Wu X-Patchwork-Id: 115770 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 95774A0542; Fri, 2 Sep 2022 05:01:43 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B7BF842B8B; Fri, 2 Sep 2022 05:01:07 +0200 (CEST) Received: from smtpbg.qq.com (smtpbg150.qq.com [18.132.163.193]) by mails.dpdk.org (Postfix) with ESMTP id 82D9342802; Fri, 2 Sep 2022 05:01:05 +0200 (CEST) X-QQ-mid: bizesmtp70t1662087662t04doywv Received: from wxdbg.localdomain.com ( [183.129.236.74]) by bizesmtp.qq.com (ESMTP) with id ; Fri, 02 Sep 2022 11:01:01 +0800 (CST) X-QQ-SSF: 01400000000000G0T000000A0000000 X-QQ-FEAT: LL8Fg7akT3SvMMYX1bVCX2bfEoaGXcyXlIf3zhMbV5TJkYPsqfHto6GsSD19V xoG1f2VlNi4MurA7PnuxVQmVSOcegOmdtADvVg130m6NdlFuNqc6X0HEVt4pFLi/x1cIFfz sUWG2y/vdK9709wIk8JSy9se9tCV2tVB+AgHSJCIn6Rbh9LfySMEjcE5HjaiXAghTDkSG5e 18VLw/PYmqvPs0t/NnyzjLFr3fg7ooQe1L1SefDjAy091IUZAYSGXe4f3zuU+gVr72asPRj iwTtISuL+HmUiMRzQY2IB8fzPGKretWKXauNanBdFYPkBmqkAuZFqp/CWzmX6smFWXpRNxI 3pICuMaLsRNYjmDwsbv6e0uNSag/qVoxl65wp9s33rtT1h1YL+jK0uPENCJZXppkFV8lgcC X-QQ-GoodBg: 2 From: Jiawen Wu To: dev@dpdk.org Cc: Jiawen Wu , stable@dpdk.org Subject: [PATCH 8/9] net/ngbe: fix YT PHY mixed mode occasionally failing link Date: Fri, 2 Sep 2022 11:00:10 +0800 Message-Id: <20220902030011.377523-9-jiawenwu@trustnetic.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20220902030011.377523-1-jiawenwu@trustnetic.com> References: <20220902030011.377523-1-jiawenwu@trustnetic.com> MIME-Version: 1.0 X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:trustnetic.com:qybglogicsvr:qybglogicsvr5 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Add to read link status register of UTP mode, to ensure link status of mixed mode, for YT PHY. Fixes: 1c44384fce76 ("net/ngbe: support custom PHY interfaces") Cc: stable@dpdk.org Signed-off-by: Jiawen Wu --- drivers/net/ngbe/base/ngbe_phy_yt.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/net/ngbe/base/ngbe_phy_yt.c b/drivers/net/ngbe/base/ngbe_phy_yt.c index 562a0dede5..c88946f7c3 100644 --- a/drivers/net/ngbe/base/ngbe_phy_yt.c +++ b/drivers/net/ngbe/base/ngbe_phy_yt.c @@ -463,7 +463,16 @@ s32 ngbe_check_phy_link_yt(struct ngbe_hw *hw, if (phy_link) { *link_up = true; + } else { + status = ngbe_read_phy_reg_mdi(hw, YT_SPST, 0, &phy_data); + phy_link = phy_data & YT_SPST_LINK; + phy_speed = phy_data & YT_SPST_SPEED_MASK; + + if (phy_link) + *link_up = true; + } + if (*link_up) { if (phy_speed == YT_SPST_SPEED_1000M) *speed = NGBE_LINK_SPEED_1GB_FULL; else if (phy_speed == YT_SPST_SPEED_100M) From patchwork Fri Sep 2 03:00:11 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiawen Wu X-Patchwork-Id: 115771 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 56731A0542; Fri, 2 Sep 2022 05:01:50 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id BD5E542B6F; Fri, 2 Sep 2022 05:01:10 +0200 (CEST) Received: from smtpbg.qq.com (smtpbgjp3.qq.com [54.92.39.34]) by mails.dpdk.org (Postfix) with ESMTP id A658542B79 for ; Fri, 2 Sep 2022 05:01:08 +0200 (CEST) X-QQ-mid: bizesmtp70t1662087665tle42ch8 Received: from wxdbg.localdomain.com ( [183.129.236.74]) by bizesmtp.qq.com (ESMTP) with id ; Fri, 02 Sep 2022 11:01:04 +0800 (CST) X-QQ-SSF: 01400000000000G0T000000A0000000 X-QQ-FEAT: t7ADaf3T+WRR9ZxkIHN5xBDu91ekpXhGs3Rp2JzYj6+jlN8v4/3ug5who/HCJ cGi1pUNC670Vns+f3Br4Wl9+vbeXQfBnooqE+kAOkV5WQXgsesITOF2QgYTYqfDAL4cYSys 7GN1dS3a+m+4WWg2i2jFpG2epmwd7vkvqHNv8qB1ZuEpFG4GzgKLZpIvtjkg88+s/nBKP+c HrGNKuvuiRKVx5Hrp3x6MdSfAVFKoR47KkWq8bex2rKD+pAuU0lZqCeMnVW3uN38MsrD1sA HD+ddqNIjHMAGYoyJPbDKKLTfdcGr5XVLg2iV1ZDAhRxSEBWInqvYECjsgK2sUidJoKy4Kj ZD1Y/F3zkBLKlgHqZ1BF/ykoa9QtAMWSqS7oQFGHPGZdF5S7K14GdnnNzFxT+0IUTzF8SUR X-QQ-GoodBg: 2 From: Jiawen Wu To: dev@dpdk.org Cc: Jiawen Wu Subject: [PATCH 9/9] net/ngbe: support to set link down/up Date: Fri, 2 Sep 2022 11:00:11 +0800 Message-Id: <20220902030011.377523-10-jiawenwu@trustnetic.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20220902030011.377523-1-jiawenwu@trustnetic.com> References: <20220902030011.377523-1-jiawenwu@trustnetic.com> MIME-Version: 1.0 X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:trustnetic.com:qybglogicsvr:qybglogicsvr5 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Add support to set device link down/up. Signed-off-by: Jiawen Wu --- doc/guides/rel_notes/release_22_11.rst | 4 ++++ drivers/net/ngbe/base/ngbe_phy.c | 1 + drivers/net/ngbe/base/ngbe_phy_rtl.c | 13 ++++++++++++ drivers/net/ngbe/base/ngbe_phy_rtl.h | 2 ++ drivers/net/ngbe/ngbe_ethdev.c | 28 ++++++++++++++++++++++++++ 5 files changed, 48 insertions(+) diff --git a/doc/guides/rel_notes/release_22_11.rst b/doc/guides/rel_notes/release_22_11.rst index 8c021cf050..843501c7c2 100644 --- a/doc/guides/rel_notes/release_22_11.rst +++ b/doc/guides/rel_notes/release_22_11.rst @@ -84,6 +84,10 @@ API Changes Also, make sure to start the actual text at the margin. ======================================================= +* **Updated Wangxun ngbe driver.** + + * Added support to set device link down/up. + ABI Changes ----------- diff --git a/drivers/net/ngbe/base/ngbe_phy.c b/drivers/net/ngbe/base/ngbe_phy.c index 06562b594f..acff7bfebf 100644 --- a/drivers/net/ngbe/base/ngbe_phy.c +++ b/drivers/net/ngbe/base/ngbe_phy.c @@ -400,6 +400,7 @@ s32 ngbe_init_phy(struct ngbe_hw *hw) hw->phy.init_hw = ngbe_init_phy_rtl; hw->phy.check_link = ngbe_check_phy_link_rtl; hw->phy.setup_link = ngbe_setup_phy_link_rtl; + hw->phy.set_phy_power = ngbe_set_phy_power_rtl; hw->phy.get_adv_pause = ngbe_get_phy_advertised_pause_rtl; hw->phy.get_lp_adv_pause = ngbe_get_phy_lp_advertised_pause_rtl; hw->phy.set_pause_adv = ngbe_set_phy_pause_adv_rtl; diff --git a/drivers/net/ngbe/base/ngbe_phy_rtl.c b/drivers/net/ngbe/base/ngbe_phy_rtl.c index 33c5e79e87..9b323624ec 100644 --- a/drivers/net/ngbe/base/ngbe_phy_rtl.c +++ b/drivers/net/ngbe/base/ngbe_phy_rtl.c @@ -393,3 +393,16 @@ s32 ngbe_check_phy_link_rtl(struct ngbe_hw *hw, u32 *speed, bool *link_up) return status; } +s32 ngbe_set_phy_power_rtl(struct ngbe_hw *hw, bool on) +{ + u16 value = 0; + + hw->phy.read_reg(hw, RTL_BMCR, 0, &value); + if (on) + value &= ~RTL_BMCR_PWDN; + else + value |= RTL_BMCR_PWDN; + hw->phy.write_reg(hw, RTL_BMCR, 0, value); + + return 0; +} diff --git a/drivers/net/ngbe/base/ngbe_phy_rtl.h b/drivers/net/ngbe/base/ngbe_phy_rtl.h index d717a1915c..b2fbc4f74d 100644 --- a/drivers/net/ngbe/base/ngbe_phy_rtl.h +++ b/drivers/net/ngbe/base/ngbe_phy_rtl.h @@ -15,6 +15,7 @@ #define RTL_BMCR_RESET MS16(15, 0x1) #define RTL_BMCR_SPEED_SELECT0 MS16(13, 0x1) #define RTL_BMCR_ANE MS16(12, 0x1) +#define RTL_BMCR_PWDN MS16(11, 0x1) #define RTL_BMCR_RESTART_AN MS16(9, 0x1) #define RTL_BMCR_DUPLEX MS16(8, 0x1) #define RTL_BMCR_SPEED_SELECT1 MS16(6, 0x1) @@ -88,5 +89,6 @@ s32 ngbe_get_phy_lp_advertised_pause_rtl(struct ngbe_hw *hw, u8 *pause_bit); s32 ngbe_set_phy_pause_adv_rtl(struct ngbe_hw *hw, u16 pause_bit); s32 ngbe_check_phy_link_rtl(struct ngbe_hw *hw, u32 *speed, bool *link_up); +s32 ngbe_set_phy_power_rtl(struct ngbe_hw *hw, bool on); #endif /* _NGBE_PHY_RTL_H_ */ diff --git a/drivers/net/ngbe/ngbe_ethdev.c b/drivers/net/ngbe/ngbe_ethdev.c index 1090ba9a11..afdb3ad41f 100644 --- a/drivers/net/ngbe/ngbe_ethdev.c +++ b/drivers/net/ngbe/ngbe_ethdev.c @@ -1219,6 +1219,32 @@ ngbe_dev_stop(struct rte_eth_dev *dev) return 0; } +/* + * Set device link up: power on. + */ +static int +ngbe_dev_set_link_up(struct rte_eth_dev *dev) +{ + struct ngbe_hw *hw = ngbe_dev_hw(dev); + + hw->phy.set_phy_power(hw, true); + + return 0; +} + +/* + * Set device link down: power off. + */ +static int +ngbe_dev_set_link_down(struct rte_eth_dev *dev) +{ + struct ngbe_hw *hw = ngbe_dev_hw(dev); + + hw->phy.set_phy_power(hw, false); + + return 0; +} + /* * Reset and stop device. */ @@ -3030,6 +3056,8 @@ static const struct eth_dev_ops ngbe_eth_dev_ops = { .dev_infos_get = ngbe_dev_info_get, .dev_start = ngbe_dev_start, .dev_stop = ngbe_dev_stop, + .dev_set_link_up = ngbe_dev_set_link_up, + .dev_set_link_down = ngbe_dev_set_link_down, .dev_close = ngbe_dev_close, .dev_reset = ngbe_dev_reset, .promiscuous_enable = ngbe_dev_promiscuous_enable,