Hi Alexey, On Wed, Jul 1, 2015 at 9:59 PM, Alexey Brodkin <[email protected]> wrote: > http://git.denx.de/?p=u-boot.git;a=patch;h=f566c9949fbdce2e09a900c5343ca9986e5ba360 > broke DW GMAC operation if !DM_ETH because eth_write_hwaddr() doesn't > exist if !DM_NET. > > As for DM_ETH case I'm still not sure if existing implementation will > fly. > > The point is as it is said in the comment on "soft reset" that is > triggered with setting DMAMAC_SRST in "busmode" register HW address gets > reset as well. And we inevitably need to set HW address again. > > So probably better solution is to move mentioned "soft-reset" from > "init" (that is used on start of any network activity) to "initialize" > (which is only executed once in "board_r" sequence). But that's a bit of > a different story and for now let's just get DW GMAC functional again. > > Signed-off-by: Alexey Brodkin <[email protected]> > Cc: Joe Hershberger <[email protected]> > Cc: Michal Simek <[email protected]> > Cc: Tom Rini <[email protected]> > --- > drivers/net/designware.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/drivers/net/designware.c b/drivers/net/designware.c > index ae51cf3..07281a6 100644 > --- a/drivers/net/designware.c > +++ b/drivers/net/designware.c > @@ -243,6 +243,10 @@ static int _dw_eth_init(struct dw_eth_dev *priv, u8 > *enetaddr) > mdelay(100); > }; > > + /* Soft reset above clears HW address registers. > + * So we have to set it here once again */ > + _dw_write_hwaddr(priv, enetaddr); > + > rx_descs_init(priv); > tx_descs_init(priv); > > --
There is already a patch submitted. Please check http://patchwork.ozlabs.org/patch/484214/ Regards, Bin _______________________________________________ U-Boot mailing list [email protected] http://lists.denx.de/mailman/listinfo/u-boot

