--- /dev/null
+diff --git a/board/sunxi/gmac.c b/board/sunxi/gmac.c
+index e7ff952..f58c963 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
+
++ /*
++ * HdG: this is necessary to get GMAC to work reliable on the
++ * Bananapi. We don't know what these undocumented bits do, so this
++ * is a Bananapi specific hack for now.
++ */
++#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