[U-Boot] [u-boot] [PATCH] [1/2] mxc_fec: fix some erroneous PHY accesses.

Ben Warren biggerbadderben at gmail.com
Sun Oct 25 20:20:01 CET 2009


Javier,

On Mon, Oct 19, 2009 at 5:16 AM, javier Martin <
javier.martin at vista-silicon.com> wrote:

> This patch fixes erroneous access to the ethernet PHY which broke the
> driver.
> 1. Selector field in the auto-negotiation register must be 0x00001 for
> using 802.3, not 0x00000 which is reseved.
> 2. Access to the PHY address specified by CONFIG_FEC_MXC_PHYADDR, not
> 0x0 fixed address.
>
> This has been tested in i.MX27 Litekit board and eldk-2.0 toolchains.
>
> Signed-off-by: Javier Martin <javier.martin at vista-silicon.com>
> --
>
> diff --git a/drivers/net/fec_mxc.c b/drivers/net/fec_mxc.c
> index bd83a24..18f0bba 100644
> --- a/drivers/net/fec_mxc.c
> +++ b/drivers/net/fec_mxc.c
> @@ -157,7 +157,7 @@ static int miiphy_restart_aneg(struct eth_device *dev)
>        /*
>         * Set the auto-negotiation advertisement register bits
>         */
> -       miiphy_write(dev->name, CONFIG_FEC_MXC_PHYADDR, PHY_ANAR, 0x1e0);
> +       miiphy_write(dev->name, CONFIG_FEC_MXC_PHYADDR, PHY_ANAR, 0x1e1);
>
There are perfectly good #defines for each of these bits (miiphy.h or, even
better, linux/mii.h).  Please use them to avoid this confusion.

>        miiphy_write(dev->name, CONFIG_FEC_MXC_PHYADDR, PHY_BMCR,
>                        PHY_BMCR_AUTON | PHY_BMCR_RST_NEG);
>
> @@ -341,8 +341,8 @@ static int fec_open(struct eth_device *edev)
>        writel(FEC_ECNTRL_ETHER_EN, &fec->eth->ecntrl);
>
>        miiphy_wait_aneg(edev);
> -       miiphy_speed(edev->name, 0);
> -       miiphy_duplex(edev->name, 0);
> +       miiphy_speed(edev->name, CONFIG_FEC_MXC_PHYADDR);
> +       miiphy_duplex(edev->name, CONFIG_FEC_MXC_PHYADDR);
>
>        /*
>         * Enable SmartDMA receive task
>
> regards,
Ben


More information about the U-Boot mailing list