Message ID | 20170430195710.19713-2-daniel.schwierzeck@gmail.com |
---|---|
State | Accepted |
Commit | 43979cb |
Delegated to: | Joe Hershberger |
Headers | show |
On 30 April 2017 at 13:57, Daniel Schwierzeck <daniel.schwierzeck@gmail.com> wrote: > > From: Paul Burton <paul.burton@imgtec.com> > > Using the EG20T gigabit ethernet controller on the MIPS Boston board, we > find that we have to reset the controller in order for the RGMII link to > the PHY to become functional. Without doing so we constantly time out in > pch_gbe_mdio_ready. > > Signed-off-by: Paul Burton <paul.burton@imgtec.com> > Reviewed-by: Bin Meng <bmeng.cn@gmail.com> > Tested-by: Bin Meng <bmeng.cn@gmail.com> > Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com> > --- > > Changes in v2: None > > drivers/net/pch_gbe.c | 5 +++++ > 1 file changed, 5 insertions(+) Reviewed-by: Simon Glass <sjg@chromium.org>
On Sun, Apr 30, 2017 at 2:57 PM, Daniel Schwierzeck <daniel.schwierzeck@gmail.com> wrote: > From: Paul Burton <paul.burton@imgtec.com> > > Using the EG20T gigabit ethernet controller on the MIPS Boston board, we > find that we have to reset the controller in order for the RGMII link to > the PHY to become functional. Without doing so we constantly time out in > pch_gbe_mdio_ready. > > Signed-off-by: Paul Burton <paul.burton@imgtec.com> > Reviewed-by: Bin Meng <bmeng.cn@gmail.com> > Tested-by: Bin Meng <bmeng.cn@gmail.com> > Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com> Acked-by: Joe Hershberger <joe.hershberger@ni.com>
Hi Daniel, https://patchwork.ozlabs.org/patch/756914/ was applied to u-boot-net.git. Thanks! -Joe
diff --git a/drivers/net/pch_gbe.c b/drivers/net/pch_gbe.c index d40fff0e48..4aac0f67a0 100644 --- a/drivers/net/pch_gbe.c +++ b/drivers/net/pch_gbe.c @@ -422,6 +422,7 @@ int pch_gbe_probe(struct udevice *dev) struct pch_gbe_priv *priv; struct eth_pdata *plat = dev_get_platdata(dev); void *iobase; + int err; /* * The priv structure contains the descriptors and frame buffers which @@ -444,6 +445,10 @@ int pch_gbe_probe(struct udevice *dev) pch_gbe_mdio_init(dev->name, priv->mac_regs); priv->bus = miiphy_get_dev_by_name(dev->name); + err = pch_gbe_reset(dev); + if (err) + return err; + return pch_gbe_phy_init(dev); }