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 <abrod...@synopsys.com> Cc: Joe Hershberger <joe.hershber...@ni.com> Cc: Michal Simek <michal.si...@xilinx.com> Cc: Tom Rini <tr...@konsulko.com> --- 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); -- 2.4.3 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot