On Fri Jun 4, 2021 at 4:40 PM IDT, Aleksandar Gerasimovski wrote: > Current tsec adapter sets adapter gigabit capabilities by default, and > in > reality this must not always be the case. > It is possible that tsec adapter is used for 100Mbps connection, and in > this case setting 1000Mbps capabilities can lead to some side effects > such > longer autoneg process. > > In our ls102x designs this problem leads to long autoneg times (> 4 sec) > in case board rgmii link is 100Mbps capable only. > Limiting the rgmii link capabilities provides faster and smoother > link establishment. > > Signed-off-by: Aleksandar Gerasimovski > <aleksandar.gerasimov...@hitachi-powergrids.com> > Reviewed-by: Vladimir Oltean <vladimir.olt...@nxp.com> > Reviewed-by: Bin Meng <bmeng...@gmail.com> > --- > Changes for v2: > - keep the variable sort order in a decreasing order of line length > - fix comment typo > Changes for v3: > - fix commit message typos > --- > drivers/net/tsec.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/tsec.c b/drivers/net/tsec.c > index c68e4b7..ee820aa 100644 > --- a/drivers/net/tsec.c > +++ b/drivers/net/tsec.c > @@ -828,6 +828,7 @@ int tsec_probe(struct udevice *dev) > const char *phy_mode; > ofnode parent, child; > fdt_addr_t reg; > + u32 max_speed; > int ret; > > data = (struct tsec_data *)dev_get_driver_data(dev); > @@ -893,8 +894,12 @@ int tsec_probe(struct udevice *dev) > } > priv->interface = pdata->phy_interface; > > + /* Check for speed limit, default is 1000Mbps */ > + max_speed = dev_read_u32_default(dev, "max-speed", 1000); > + > /* Initialize flags */ > - priv->flags = TSEC_GIGABIT; > + if (max_speed == 1000) > + priv->flags = TSEC_GIGABIT; > if (priv->interface == PHY_INTERFACE_MODE_SGMII) > priv->flags |= TSEC_SGMII; > > -- > 1.8.3.1
Applied to u-boot-net/master, thanks! Best regards, Ramon Fried