Message ID | 1412095532-9385-2-git-send-email-hdegoede@redhat.com |
---|---|
State | Accepted |
Delegated to: | Tom Rini |
Headers | show |
On Tue, Sep 30, 2014 at 06:45:32PM +0200, Hans de Goede wrote: > In order for the gmac nic to work reliable on the Bananapi, we need to set > bits 10-12 GTXDC "GMAC Transmit Clock Delay Chain" of the GMAC clk register > (0x01c20164) to 3. > > Without this about 9 out of 10 ethernet packets get lost, with this setting > there is no packet loss. > > So far setting these bits is only necessary on the Bananapi, so this commit > solves this with a bit of #ifdef CONFIG_BANANAPI code. If in the future we > need to do something similar for other boards, we can create a specific > CONFIG_FOO option for this then. > > Reported-by: Karsten Merker <merker@debian.org> > Signed-off-by: Hans de Goede <hdegoede@redhat.com> > Tested-by: Karsten Merker <merker@debian.org> > Tested-by: Zoltan HERPAI <wigyori@openwrt.org> > Tested-by: Tony Zhang <tony.zhang@lemaker.org> > Acked-by: Ian Campbell <ijc@hellion.org.uk> Applied to u-boot/master, thanks!
diff --git a/board/sunxi/gmac.c b/board/sunxi/gmac.c index e7ff952..6348d27 100644 --- a/board/sunxi/gmac.c +++ b/board/sunxi/gmac.c @@ -24,6 +24,15 @@ int sunxi_gmac_initialize(bd_t *bis) CCM_GMAC_CTRL_GPIT_MII); #endif + /* + * In order for the gmac nic to work reliable on the Bananapi, we + * need to set bits 10-12 GTXDC "GMAC Transmit Clock Delay Chain" + * of the GMAC clk register to 3. + */ +#ifdef CONFIG_BANANAPI + setbits_le32(&ccm->gmac_clk_cfg, 0x3 << 10); +#endif + /* Configure pin mux settings for GMAC */ for (pin = SUNXI_GPA(0); pin <= SUNXI_GPA(16); pin++) { #ifdef CONFIG_RGMII