[U-Boot] [PATCH] armv8: ls2080aqds: fix SGMII repeater settings

york sun york.sun at nxp.com
Mon Nov 7 19:42:28 CET 2016


On 10/17/2016 01:33 AM, shh.xie at gmail.com wrote:
> From: Shaohui Xie <Shaohui.Xie at nxp.com>
>
> The current value to check whether the PHY was configured has dependency
> on MC, it expects MC to start PCS AN, this is not true during boot up,
> so it should be changed to remove the dependency.
>
> The PHY's register space should be restore to default after accessing
> extended space.
>
> Signed-off-by: Shaohui Xie <Shaohui.Xie at nxp.com>
> ---
>  board/freescale/ls2080aqds/eth.c | 13 ++++++++-----
>  1 file changed, 8 insertions(+), 5 deletions(-)
>
> diff --git a/board/freescale/ls2080aqds/eth.c b/board/freescale/ls2080aqds/eth.c
> index 95ff68b..cf6791e 100644
> --- a/board/freescale/ls2080aqds/eth.c
> +++ b/board/freescale/ls2080aqds/eth.c
> @@ -144,8 +144,10 @@ static void sgmii_configure_repeater(int serdes_port)
>
>  		mdelay(10);
>
> -		if ((value & 0xfff) == 0x40f) {
> +		if ((value & 0xfff) == 0x401) {
>  			printf("DPMAC %d:PHY is ..... Configured\n", dpmac_id);
> +			miiphy_write(dev[mii_bus], riser_phy_addr[dpmac],
> +				     0x1f, 0);
>  			continue;
>  		}
>
> @@ -181,28 +183,29 @@ static void sgmii_configure_repeater(int serdes_port)
>  				if (ret > 0)
>  					goto error;
>
> -				mdelay(1);
> +				mdelay(100);

Why change the delay?

>  				ret = miiphy_read(dev[mii_bus],
>  						  riser_phy_addr[dpmac],
>  						  0x11, &value);
>  				if (ret > 0)
>  					goto error;
> -				mdelay(10);
>
> -				if ((value & 0xfff) == 0x40f) {
> +				if ((value & 0xfff) == 0x401) {
>  					printf("DPMAC %d :PHY is configured ",
>  					       dpmac_id);
>  					printf("after setting repeater 0x%x\n",
>  					       value);
>  					i = 5;
>  					j = 5;
> -				} else
> +				} else {
>  					printf("DPMAC %d :PHY is failed to ",
>  					       dpmac_id);
>  					printf("configure the repeater 0x%x\n",
>  					       value);
>  				}
> +			}
>  		}
> +		miiphy_write(dev[mii_bus], riser_phy_addr[dpmac], 0x1f, 0);
>  	}
>  error:
>  	if (ret)
>

Prabhakar,

Do these changes look correct to you?

York


More information about the U-Boot mailing list