From: Charles Perry <charles.perry@microchip.com>
To: <netdev@vger.kernel.org>
Cc: Charles Perry <charles.perry@microchip.com>,
Sean Anderson <sean.anderson@linux.dev>,
Nicolas Ferre <nicolas.ferre@microchip.com>,
Claudiu Beznea <claudiu.beznea@tuxon.dev>,
Andrew Lunn <andrew+netdev@lunn.ch>,
"David S. Miller" <davem@davemloft.net>,
"Eric Dumazet" <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
Russell King <linux@armlinux.org.uk>,
<linux-kernel@vger.kernel.org>
Subject: [PATCH net-next v2 0/3] Support PHYs that have inband autoneg disabled with GEM
Date: Tue, 24 Feb 2026 12:28:51 -0800 [thread overview]
Message-ID: <20260224202854.112813-1-charles.perry@microchip.com> (raw)
Changes in v2:
* Add a cover-letter
* Remove the spinlock in macb_pcs_config() (patch 1)
* Add the macb_pcs_inband_caps() ops (patch 3)
I'm testing SGMII with a VSC8574 PHY [1] and microchip HPSC SoC [2].
The link can work with or without autoneg, as long as the MAC and the PHY
are configured the same way. This doesn't work with the current MAC driver
because the MAC inband autoneg is always enabled (in the ->mac_config()
phylink_mac_ops). More precisely, the PHY driver (mscc_main.c) has
phylink's ->config_inband() implemented while the MAC ->pcs_config() ops
has an empty body.
This is based on code written by Sean Anderson [3]. Let me know if I
should add a From: or Co-developed-by: tag.
Logs with inband autoneg (managed = "in-band-status"):
````````````````````````````````````````````````````````
root@p64h:~# ifconfig eth1 up 10.180.59.33
macb 40004184000.ethernet eth1: PHY 4000c21e000.mdio-mdio:02 doesn't supply possible interfaces
macb 40004184000.ethernet eth1: PHY [4000c21e000.mdio-mdio:02] driver [Microsemi GE VSC8574 SyncE] (irq=POLL)
macb 40004184000.ethernet eth1: phy: sgmii setting supported 00000000,00000000,00000000,000042ff advertising 00000000,00000000,00000000,000042ff
macb 40004184000.ethernet eth1: configuring for inband/sgmii link mode
macb 40004184000.ethernet eth1: major config, requested inband/sgmii
macb 40004184000.ethernet eth1: interface sgmii inband modes: pcs=03 phy=03
macb 40004184000.ethernet eth1: major config, active inband/inband,an-enabled/sgmii
macb 40004184000.ethernet eth1: phylink_mac_config: mode=inband/sgmii/none adv=00000000,00000000,00000000,000042ff pause=00
macb_pcs_config: PCSANADV=0x1 PCSCNTRL=0x1040
macb_pcs_get_state: PCSSTS=0x109 PCSANLPBASE=0x1
macb_pcs_get_state: PCSSTS=0x12d PCSANLPBASE=0x1801
macb 40004184000.ethernet eth1: phy link down sgmii/Unknown/Unknown/none/off/nolpi
macb_pcs_get_state: PCSSTS=0x12d PCSANLPBASE=0x1801
macb_pcs_get_state: PCSSTS=0x12d PCSANLPBASE=0x1801
macb 40004184000.ethernet eth1: phy link up sgmii/1Gbps/Full/none/tx/nolpi
macb_pcs_get_state: PCSSTS=0x129 PCSANLPBASE=0x9801
macb_pcs_get_state: PCSSTS=0x12d PCSANLPBASE=0x9801
macb 40004184000.ethernet eth1: Link is Up - 1Gbps/Full - flow control tx
````````````````````````````````````````````````````````
Logs without inband autoneg:
````````````````````````````````````````````````````````
root@p64h:~# ifconfig eth1 up 10.180.59.33
macb 40004184000.ethernet eth1: PHY 4000c21e000.mdio-mdio:02 doesn't supply possible interfaces
macb 40004184000.ethernet eth1: PHY [4000c21e000.mdio-mdio:02] driver [Microsemi GE VSC8574 SyncE] (irq=POLL)
macb 40004184000.ethernet eth1: phy: sgmii setting supported 00000000,00000000,00000000,000042ff advertising 00000000,00000000,00000000,000042ff
macb 40004184000.ethernet eth1: configuring for phy/sgmii link mode
macb 40004184000.ethernet eth1: major config, requested phy/sgmii
macb 40004184000.ethernet eth1: interface sgmii inband modes: pcs=03 phy=03
macb 40004184000.ethernet eth1: major config, active phy/outband/sgmii
macb 40004184000.ethernet eth1: phylink_mac_config: mode=phy/sgmii/none adv=00000000,00000000,00000000,00000000 pause=00
macb_pcs_config: PCSANADV=0x1 PCSCNTRL=0x40
macb 40004184000.ethernet eth1: phy link down sgmii/Unknown/Unknown/none/off/nolpi
macb 40004184000.ethernet eth1: phy link up sgmii/1Gbps/Full/none/tx/nolpi
macb 40004184000.ethernet eth1: Link is Up - 1Gbps/Full - flow control tx
````````````````````````````````````````````````````````
The above logs are generated with an additional printk() in macb_psc_config()
and macb_pcs_get_state() and "#define DEBUG" in phylink.c.
[1]: https://www.microchip.com/en-us/product/vsc8574
[2]: https://www.microchip.com/en-us/products/microprocessors/64-bit-mpus/pic64-hpsc
[3]: https://lore.kernel.org/all/20250610233547.3588356-1-sean.anderson@linux.dev/
Charles Perry (3):
net: macb: fix SGMII with inband aneg disabled
net: macb: add support for reporting SGMII inband link status
net: macb: add the .pcs_inband_caps() callback for SGMII
drivers/net/ethernet/cadence/macb_main.c | 50 ++++++++++++++++--------
1 file changed, 33 insertions(+), 17 deletions(-)
--
2.47.3
next reply other threads:[~2026-02-24 20:29 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-24 20:28 Charles Perry [this message]
2026-02-24 20:28 ` [PATCH net-next v2 1/3] net: macb: fix SGMII with inband aneg disabled Charles Perry
2026-03-04 11:15 ` Conor Dooley
2026-03-04 14:59 ` Charles Perry
2026-03-04 16:23 ` Conor Dooley
2026-03-04 16:55 ` Russell King (Oracle)
2026-03-04 17:25 ` Charles Perry
2026-03-04 17:40 ` Conor Dooley
2026-03-04 18:06 ` Conor Dooley
2026-03-04 18:38 ` Conor Dooley
2026-03-04 18:39 ` Russell King (Oracle)
2026-03-05 9:37 ` Conor Dooley
2026-03-05 13:47 ` Charles Perry
2026-03-05 14:19 ` Conor Dooley
2026-03-05 15:07 ` Charles Perry
2026-03-04 17:37 ` Charles Perry
2026-03-05 9:42 ` Conor Dooley
2026-03-05 13:56 ` Charles Perry
2026-03-05 14:13 ` Conor Dooley
2026-03-05 14:28 ` Russell King (Oracle)
2026-03-05 14:49 ` Conor Dooley
2026-03-06 16:24 ` Conor Dooley
2026-02-24 20:28 ` [PATCH net-next v2 2/3] net: macb: add support for reporting SGMII inband link status Charles Perry
2026-02-24 20:28 ` [PATCH net-next v2 3/3] net: macb: add the .pcs_inband_caps() callback for SGMII Charles Perry
2026-02-27 3:30 ` [PATCH net-next v2 0/3] Support PHYs that have inband autoneg disabled with GEM patchwork-bot+netdevbpf
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260224202854.112813-1-charles.perry@microchip.com \
--to=charles.perry@microchip.com \
--cc=andrew+netdev@lunn.ch \
--cc=claudiu.beznea@tuxon.dev \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=netdev@vger.kernel.org \
--cc=nicolas.ferre@microchip.com \
--cc=pabeni@redhat.com \
--cc=sean.anderson@linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox