[U-Boot] Fwd: [PATCH] MPC5200 FEC MII speed register
John Rigby
jrigby at freescale.com
Fri Mar 13 17:28:54 CET 2009
Jon Smirl wrote:
> John, could you please apply this.
>
> Without this the MII commands don't work on any of the mpc5200
> platforms. mpc5xxx_fec_halt() sets the mii speed register to zero it
> needs to left at a non-zero speed for the commands to function.
>
> ---------- Forwarded message ----------
> From: Jon <jonsmirl at gmail.com>
> Date: Wed, Mar 11, 2009 at 3:08 PM
> Subject: [PATCH] MPC5200 FEC MII speed register
> To: u-boot at lists.denx.de
>
>
> From: Jon Smirl <jonsmirl at gmail.com>
>
> Set a non-zero speed in the MII register so that MII commands will work.
>
> Signed-off-by: Jon Smirl <jonsmirl at gmail.com>
> ---
> drivers/net/mpc5xxx_fec.c | 23 ++++++++++++++++-------
> 1 files changed, 16 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/net/mpc5xxx_fec.c b/drivers/net/mpc5xxx_fec.c
> index 89e91c3..1876b76 100644
> --- a/drivers/net/mpc5xxx_fec.c
> +++ b/drivers/net/mpc5xxx_fec.c
> @@ -285,13 +285,6 @@ static int mpc5xxx_fec_init(struct eth_device
> *dev, bd_t * bis)
> }
>
> fec->eth->x_cntrl = 0x00000000; /* half-duplex, heartbeat disabled */
> - 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->ipb_clk >> 20) / 5) <<
> 1); /* No MII for 7-wire mode */
> - }
>
> /*
> * Set Opcode/Pause Duration Register
> @@ -649,6 +642,15 @@ static void mpc5xxx_fec_halt(struct eth_device *dev)
> */
> udelay(10);
>
> + /* don't leave the MII speed set to zero */
> + 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->ipb_clk >> 20) / 5) <<
> 1); /* No MII for 7-wire mode */
> + }
> +
> #if (DEBUG & 0x3)
> printf("Ethernet task stopped\n");
> #endif
> @@ -906,6 +908,13 @@ int mpc5xxx_fec_initialize(bd_t * bis)
> #else
> #error fec->xcv_type not initialized.
> #endif
> + 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->ipb_clk >> 20) / 5) <<
> 1); /* No MII for 7-wire mode */
> + }
>
> dev->priv = (void *)fec;
> dev->iobase = MPC5XXX_FEC;
>
>
>
>
>
done
More information about the U-Boot
mailing list