Re: [PATCH net-next 2/2] net: phy: broadcom: add 1000Base-X support for BCM54616S
From: Tao Ren <hidden>
Date: 2019-07-31 05:55:52
Also in:
lkml, openbmc
On 7/30/19 7:34 PM, Andrew Lunn wrote:
quoted
Hi Andrew, The BCM54616S PHY on my machine is connected to a BCM5396 switch chip over backplane (1000Base-KX).Ah, that is different. So the board is using it for RGMII to 1000Base-KX? phy-mode is about the MAC-PHY link. So in this case RGMII.
Yes. It's RGMII to 1000Base-KX.
There is no DT way to configure the PHY-Switch link. However, it sounds like you have the PHY strapped so it is doing 1000BaseX on the PHY-Switch link. So do you actually need to configure this?
The PHY is strapped in RGMII-Fiber Mode (the term used in datasheet), but besides 1000BaseX, 100Base-FX is also supported in this mode. The datasheet doesn't say which link type (1000BaseX or 100Base-FX) is active after reset and I cannot find a way to auto-detect the link type, either. Below are a few more details about 1000Base-X and 100Base-FX in BCM54616S datasheet. - 1000BaseX: The 1000BaseX register set (MII registers 00-0F) needs to be enabled by setting bit 0 of Mode Control Register. Although the register address is the same between 1000BaseX and 1000BaseT/100BaseT/10BaseT registers, some bit fields in 1000BaseX registers are different: for example, speed field is not available in 1000BaseX status register. - 100Base-FX: 100Base-FX registers need to be enabled by writing 1 to SerDes 100FX Control Register. 100Base-FX Control and Status registers are in shadow register 1Ch, instead of MII register 00h and 01h.
You report you never see link up? So maybe the problem is actually in read_status? When in 1000BaseX mode, do you need to read the link status from some other register? The Marvell PHYs use a second page for 1000BaseX.
read_status callback needs to be updated to report correct link speed in my case. But as I cannot tell which link type (1000BaseX or 100Base-FX) is active, it becomes hard to access registers in read_status method. Any suggestions? BTW, link-never-up issue seems to be caused by static/dynamic feature detection. I'm still tracing down the issue and it's being tracked in patch #1 of the series. Thanks, Tao