[U-Boot] [PATCH] phy/marvell: Rewrite the MV88E1111 phy config function based on kernel code

Wolfgang Denk wd at denx.de
Sun Oct 23 21:41:36 CEST 2011


Dear Roy Zang,

In message <1319178713-12472-2-git-send-email-tie-fei.zang at freescale.com> you wrote:
> The original m88e1111s_config() does not do the SGMII mode
> initialization and is buggy. Rewrite the function according to
> 3.0.6 kernel function m88e1111_config_init() in drivers/net/phy/marvell.c
> 
> Signed-off-by: Roy Zang <tie-fei.zang at freescale.com>
> Acked-by: Andy Fleming <afleming at freescale.com>
> Cc: Kumar Gala <galak at kernel.crashing.org>
...
> +		/* soft reset */
> +		phy_write(phydev, MDIO_DEVAD_NONE, MII_BMCR, BMCR_RESET);
> +		do
> +			reg = phy_read(phydev, MDIO_DEVAD_NONE, MII_BMCR);
> +		while (reg & BMCR_RESET);
...
> +	/* soft reset */
> +	phy_write(phydev, MDIO_DEVAD_NONE, MII_BMCR, BMCR_RESET);
> +	do
> +		reg = phy_read(phydev, MDIO_DEVAD_NONE, MII_BMCR);
> +	while (reg & BMCR_RESET);

Do we really need this double reset?

Also, I dislike the potentially infinite loop here - please add a
timeout and an error exit.

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
A supercomputer is a machine that runs an endless loop in 2 seconds.


More information about the U-Boot mailing list