[U-Boot] [PATCH] Bugfix: mpc512x_fec MII accesses fail after ethernet transfers

Ben Warren
2009-07-21T06:53:08Z

Thomas,

Thomas D?rfler wrote:
> The mpc512x FEC network driver resets the FEC before transferring
> packets. With this reset, the FEC clears the previous setting of MII
> transfer speed. This patch ensures, that it is set again to a reasonable
> value after a FEC reset.
>
> Signed-off-by: Thomas Doerfler <Thomas.Doerfler@embedded-brains.de>
> --
> diff --git a/drivers/net/mpc512x_fec.c b/drivers/net/mpc512x_fec.c
> index fb2c19a..f3d76ba 100644
> --- a/drivers/net/mpc512x_fec.c
> +++ b/drivers/net/mpc512x_fec.c
> @@ -446,6 +446,19 @@ static void mpc512x_fec_halt (struct eth_device *dev)
> * wait at least 16 clock cycles
> */
> udelay (10);
> + /*
> + * NOTE: reset will also clear the MII speed register
> + * we should reinitialize it ASAP
> + */
> + if (fec->xcv_type != SEVENWIRE) {
> + /*
> + * Set MII_SPEED = (1/(mii_speed * 2)) * System Clock
> + * and do not drop the Preamble.
> + */
> + fec->eth->mii_speed = ((((gd->ips_clk / 1000000) / 5)
> + + 1)
> + << 1);
> + }
> #if (DEBUG & 0x3)
> printf ("Ethernet task stopped\n");
> #endif
>
Applied to net repo (after some tweaking)

thanks,
Ben