On 1/24/19 11:24 AM, Marek Behun wrote: > On Thu, 24 Jan 2019 19:11:59 +0100 > Andrew Lunn <and...@lunn.ch> 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?
Yes, we should actually migrate that code over to PHYLINK, because in PHYLINK the fixed links don't require creating a phy_device instance. This is something that has a potential of breaking a lot of people, so I have not really started doing it just yet :) -- Florian