[U-Boot] [PATCH] armv8: ls2080aqds: fix SGMII repeater settings
Prabhakar Kushwaha
prabhakar.kushwaha at nxp.com
Tue Nov 8 12:12:58 CET 2016
Hi York,
> -----Original Message-----
> From: york sun
> Sent: Tuesday, November 08, 2016 12:12 AM
> To: Prabhakar Kushwaha <prabhakar.kushwaha at nxp.com>
> Cc: shh.xie at gmail.com; u-boot at lists.denx.de; S.H. Xie <shaohui.xie at nxp.com>
> Subject: Re: [PATCH] armv8: ls2080aqds: fix SGMII repeater settings
>
> 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?
>
These changes looks fine.
Please note with older code, sometime SGMII riser card was not getting configured. It is now more consistent.
--prabhakar
More information about the U-Boot
mailing list