[PATCH 6/6] net: sun8i-emac: v3s: fix soft reset timeout
Andre Przywara
andre.przywara at arm.com
Wed May 19 23:44:51 CEST 2021
On Wed, 19 May 2021 21:42:08 +0200
Andreas Rehn <rehn.andreas86 at 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.andreas86 at 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;
More information about the U-Boot
mailing list