[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Z5zxC3hwk4C0s456@shell.armlinux.org.uk>
Date: Fri, 31 Jan 2025 15:49:31 +0000
From: "Russell King (Oracle)" <linux@...linux.org.uk>
To: "Tristram.Ha@...rochip.com" <Tristram.Ha@...rochip.com>
Cc: Vladimir Oltean <olteanv@...il.com>,
"Woojung.Huh@...rochip.com" <Woojung.Huh@...rochip.com>,
"andrew@...n.ch" <andrew@...n.ch>,
"hkallweit1@...il.com" <hkallweit1@...il.com>,
Jose Abreu <Jose.Abreu@...opsys.com>,
"maxime.chevallier@...tlin.com" <maxime.chevallier@...tlin.com>,
"davem@...emloft.net" <davem@...emloft.net>,
"edumazet@...gle.com" <edumazet@...gle.com>,
"kuba@...nel.org" <kuba@...nel.org>,
"pabeni@...hat.com" <pabeni@...hat.com>,
"UNGLinuxDriver@...rochip.com" <UNGLinuxDriver@...rochip.com>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
Sadhan Rudresh <Sadhan.Rudresh@...opsys.com>,
Siddhant Kumar <Siddhant.Kumar@...opsys.com>
Subject: Re: [WARNING: ATTACHMENT UNSCANNED]Re: [PATCH RFC net-next 1/2] net:
pcs: xpcs: Add special code to operate in Microchip KSZ9477 switch
On Fri, Jan 31, 2025 at 02:36:49PM +0000, Jose Abreu wrote:
> From: Russell King (Oracle) <linux@...linux.org.uk>
> Date: Thu, Jan 30, 2025 at 11:02:00
>
> > Would it be safe to set these two bits with newer XPCS hardware when
> > programming it for 1000base-X mode, even though documentation e.g.
> > for SJA1105 suggests that these bits do not apply when operating in
> > 1000base-X mode?
>
> It's hard to provide a clear answer because our products can all be modified
> by final customer. I hope this snippet below can help:
>
> "Nothing has changed in "AN control register" ever since at least for a decade.
> Having said that, bit[4] and bit[3] are valid for SGMII mode and not valid
> for 1000BASE-X mode (I don't know why customer says 'serdes' mode.
> There is no such mode in ethernet standard). So, customer shall
> leave this bits at default value of 0. Even if they set to 1, there is no
> impact (as those bits are not used in 1000BASE-X mode)."
Thanks for the reply Jose, that's useful.
Tristram, I think you need to talk to your hardware people to find out
where this requirement to set these two bits comes from as it seems it
isn't a property that comes from Synopsys' IP (I suppose unless your
IP is older than ten years.)
That said, Jose's response indicates that we can set these two bits
with impunity provided another of Synopsys's customers hasn't modified
their integration of XPCS to require these bits to be set to zero. So,
while I think we can do that unconditionally (as per the patch
attached) I think we need a clearer comment to state why it's being
done (and I probably need to now modify the commit message - this was
created before Jose's reply.)
So, I think given the last two patches I've sent, I believe I've
covered both of the issues that you have with XPCS:
1) the need to set bits 4 and 3 in AN control for 1000base-X in KSZ9477
(subject to a better commit message and code comment, which will be
dependent on your research as to where this requirement has come
from.)
2) the lack of MAC_AUTO_SW support in KSZ9477 which can be enabled by
writing DW_XPCS_SGMII_MODE_MAC_MANUAL to xpcs->sgmii_mode.
We now need to work out a way to identify this older IP. I think for
(2) we could potentially do something like (error handling omitted for
clarity):
if (xpcs->sgmii_mode == DW_XPCS_SGMII_MODE_MAC_AUTO) {
xpcs_modify(xpcs, MDIO_MMD_VEND2, DW_VR_MII_AN_CTRL,
DW_VR_MII_DIG_CTRL1_MAC_AUTO_SW,
DW_VR_MII_DIG_CTRL1_MAC_AUTO_SW);
ret = xpcs_read(xpcs, MDIO_MMD_VEND2, DW_VR_MII_AN_CTRL);
/* If MAC_AUTO_SW doesn't retain the MAC_AUTO_SW bit, then the
* XPCS implementation does not support this feature, and we
* have to manually configure the BMCR for the link parameters.
*/
if (ret >= 0 && !(ret & DW_VR_MII_DIG_CTRL1_MAC_AUTO_SW))
xpcs->sgmii_mode = DW_XPCS_SGMII_MODE_MAC_MANUAL;
}
--
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 80Mbps down 10Mbps up. Decent connectivity at last!
View attachment "0001-net-xpcs-allow-1000BASE-X-to-work-with-older-XPCS-IP.patch" of type "text/x-diff" (2308 bytes)
Powered by blists - more mailing lists