* [PATCH net-next 1/3] net: sb1250-mac: Add ethtool link settings support
2026-11-05 19:34 [PATCH net-next 0/3]: net: sb1250-mac: ethtool link updates Florian Fainelli
@ 2026-11-05 19:34 ` Florian Fainelli
2026-11-05 23:13 ` Maciej W. Rozycki
2026-11-05 19:34 ` [PATCH net-next 2/3] net: sb1250-mac: Advertise and honor RX checksum offload Florian Fainelli
` (2 subsequent siblings)
3 siblings, 1 reply; 8+ messages in thread
From: Florian Fainelli @ 2026-11-05 19:34 UTC (permalink / raw)
To: netdev
Cc: Florian Fainelli, Andrew Lunn, David S. Miller, Eric Dumazet,
Jakub Kicinski, Paolo Abeni, open list, macro
The driver connects to its PHY through phylib, but does not provide
ethtool operations. As a result, ethtool cannot report or configure the
link settings.
Use the phylib get_link_ksettings and set_link_ksettings helpers, and
provide ethtool_op_get_link for carrier reporting. The helpers return
-ENODEV when the PHY is not attached, as the driver attaches it when
the interface is opened and disconnects it when the interface is closed.
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
---
drivers/net/ethernet/broadcom/sb1250-mac.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/drivers/net/ethernet/broadcom/sb1250-mac.c b/drivers/net/ethernet/broadcom/sb1250-mac.c
index c839dd9804d3..1843b52e96f5 100644
--- a/drivers/net/ethernet/broadcom/sb1250-mac.c
+++ b/drivers/net/ethernet/broadcom/sb1250-mac.c
@@ -2128,6 +2128,12 @@ static void sbmac_setmulti(struct sbmac_softc *sc)
}
}
+static const struct ethtool_ops sbmac_ethtool_ops = {
+ .get_link = ethtool_op_get_link,
+ .get_link_ksettings = phy_ethtool_get_link_ksettings,
+ .set_link_ksettings = phy_ethtool_set_link_ksettings,
+};
+
static const struct net_device_ops sbmac_netdev_ops = {
.ndo_open = sbmac_open,
.ndo_stop = sbmac_close,
@@ -2197,6 +2203,7 @@ static int sbmac_init(struct platform_device *pldev, long long base)
spin_lock_init(&(sc->sbm_lock));
dev->netdev_ops = &sbmac_netdev_ops;
+ dev->ethtool_ops = &sbmac_ethtool_ops;
dev->watchdog_timeo = TX_TIMEOUT;
dev->min_mtu = 0;
dev->max_mtu = ENET_PACKET_SIZE;
--
2.53.0
^ permalink raw reply [flat|nested] 8+ messages in thread* Re: [PATCH net-next 1/3] net: sb1250-mac: Add ethtool link settings support
2026-11-05 19:34 ` [PATCH net-next 1/3] net: sb1250-mac: Add ethtool link settings support Florian Fainelli
@ 2026-11-05 23:13 ` Maciej W. Rozycki
0 siblings, 0 replies; 8+ messages in thread
From: Maciej W. Rozycki @ 2026-11-05 23:13 UTC (permalink / raw)
To: Florian Fainelli
Cc: netdev, Andrew Lunn, David S. Miller, Eric Dumazet,
Jakub Kicinski, Paolo Abeni, open list
On Thu, 5 Nov 2026, Florian Fainelli wrote:
> Use the phylib get_link_ksettings and set_link_ksettings helpers, and
> provide ethtool_op_get_link for carrier reporting. The helpers return
> -ENODEV when the PHY is not attached, as the driver attaches it when
> the interface is opened and disconnects it when the interface is closed.
Acked-by: Maciej W. Rozycki <macro@orcam.me.uk>
(I should probably list myself as a maintainer for all the SB1250 platform
stuff since I've done most of the updates in the last two decades or so.)
Maciej
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH net-next 2/3] net: sb1250-mac: Advertise and honor RX checksum offload
2026-11-05 19:34 [PATCH net-next 0/3]: net: sb1250-mac: ethtool link updates Florian Fainelli
2026-11-05 19:34 ` [PATCH net-next 1/3] net: sb1250-mac: Add ethtool link settings support Florian Fainelli
@ 2026-11-05 19:34 ` Florian Fainelli
2026-11-05 23:13 ` Maciej W. Rozycki
2026-11-05 19:34 ` [PATCH net-next 3/3] net: sb1250-mac: Add ethtool autonegotiation restart support Florian Fainelli
2026-11-05 23:14 ` [PATCH net-next 0/3]: net: sb1250-mac: ethtool link updates Maciej W. Rozycki
3 siblings, 1 reply; 8+ messages in thread
From: Florian Fainelli @ 2026-11-05 19:34 UTC (permalink / raw)
To: netdev
Cc: Florian Fainelli, Andrew Lunn, David S. Miller, Eric Dumazet,
Jakub Kicinski, Paolo Abeni, open list, macro
The driver already trusts hardware RX checksum status on supported
chip revisions, but does not advertise NETIF_F_RXCSUM. Consequently,
ethtool does not report the offload or allow it to be disabled.
Advertise RX checksum offload in hw_features and enable it by default
when the existing hardware revision check reports support. Test the
active feature bit in the receive path before marking a packet as
CHECKSUM_UNNECESSARY, so disabling RX checksum offload restores software
verification. Hardware can continue computing checksums while their
results are ignored.
BCM1250 pass 1 does not support the offload and retains the existing
software checksum behavior.
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
---
drivers/net/ethernet/broadcom/sb1250-mac.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/broadcom/sb1250-mac.c b/drivers/net/ethernet/broadcom/sb1250-mac.c
index 1843b52e96f5..546415d3134c 100644
--- a/drivers/net/ethernet/broadcom/sb1250-mac.c
+++ b/drivers/net/ethernet/broadcom/sb1250-mac.c
@@ -1142,8 +1142,8 @@ static int sbdma_rx_process(struct sbmac_softc *sc, struct sbmacdma *d,
* the kernel
*/
sb->protocol = eth_type_trans(sb,d->sbdma_eth->sbm_dev);
- /* Check hw IPv4/TCP checksum if supported */
- if (sc->rx_hw_checksum == ENABLE) {
+ /* Honor the RX checksum offload feature setting. */
+ if (dev->features & NETIF_F_RXCSUM) {
if (!((dsc->dscr_a) & M_DMA_ETHRX_BADIP4CS) &&
!((dsc->dscr_a) & M_DMA_ETHRX_BADTCPCS)) {
sb->ip_summed = CHECKSUM_UNNECESSARY;
@@ -2214,6 +2214,10 @@ static int sbmac_init(struct platform_device *pldev, long long base)
/* This is needed for PASS2 for Rx H/W checksum feature */
sbmac_set_iphdr_offset(sc);
+ if (sc->rx_hw_checksum == ENABLE) {
+ dev->hw_features |= NETIF_F_RXCSUM;
+ dev->features |= NETIF_F_RXCSUM;
+ }
sc->mii_bus = mdiobus_alloc();
if (sc->mii_bus == NULL) {
--
2.53.0
^ permalink raw reply [flat|nested] 8+ messages in thread* Re: [PATCH net-next 2/3] net: sb1250-mac: Advertise and honor RX checksum offload
2026-11-05 19:34 ` [PATCH net-next 2/3] net: sb1250-mac: Advertise and honor RX checksum offload Florian Fainelli
@ 2026-11-05 23:13 ` Maciej W. Rozycki
0 siblings, 0 replies; 8+ messages in thread
From: Maciej W. Rozycki @ 2026-11-05 23:13 UTC (permalink / raw)
To: Florian Fainelli
Cc: netdev, Andrew Lunn, David S. Miller, Eric Dumazet,
Jakub Kicinski, Paolo Abeni, open list
On Thu, 5 Nov 2026, Florian Fainelli wrote:
> Advertise RX checksum offload in hw_features and enable it by default
> when the existing hardware revision check reports support. Test the
> active feature bit in the receive path before marking a packet as
> CHECKSUM_UNNECESSARY, so disabling RX checksum offload restores software
> verification. Hardware can continue computing checksums while their
> results are ignored.
Acked-by: Maciej W. Rozycki <macro@orcam.me.uk>
Maciej
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH net-next 3/3] net: sb1250-mac: Add ethtool autonegotiation restart support
2026-11-05 19:34 [PATCH net-next 0/3]: net: sb1250-mac: ethtool link updates Florian Fainelli
2026-11-05 19:34 ` [PATCH net-next 1/3] net: sb1250-mac: Add ethtool link settings support Florian Fainelli
2026-11-05 19:34 ` [PATCH net-next 2/3] net: sb1250-mac: Advertise and honor RX checksum offload Florian Fainelli
@ 2026-11-05 19:34 ` Florian Fainelli
2026-11-05 23:13 ` Maciej W. Rozycki
2026-11-05 23:14 ` [PATCH net-next 0/3]: net: sb1250-mac: ethtool link updates Maciej W. Rozycki
3 siblings, 1 reply; 8+ messages in thread
From: Florian Fainelli @ 2026-11-05 19:34 UTC (permalink / raw)
To: netdev
Cc: Florian Fainelli, Andrew Lunn, David S. Miller, Eric Dumazet,
Jakub Kicinski, Paolo Abeni, open list, macro
Wire up the nway_reset callback to phy_ethtool_nway_reset() so that
ethtool -r can restart PHY autonegotiation. The phylib helper handles
PHY locking and returns -ENODEV when the interface has no attached PHY.
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
---
drivers/net/ethernet/broadcom/sb1250-mac.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/net/ethernet/broadcom/sb1250-mac.c b/drivers/net/ethernet/broadcom/sb1250-mac.c
index 546415d3134c..433aa1e24439 100644
--- a/drivers/net/ethernet/broadcom/sb1250-mac.c
+++ b/drivers/net/ethernet/broadcom/sb1250-mac.c
@@ -2129,6 +2129,7 @@ static void sbmac_setmulti(struct sbmac_softc *sc)
}
static const struct ethtool_ops sbmac_ethtool_ops = {
+ .nway_reset = phy_ethtool_nway_reset,
.get_link = ethtool_op_get_link,
.get_link_ksettings = phy_ethtool_get_link_ksettings,
.set_link_ksettings = phy_ethtool_set_link_ksettings,
--
2.53.0
^ permalink raw reply [flat|nested] 8+ messages in thread* Re: [PATCH net-next 0/3]: net: sb1250-mac: ethtool link updates
2026-11-05 19:34 [PATCH net-next 0/3]: net: sb1250-mac: ethtool link updates Florian Fainelli
` (2 preceding siblings ...)
2026-11-05 19:34 ` [PATCH net-next 3/3] net: sb1250-mac: Add ethtool autonegotiation restart support Florian Fainelli
@ 2026-11-05 23:14 ` Maciej W. Rozycki
3 siblings, 0 replies; 8+ messages in thread
From: Maciej W. Rozycki @ 2026-11-05 23:14 UTC (permalink / raw)
To: Florian Fainelli
Cc: netdev, Andrew Lunn, David S. Miller, Eric Dumazet,
Jakub Kicinski, Paolo Abeni, open list
On Thu, 5 Nov 2026, Florian Fainelli wrote:
> This patch series addresses a few minor issues:
Thank you for doing this work.
I ran minimal testing by booting my SWARM system with the changes applied
which runs NFS-rooted over one of the sb1250-mac interfaces, so the driver
gets exercised, and I have acked the individual patches separately now.
Maciej
^ permalink raw reply [flat|nested] 8+ messages in thread