Messages in this thread | | | Date | Wed, 8 Jul 2015 18:30:48 +0200 (CEST) | From | Sebastien Rannou <> | Subject | Re: [5/6] mvneta: implement SGMII-based in-band link state signaling |
| |
Hi Stas,
On Fri, 27 Mar 2015, Stas Sergeev wrote:
> 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?
PS: I've also tried to apply this patch without success: https://lkml.org/lkml/2015/6/18/496
-- Sébastien | |