[PATCH] ftgmac100: fixup MAC address set during board bringup

Joel Stanley joel at jms.id.au
Wed Nov 23 15:56:44 AEDT 2016


On Tue, Nov 22, 2016 at 4:54 PM, Anton D. Kachalov <mouse at yandex-team.ru> wrote:
> Hardware reset leads to clear all registers.
> Make the hardware reset first before actual MAC address set in ftgmac100_initialization loop.
> Based on datasheet only one bit (SW_RST) have to be set in order to proper MAC reset.
>
> Signed-off-by: Anton D. Kachalov <mouse at yandex-team.ru>

Thanks for the patch!

> ---
>  drivers/net/ftgmac100.c       | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/net/ftgmac100.c b/drivers/net/ftgmac100.c
> --- a/drivers/net/ftgmac100.c   2016-11-22 07:07:44.000000000 +0300
> +++ b/drivers/net/ftgmac100.c   2016-11-22 07:27:12.131940971 +0300
> @@ -457,7 +457,7 @@ static void ftgmac100_reset(struct eth_d
>         debug("%s()\n", __func__);
>
>         //Ryan modify
> -       __raw_writel(__raw_readl(&ftgmac100->maccr) | FTGMAC100_MACCR_SW_RST, &ftgmac100->maccr);
> +       __raw_writel(FTGMAC100_MACCR_SW_RST, &ftgmac100->maccr);

I assume all of the other values in MACCR will be reset when we do the
software reset, so that's why you don't need to read-modify-write?

>
>         while (__raw_readl(&ftgmac100->maccr) & FTGMAC100_MACCR_SW_RST);
>
> @@ -791,11 +791,11 @@ int ftgmac100_initialize(bd_t *bd)
>                 miiphy_register(dev->name, ftgmac100_reg_read, ftgmac100_reg_write);
>  #endif
>
> +               ftgmac100_reset(dev);
> +

This part of the change looks good.

Cheers,

Joel

>                 /* set the ethernet address */
>                 ftgmac100_set_mac_from_env(dev);
>
> -               ftgmac100_reset(dev);
> -
>                 card_number++;
>         }
>         return card_number;
> _______________________________________________
> openbmc mailing list
> openbmc at lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/openbmc


More information about the openbmc mailing list