* [PATCH 1/9] net/txgbe: fix IPv6 rule in flow director
[not found] <20220902030011.377523-1-jiawenwu@trustnetic.com>
@ 2022-09-02 3:00 ` Jiawen Wu
2022-09-02 3:00 ` [PATCH 2/9] net/txgbe: fix OEM customized LED Jiawen Wu
` (6 subsequent siblings)
7 siblings, 0 replies; 8+ 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] 8+ messages in thread
* [PATCH 2/9] net/txgbe: fix OEM customized LED
[not found] <20220902030011.377523-1-jiawenwu@trustnetic.com>
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
` (5 subsequent siblings)
7 siblings, 0 replies; 8+ 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] 8+ messages in thread
* [PATCH 3/9] net/txgbe: remove semaphore between SW/FW
[not found] <20220902030011.377523-1-jiawenwu@trustnetic.com>
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
` (4 subsequent siblings)
7 siblings, 0 replies; 8+ 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] 8+ messages in thread
* [PATCH 4/9] net/txgbe: rename some extended statistic
[not found] <20220902030011.377523-1-jiawenwu@trustnetic.com>
` (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
` (3 subsequent siblings)
7 siblings, 0 replies; 8+ 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] 8+ messages in thread
* [PATCH 5/9] net/ngbe: rename some extended statistic
[not found] <20220902030011.377523-1-jiawenwu@trustnetic.com>
` (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
` (2 subsequent siblings)
7 siblings, 0 replies; 8+ 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] 8+ messages in thread
* [PATCH 6/9] net/ngbe: remove semaphore between SW/FW
[not found] <20220902030011.377523-1-jiawenwu@trustnetic.com>
` (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
2022-09-02 3:00 ` [PATCH 8/9] net/ngbe: fix YT PHY mixed mode occasionally failing link Jiawen Wu
7 siblings, 0 replies; 8+ 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] 8+ messages in thread
* [PATCH 7/9] net/ngbe: fix max frame size
[not found] <20220902030011.377523-1-jiawenwu@trustnetic.com>
` (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
7 siblings, 0 replies; 8+ 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] 8+ messages in thread
* [PATCH 8/9] net/ngbe: fix YT PHY mixed mode occasionally failing link
[not found] <20220902030011.377523-1-jiawenwu@trustnetic.com>
` (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
7 siblings, 0 replies; 8+ 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] 8+ messages in thread
end of thread, other threads:[~2022-09-02 3:01 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <20220902030011.377523-1-jiawenwu@trustnetic.com>
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
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).