* [PATCH 0/9] Wangxun fixes and supports
@ 2022-09-02 3:00 Jiawen Wu
2022-09-02 3:00 ` [PATCH 1/9] net/txgbe: fix IPv6 rule in flow director Jiawen Wu
` (10 more replies)
0 siblings, 11 replies; 13+ messages in thread
From: Jiawen Wu @ 2022-09-02 3:00 UTC (permalink / raw)
To: dev; +Cc: Jiawen Wu
Fix some bugs, remove unused logic, support new features.
Jiawen Wu (9):
net/txgbe: fix IPv6 rule in flow director
net/txgbe: fix OEM customized LED
net/txgbe: remove semaphore between SW/FW
net/txgbe: rename some extended statistic
net/ngbe: rename some extended statistic
net/ngbe: remove semaphore between SW/FW
net/ngbe: fix max frame size
net/ngbe: fix YT PHY mixed mode occasionally failing link
net/ngbe: support to set link down/up
doc/guides/rel_notes/release_22_11.rst | 4 +++
drivers/net/ngbe/base/ngbe_eeprom.c | 32 -----------------
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/base/ngbe_phy_yt.c | 9 +++++
drivers/net/ngbe/base/ngbe_regs.h | 2 +-
drivers/net/ngbe/base/ngbe_type.h | 7 ++--
drivers/net/ngbe/ngbe_ethdev.c | 48 +++++++++++++++++++-------
drivers/net/txgbe/base/txgbe_eeprom.c | 32 -----------------
drivers/net/txgbe/base/txgbe_mng.c | 4 +--
drivers/net/txgbe/base/txgbe_type.h | 4 +--
drivers/net/txgbe/txgbe_ethdev.c | 11 +++---
drivers/net/txgbe/txgbe_flow.c | 33 ++++++++++++++----
14 files changed, 105 insertions(+), 97 deletions(-)
--
2.27.0
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 1/9] net/txgbe: fix IPv6 rule in flow director
2022-09-02 3:00 [PATCH 0/9] Wangxun fixes and supports Jiawen Wu
@ 2022-09-02 3:00 ` Jiawen Wu
2022-09-02 3:00 ` [PATCH 2/9] net/txgbe: fix OEM customized LED Jiawen Wu
` (9 subsequent siblings)
10 siblings, 0 replies; 13+ messages in thread
From: Jiawen Wu @ 2022-09-02 3:00 UTC (permalink / raw)
To: dev; +Cc: Jiawen Wu, stable
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 <jiawenwu@trustnetic.com>
---
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)
--
2.27.0
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 2/9] net/txgbe: fix OEM customized LED
2022-09-02 3:00 [PATCH 0/9] Wangxun fixes and supports Jiawen Wu
2022-09-02 3:00 ` [PATCH 1/9] net/txgbe: fix IPv6 rule in flow director Jiawen Wu
@ 2022-09-02 3:00 ` Jiawen Wu
2022-09-02 3:00 ` [PATCH 3/9] net/txgbe: remove semaphore between SW/FW Jiawen Wu
` (8 subsequent siblings)
10 siblings, 0 replies; 13+ messages in thread
From: Jiawen Wu @ 2022-09-02 3:00 UTC (permalink / raw)
To: dev; +Cc: Jiawen Wu, stable
Fix to read the correct mailbox register.
Fixes: f45834fd5c6a ("net/txgbe: support OEM customized LED")
Cc: stable@dpdk.org
Signed-off-by: Jiawen Wu <jiawenwu@trustnetic.com>
---
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
--
2.27.0
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 3/9] net/txgbe: remove semaphore between SW/FW
2022-09-02 3:00 [PATCH 0/9] Wangxun fixes and supports Jiawen Wu
2022-09-02 3:00 ` [PATCH 1/9] net/txgbe: fix IPv6 rule in flow director Jiawen Wu
2022-09-02 3:00 ` [PATCH 2/9] net/txgbe: fix OEM customized LED Jiawen Wu
@ 2022-09-02 3:00 ` Jiawen Wu
2022-09-02 3:00 ` [PATCH 4/9] net/txgbe: rename some extended statistic Jiawen Wu
` (7 subsequent siblings)
10 siblings, 0 replies; 13+ messages in thread
From: Jiawen Wu @ 2022-09-02 3:00 UTC (permalink / raw)
To: dev; +Cc: Jiawen Wu, stable
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 <jiawenwu@trustnetic.com>
---
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);
}
--
2.27.0
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 4/9] net/txgbe: rename some extended statistic
2022-09-02 3:00 [PATCH 0/9] Wangxun fixes and supports Jiawen Wu
` (2 preceding siblings ...)
2022-09-02 3:00 ` [PATCH 3/9] net/txgbe: remove semaphore between SW/FW Jiawen Wu
@ 2022-09-02 3:00 ` Jiawen Wu
2022-09-02 3:00 ` [PATCH 5/9] net/ngbe: " Jiawen Wu
` (6 subsequent siblings)
10 siblings, 0 replies; 13+ messages in thread
From: Jiawen Wu @ 2022-09-02 3:00 UTC (permalink / raw)
To: dev; +Cc: Jiawen Wu, stable
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 <jiawenwu@trustnetic.com>
---
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 +
--
2.27.0
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 5/9] net/ngbe: rename some extended statistic
2022-09-02 3:00 [PATCH 0/9] Wangxun fixes and supports Jiawen Wu
` (3 preceding siblings ...)
2022-09-02 3:00 ` [PATCH 4/9] net/txgbe: rename some extended statistic Jiawen Wu
@ 2022-09-02 3:00 ` Jiawen Wu
2022-09-02 3:00 ` [PATCH 6/9] net/ngbe: remove semaphore between SW/FW Jiawen Wu
` (5 subsequent siblings)
10 siblings, 0 replies; 13+ messages in thread
From: Jiawen Wu @ 2022-09-02 3:00 UTC (permalink / raw)
To: dev; +Cc: Jiawen Wu, stable
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 <jiawenwu@trustnetic.com>
---
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;
--
2.27.0
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 6/9] net/ngbe: remove semaphore between SW/FW
2022-09-02 3:00 [PATCH 0/9] Wangxun fixes and supports Jiawen Wu
` (4 preceding siblings ...)
2022-09-02 3:00 ` [PATCH 5/9] net/ngbe: " Jiawen Wu
@ 2022-09-02 3:00 ` Jiawen Wu
2022-09-02 3:00 ` [PATCH 7/9] net/ngbe: fix max frame size Jiawen Wu
` (4 subsequent siblings)
10 siblings, 0 replies; 13+ messages in thread
From: Jiawen Wu @ 2022-09-02 3:00 UTC (permalink / raw)
To: dev; +Cc: Jiawen Wu, stable
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 <jiawenwu@trustnetic.com>
---
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);
}
--
2.27.0
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 7/9] net/ngbe: fix max frame size
2022-09-02 3:00 [PATCH 0/9] Wangxun fixes and supports Jiawen Wu
` (5 preceding siblings ...)
2022-09-02 3:00 ` [PATCH 6/9] net/ngbe: remove semaphore between SW/FW Jiawen Wu
@ 2022-09-02 3:00 ` Jiawen Wu
2022-09-02 3:00 ` [PATCH 8/9] net/ngbe: fix YT PHY mixed mode occasionally failing link Jiawen Wu
` (3 subsequent siblings)
10 siblings, 0 replies; 13+ messages in thread
From: Jiawen Wu @ 2022-09-02 3:00 UTC (permalink / raw)
To: dev; +Cc: Jiawen Wu, stable
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 <jiawenwu@trustnetic.com>
---
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;
}
--
2.27.0
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 8/9] net/ngbe: fix YT PHY mixed mode occasionally failing link
2022-09-02 3:00 [PATCH 0/9] Wangxun fixes and supports Jiawen Wu
` (6 preceding siblings ...)
2022-09-02 3:00 ` [PATCH 7/9] net/ngbe: fix max frame size Jiawen Wu
@ 2022-09-02 3:00 ` Jiawen Wu
2022-09-02 3:00 ` [PATCH 9/9] net/ngbe: support to set link down/up Jiawen Wu
` (2 subsequent siblings)
10 siblings, 0 replies; 13+ messages in thread
From: Jiawen Wu @ 2022-09-02 3:00 UTC (permalink / raw)
To: dev; +Cc: Jiawen Wu, stable
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 <jiawenwu@trustnetic.com>
---
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)
--
2.27.0
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 9/9] net/ngbe: support to set link down/up
2022-09-02 3:00 [PATCH 0/9] Wangxun fixes and supports Jiawen Wu
` (7 preceding siblings ...)
2022-09-02 3:00 ` [PATCH 8/9] net/ngbe: fix YT PHY mixed mode occasionally failing link Jiawen Wu
@ 2022-09-02 3:00 ` Jiawen Wu
2022-09-21 11:46 ` Ferruh Yigit
2022-09-13 1:55 ` [PATCH 0/9] Wangxun fixes and supports Jiawen Wu
2022-09-21 11:48 ` Ferruh Yigit
10 siblings, 1 reply; 13+ messages in thread
From: Jiawen Wu @ 2022-09-02 3:00 UTC (permalink / raw)
To: dev; +Cc: Jiawen Wu
Add support to set device link down/up.
Signed-off-by: Jiawen Wu <jiawenwu@trustnetic.com>
---
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,
--
2.27.0
^ permalink raw reply [flat|nested] 13+ messages in thread
* RE: [PATCH 0/9] Wangxun fixes and supports
2022-09-02 3:00 [PATCH 0/9] Wangxun fixes and supports Jiawen Wu
` (8 preceding siblings ...)
2022-09-02 3:00 ` [PATCH 9/9] net/ngbe: support to set link down/up Jiawen Wu
@ 2022-09-13 1:55 ` Jiawen Wu
2022-09-21 11:48 ` Ferruh Yigit
10 siblings, 0 replies; 13+ messages in thread
From: Jiawen Wu @ 2022-09-13 1:55 UTC (permalink / raw)
To: dev, 'Ferruh Yigit'
Hi,
> -----Original Message-----
> From: Jiawen Wu <jiawenwu@trustnetic.com>
> Sent: Friday, September 2, 2022 11:00 AM
> To: dev@dpdk.org
> Cc: Jiawen Wu <jiawenwu@trustnetic.com>
> Subject: [PATCH 0/9] Wangxun fixes and supports
>
> Fix some bugs, remove unused logic, support new features.
>
> Jiawen Wu (9):
> net/txgbe: fix IPv6 rule in flow director
> net/txgbe: fix OEM customized LED
> net/txgbe: remove semaphore between SW/FW
> net/txgbe: rename some extended statistic
> net/ngbe: rename some extended statistic
> net/ngbe: remove semaphore between SW/FW
> net/ngbe: fix max frame size
> net/ngbe: fix YT PHY mixed mode occasionally failing link
> net/ngbe: support to set link down/up
>
> doc/guides/rel_notes/release_22_11.rst | 4 +++
> drivers/net/ngbe/base/ngbe_eeprom.c | 32 -----------------
> 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/base/ngbe_phy_yt.c | 9 +++++
> drivers/net/ngbe/base/ngbe_regs.h | 2 +-
> drivers/net/ngbe/base/ngbe_type.h | 7 ++--
> drivers/net/ngbe/ngbe_ethdev.c | 48 +++++++++++++++++++-------
> drivers/net/txgbe/base/txgbe_eeprom.c | 32 -----------------
> drivers/net/txgbe/base/txgbe_mng.c | 4 +--
> drivers/net/txgbe/base/txgbe_type.h | 4 +--
> drivers/net/txgbe/txgbe_ethdev.c | 11 +++---
> drivers/net/txgbe/txgbe_flow.c | 33 ++++++++++++++----
> 14 files changed, 105 insertions(+), 97 deletions(-)
>
> --
> 2.27.0
>
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 9/9] net/ngbe: support to set link down/up
2022-09-02 3:00 ` [PATCH 9/9] net/ngbe: support to set link down/up Jiawen Wu
@ 2022-09-21 11:46 ` Ferruh Yigit
0 siblings, 0 replies; 13+ messages in thread
From: Ferruh Yigit @ 2022-09-21 11:46 UTC (permalink / raw)
To: Jiawen Wu; +Cc: dev
On 9/2/2022 4:00 AM, Jiawen Wu wrote:
> Add support to set device link down/up.
>
> Signed-off-by: Jiawen Wu<jiawenwu@trustnetic.com>
> ---
> 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.
> +
This update is in "API Changes" section of the document, which is wrong.
I will move it to the "New Features" section while merging.
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 0/9] Wangxun fixes and supports
2022-09-02 3:00 [PATCH 0/9] Wangxun fixes and supports Jiawen Wu
` (9 preceding siblings ...)
2022-09-13 1:55 ` [PATCH 0/9] Wangxun fixes and supports Jiawen Wu
@ 2022-09-21 11:48 ` Ferruh Yigit
10 siblings, 0 replies; 13+ messages in thread
From: Ferruh Yigit @ 2022-09-21 11:48 UTC (permalink / raw)
To: Jiawen Wu; +Cc: dev
On 9/2/2022 4:00 AM, Jiawen Wu wrote:
> Fix some bugs, remove unused logic, support new features.
>
> Jiawen Wu (9):
> net/txgbe: fix IPv6 rule in flow director
> net/txgbe: fix OEM customized LED
> net/txgbe: remove semaphore between SW/FW
> net/txgbe: rename some extended statistic
> net/ngbe: rename some extended statistic
> net/ngbe: remove semaphore between SW/FW
> net/ngbe: fix max frame size
> net/ngbe: fix YT PHY mixed mode occasionally failing link
> net/ngbe: support to set link down/up
>
Series applied to dpdk-next-net/main, thanks.
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2022-09-21 11:48 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-09-02 3:00 [PATCH 0/9] Wangxun fixes and supports Jiawen Wu
2022-09-02 3:00 ` [PATCH 1/9] net/txgbe: fix IPv6 rule in flow director Jiawen Wu
2022-09-02 3:00 ` [PATCH 2/9] net/txgbe: fix OEM customized LED Jiawen Wu
2022-09-02 3:00 ` [PATCH 3/9] net/txgbe: remove semaphore between SW/FW Jiawen Wu
2022-09-02 3:00 ` [PATCH 4/9] net/txgbe: rename some extended statistic Jiawen Wu
2022-09-02 3:00 ` [PATCH 5/9] net/ngbe: " Jiawen Wu
2022-09-02 3:00 ` [PATCH 6/9] net/ngbe: remove semaphore between SW/FW Jiawen Wu
2022-09-02 3:00 ` [PATCH 7/9] net/ngbe: fix max frame size Jiawen Wu
2022-09-02 3:00 ` [PATCH 8/9] net/ngbe: fix YT PHY mixed mode occasionally failing link Jiawen Wu
2022-09-02 3:00 ` [PATCH 9/9] net/ngbe: support to set link down/up Jiawen Wu
2022-09-21 11:46 ` Ferruh Yigit
2022-09-13 1:55 ` [PATCH 0/9] Wangxun fixes and supports Jiawen Wu
2022-09-21 11:48 ` Ferruh Yigit
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).