Re: [5/6] mvneta: implement SGMII-based in-band link state signaling
From: Stas Sergeev <hidden>
Date: 2015-07-08 16:55:49
Also in:
lkml
08.07.2015 19:30, Sebastien Rannou пишет:
Hi Stas, On Fri, 27 Mar 2015, Stas Sergeev wrote:quoted
When MDIO bus is unavailable (common setup for SGMII), the in-band signaling must be used to correctly track link state. This patch enables the in-band status delivery and interrupts for links state changes, namely: - link up/down - link speed - duplex full/half Upon reciving the appropriate interrupt, the driver updates the fixed_phy status to match the received status.I'm seeing a regression with this patch when trying to netboot an Armada XP board (by reverting this commit it is fine), the network link stays down: [ 9.274492] mvneta d0070000.ethernet eth0: Link is Down (I've added an extra call to phy_print_status() in mvneta_adjust_link() to get this trace). I've tried to dig a bit in the code, and it seems that the status.link flag never gets set in mvneta_fixed_link_update(). If I try to force the use_inband_status to 0 in mvneta_probe(), it boots properly so I'm not sure that I need the in-band status/delivery in my case ; I'm using a custom DTB with a fixed-link: eth0: ethernet@70000 { status = "okay"; fixed-link = <1 1 1000 0 0>; phy-mode = "sgmii"; }; Could there be something missing in the condition that initializes pp->use_inband_status?
Hi, use_inband_status is set when fixed-link is used, which is exactly your case. But it seems something on the other end is not generating the inband status. What is there? A phy chip, or something else? Perhaps some DT property should be added to explicitly enable the use of the inband status... I just thought in sgmii protocol it is a mandatory. I'll try to come up with the patch tomorrow that adds such property.