hey, sure. I give it a try tomorrow. with 250 ms, for example, I ran into timeouts after the first tftp download. after a manual retry, it works fine but retry is not a valid production behavior.
greetings Andreas Am Mi., 19. Mai 2021 um 23:45 Uhr schrieb Andre Przywara < andre.przyw...@arm.com>: > On Wed, 19 May 2021 21:42:08 +0200 > Andreas Rehn <rehn.andrea...@gmail.com> wrote: > > Hi, > > > v3s emac soft reset tooks quit longer if autonegation is active > > on 100 Mbit full duplex pairs what can result in > > `sun8i_emac_eth_start: Timeout` error > > Mmmh, why the 500ms? Can you figure out how long it typically > takes for you? By open-coding wait_for_bit_le32() and printing the time > it took to flip the bit back? > > Happy to change this then when we have some data. > > Cheers, > Andre > > > wait_for_bit_le32 polls register value each ms. > > Increasing the timeout for setup do not effect current behavior > > but reduces unexpected behaviors (e.g. timeouts on tftp download). > > > > Signed-off-by: Andreas Rehn <rehn.andrea...@gmail.com> > > --- > > drivers/net/sun8i_emac.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/net/sun8i_emac.c b/drivers/net/sun8i_emac.c > > index 0e7ad3b0d4..23fd35f9e1 100644 > > --- a/drivers/net/sun8i_emac.c > > +++ b/drivers/net/sun8i_emac.c > > @@ -475,7 +475,7 @@ static int sun8i_emac_eth_start(struct udevice *dev) > > /* Soft reset MAC */ > > writel(EMAC_CTL1_SOFT_RST, priv->mac_reg + EMAC_CTL1); > > ret = wait_for_bit_le32(priv->mac_reg + EMAC_CTL1, > > - EMAC_CTL1_SOFT_RST, false, 10, true); > > + EMAC_CTL1_SOFT_RST, false, 500, true); > > if (ret) { > > printf("%s: Timeout\n", __func__); > > return ret; > > -- Mit freundlichen Grüßen / kind regards Andreas Rehn | Master of Engineering (M.Eng)