diff --git a/arch/arm/include/asm/arch-bcmcygnus/configs.h b/arch/arm/include/asm/arch-bcmcygnus/configs.h
index 5354637cf05ec140ae62a57bab9d3d73b2a7ca33..3c0716082a221fc273d748d872f5a359fdbdd055 100644
--- a/arch/arm/include/asm/arch-bcmcygnus/configs.h
+++ b/arch/arm/include/asm/arch-bcmcygnus/configs.h
@@ -22,4 +22,15 @@
 #define CONFIG_CONS_INDEX		3
 #define CONFIG_SYS_NS16550_COM3		0x18023000
 
+/* Ethernet */
+#define CONFIG_BCM_SF2_ETH
+#define CONFIG_BCM_SF2_ETH_GMAC
+
+#define CONFIG_PHYLIB
+#define CONFIG_PHY_BROADCOM
+#define CONFIG_PHY_RESET_DELAY 10000 /* PHY reset delay in us*/
+
+#define CONFIG_CMD_PING
+#define CONFIG_CMD_MII
+
 #endif /* __ARCH_CONFIGS_H */
diff --git a/board/broadcom/bcm_ep/board.c b/board/broadcom/bcm_ep/board.c
index eaad0b3d98f64d7cde65b9047618b32adbc4d79e..c28b203ceaac8555dd16420ff70caf7678fa9f1a 100644
--- a/board/broadcom/bcm_ep/board.c
+++ b/board/broadcom/bcm_ep/board.c
@@ -7,6 +7,7 @@
 #include <common.h>
 #include <asm/io.h>
 #include <config.h>
+#include <netdev.h>
 #include <asm/system.h>
 #include <asm/iproc-common/armpll.h>
 
@@ -67,3 +68,13 @@ void smp_waitloop(unsigned previous_address)
 {
 }
 #endif
+
+#ifdef CONFIG_BCM_SF2_ETH
+int board_eth_init(bd_t *bis)
+{
+	int rc = -1;
+	printf("Registering BCM sf2 eth\n");
+	rc = bcm_sf2_eth_register(bis, 0);
+	return rc;
+}
+#endif