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

Re: Aquantia PHY in OCSGMII mode?

From: Alexander Wilhelm <hidden>
Date: 2025-08-01 12:36:47
Also in: lkml

Am Fri, Aug 01, 2025 at 01:23:44PM +0100 schrieb Russell King (Oracle):
On Fri, Aug 01, 2025 at 02:06:16PM +0200, Alexander Wilhelm wrote:
quoted
Am Fri, Aug 01, 2025 at 12:58:23PM +0100 schrieb Russell King (Oracle):
quoted
On Fri, Aug 01, 2025 at 01:54:29PM +0200, Alexander Wilhelm wrote:
quoted
Am Fri, Aug 01, 2025 at 02:01:06PM +0300 schrieb Vladimir Oltean:
quoted
On Thu, Jul 31, 2025 at 08:26:43PM +0100, Russell King (Oracle) wrote:
quoted
and this works. So... we could actually reconfigure the PHY independent
of what was programmed into the firmware.
It does work indeed, the trouble will be adding this code to the common
mainline kernel driver and then watching various boards break after their
known-good firmware provisioning was overwritten, from a source of unknown
applicability to their system.
You're right. I've now selected a firmware that uses a different provisioning
table, which already configures the PHY for 2500BASE-X with Flow Control.
According to the documentation, it should support all modes: 10M, 100M, 1G, and
2.5G.

It seems the issue lies with the MAC, as it doesn't appear to handle the
configured PHY_INTERFACE_MODE_2500BASEX correctly. I'm currently investigating
this further.
Which MAC driver, and is it using phylink?
If I understand it correclty, then yes. It is an Freescale FMAN driver that is
called through phylink callbacks like the following:

    static const struct phylink_mac_ops memac_mac_ops = {
            .validate = memac_validate,
            .mac_select_pcs = memac_select_pcs,
            .mac_prepare = memac_prepare,
            .mac_config = memac_mac_config,
            .mac_link_up = memac_link_up,
            .mac_link_down = memac_link_down,
    };
Thanks.

It looks like memac_select_pcs() and memac_prepare() fail to
handle 2500BASEX despite memac_initialization() suggesting the
SGMII PCS supports 2500BASEX.

It would also be good if the driver can also use
pcs->supported_interfaces which states which modes the PCS layer
supports as well.
Thank you for your detailed support, Russell. I believe I now have a good
understanding of the next steps. I'll respond later once I’ve made some progress
and have results to share.


Best regards
Alexander Wilhelm
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help