Javier, On Mon, Oct 19, 2009 at 5:16 AM, javier Martin < [email protected]> 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 <[email protected]> > -- > > 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
_______________________________________________ U-Boot mailing list [email protected] http://lists.denx.de/mailman/listinfo/u-boot

