Subject: Re: [PATCH net-next v1 1/2] net: dsa: mv88e6xxx: Default CMODE to 1000BaseX only on 6390X

From: Marek Behun <[email-masked]>
Date: Thu, 24 Jan 2019 20:24:03 +0100

On Thu, 24 Jan 2019 19:11:59 +0100
Andrew Lunn <[email-masked]> wrote:

> On Thu, Jan 24, 2019 at 07:04:51PM +0100, Marek Behun wrote:
> > What properties does the cpu port node need to contain to force it?
> > phy-mode = "2500base-x"; is not enough.  
> 
> Hi Marek
> 
> For DSA ports we have:
> 
>                                                 phy-mode =
> "rgmii-txid"; fixed-link {
>                                                         speed =
> <1000>; full-duplex;
>                                                 };
> 
> See dsa_port_fixed_link_register_of()
> 
>     Andrew

Hi Andrew,
the configuration
  phy-mode = "2500base-x";
  fixed-link {
    speed = <2500>;
    full-duplex;
  };
does not work, because swphy does not support speed=2500 (only 10, 100
and 1000).
  managed = "in-band-status";
does not work either.

If I use speed = <1000>, then the swphy is created correctly, cmode is
set correctly to 2500base-x, but speed register on the port is set to
1000, and the connection does not work.

The easiest way would probably be to implement swphy to support speed
2500. But I don't know what values should the simulated PHY registers
contain...

The function dsa_port_fixed_link_register_of creates this phy device,
adjusts the link and then calls  put_device(&phydev->mdio.dev);
Does this mean that the phy device is immediately destroyed?

Marek