[U-Boot] [PATCH fix for v2014.10 0/1] sunxi: Fix gmac not working reliable on the Bananapi

Hi Tom,
Here is a last minute sunxi bug-fix for v2014.10, which fixes the ethernet on the bananapi being unusable.
Ian and I (the sunxi custodians) would like to see this included in v2014.10, can you please apply it to master before the release ?
Thanks & Regards,
Hans

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 --- board/sunxi/gmac.c | 9 +++++++++ 1 file changed, 9 insertions(+)
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

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!

On Tue, Sep 30, 2014 at 06:45:31PM +0200, Hans de Goede wrote:
Hi Tom,
Here is a last minute sunxi bug-fix for v2014.10, which fixes the ethernet on the bananapi being unusable.
Ian and I (the sunxi custodians) would like to see this included in v2014.10, can you please apply it to master before the release ?
Hello,
as the planned release date of u-boot v2014.10 is just one week away, may I ping you on this issue?
Kind regards, Karsten
participants (3)
-
Hans de Goede
-
Karsten Merker
-
Tom Rini