[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250804145614.ca27e2h44khdfzbz@skbuf>
Date: Mon, 4 Aug 2025 17:56:14 +0300
From: Vladimir Oltean <vladimir.oltean@....com>
To: "Russell King (Oracle)" <linux@...linux.org.uk>
Cc: Alexander Wilhelm <alexander.wilhelm@...termo.com>,
Andrew Lunn <andrew@...n.ch>,
Heiner Kallweit <hkallweit1@...il.com>,
"David S. Miller" <davem@...emloft.net>,
Eric Dumazet <edumazet@...gle.com>,
Jakub Kicinski <kuba@...nel.org>, Paolo Abeni <pabeni@...hat.com>,
netdev@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: Aquantia PHY in OCSGMII mode?
On Mon, Aug 04, 2025 at 03:22:50PM +0100, Russell King (Oracle) wrote:
> 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.
I have some patches for that which need testing, because I don't yet
fully understand why there are 2 different settings for this operation,
and how they interact.
- Bit 3 of the aqr_global_cfg_regs[] registers (1e.310, 1e.31b, 1e.31c,
1e.31d, 1e.31e, 1e.31f) is "System Interface Autoneg". There's one of
these for each supported media side link speed. We have to filter for
those media link speeds where the translated VEND1_GLOBAL_CFG_SERDES_MODE
matches the phy_interface_t given to .inband_caps(), and warn on
inconsistent settings (the same phy_interface_t is provisioned with
inband enabled at speed X, and disabled at speed Y). I'm crossing my
fingers this warning isn't going to fire on OCSGMII/2500base-x on live
systems, but who knows. I am unlikely to be able to find out whether
setting or unsetting this bit makes any difference for OCSGMII, since
my PCS does not see the 16-bit config words.
- Bit 3 of register 4.C441 is "USX Autoneg Control For MAC". Not clear
whether it is an alternative or additional configuration specific for
USXGMII. This bit I can test.
There is some non-trivial consolidation which needs to be dealt with
first. The driver does not call aqr107_fill_interface_modes() for many
of the PHY IDs for which it could do that. And we can't implement
.inband_caps() except for those PHYs where we know that the registers
read by aqr107_fill_interface_modes() are accessible. I think I do have
those consolidation patches in a reasonably good state.
Powered by blists - more mailing lists