Thread (53 messages) 53 messages, 5 authors, 2025-10-09

Re: Aquantia PHY in OCSGMII mode?

From: "Russell King (Oracle)" <linux@armlinux.org.uk>
Date: 2025-08-04 14:23:03
Also in: lkml

On Mon, Aug 04, 2025 at 03:01:44PM +0200, Alexander Wilhelm wrote:
Am Mon, Aug 04, 2025 at 01:01:39PM +0300 schrieb Vladimir Oltean:
quoted
On Mon, Aug 04, 2025 at 08:17:47AM +0200, Alexander Wilhelm wrote:
quoted
Am Fri, Aug 01, 2025 at 04:04:20PM +0300 schrieb Vladimir Oltean:
quoted
On Fri, Aug 01, 2025 at 01:23:44PM +0100, Russell King (Oracle) wrote:
quoted
It looks like memac_select_pcs() and memac_prepare() fail to
handle 2500BASEX despite memac_initialization() suggesting the
SGMII PCS supports 2500BASEX.
Thanks for pointing this out, it seems to be a regression introduced by
commit 5d93cfcf7360 ("net: dpaa: Convert to phylink").

If there are no other volunteers, I can offer to submit a patch if
Alexander confirms this fixes his setup.
I'd be happy to help by applying the patch on my system and running some tests.
Please let me know if there are any specific steps or scenarios you'd like me to
focus on.

Best regards
Alexander Wilhelm
Please find the attached patch.
[...]

Hi Vladimir,

I’ve applied the patch you provided, but it doesn’t seem to fully resolve the
issue -- or perhaps I’ve misconfigured something. I’m encountering the following
error during initialization:

    mdio_bus 0x0000000ffe4e7000:00: AN not supported on 3.125GHz SerDes lane
    fsl_dpaa_mac ffe4e6000.ethernet eth0: pcs_config failed: -EOPNOTSUPP
We're falling foul of the historic crap that 2500base-X is (802.3 were
very very late to the party in "standardising" it, but after there were
many different implementations with varying capabilities already on the
market.)

aquantia_main.c needs to implement the .inband_caps() method, and
report what its actual capabilities are for the supplied interface
mode according to how it has been provisioned.
The relevant code is located in `drivers/net/pcs/pcs-lynx.c`, within the
`lynx_pcs_config(...)` function. In the case of 2500BASE-X with in-band
autonegotiation enabled, the function logs an error and returns -EOPNOTSUPP.

From what I can tell, autonegotiation isn’t supported on a 3.125GHz SerDes lane
when using 2500BASE-X.
Due to the lack of early standardisation, some manufacturers require
AN, some have it optional, others simply do not support it.

-- 
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 80Mbps down 10Mbps up. Decent connectivity at last!
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help