diff --git a/board/bct-brettl2/bct-brettl2.c b/board/bct-brettl2/bct-brettl2.c
index 1f0dfb4d40..bf7cd62954 100644
--- a/board/bct-brettl2/bct-brettl2.c
+++ b/board/bct-brettl2/bct-brettl2.c
@@ -29,13 +29,6 @@ int checkboard(void)
 }
 
 #ifdef CONFIG_BFIN_MAC
-static void board_init_enetaddr(uchar *mac_addr)
-{
-	puts("Warning: Generating 'random' MAC address\n");
-	net_random_ethaddr(mac_addr);
-	eth_setenv_enetaddr("ethaddr", mac_addr);
-}
-
 int board_eth_init(bd_t *bis)
 {
 	int retry = 3;
@@ -107,12 +100,6 @@ static void turn_leds_off(void)
 /* miscellaneous platform dependent initialisations */
 int misc_init_r(void)
 {
-#ifdef CONFIG_BFIN_MAC
-	uchar enetaddr[6];
-	if (!eth_getenv_enetaddr("ethaddr", enetaddr))
-		board_init_enetaddr(enetaddr);
-#endif
-
 	gpio_cfi_flash_init();
 	init_tlv320aic31();
 	init_mute_pin();
diff --git a/board/bf518f-ezbrd/bf518f-ezbrd.c b/board/bf518f-ezbrd/bf518f-ezbrd.c
index 8ecfbb28c9..bf4a7db03d 100644
--- a/board/bf518f-ezbrd/bf518f-ezbrd.c
+++ b/board/bf518f-ezbrd/bf518f-ezbrd.c
@@ -29,28 +29,14 @@ int checkboard(void)
 #if defined(CONFIG_BFIN_MAC)
 static void board_init_enetaddr(uchar *mac_addr)
 {
-#ifdef CONFIG_SYS_NO_FLASH
-# define USE_MAC_IN_FLASH 0
-#else
-# define USE_MAC_IN_FLASH 1
+#ifndef CONFIG_SYS_NO_FLASH
+	/* we cram the MAC in the last flash sector */
+	uchar *board_mac_addr = (uchar *)0x203F0096;
+	if (is_valid_ethaddr(board_mac_addr)) {
+		memcpy(mac_addr, board_mac_addr, 6);
+		eth_setenv_enetaddr("ethaddr", mac_addr);
+	}
 #endif
-	bool valid_mac = false;
-
-	if (USE_MAC_IN_FLASH) {
-		/* we cram the MAC in the last flash sector */
-		uchar *board_mac_addr = (uchar *)0x203F0096;
-		if (is_valid_ethaddr(board_mac_addr)) {
-			memcpy(mac_addr, board_mac_addr, 6);
-			valid_mac = true;
-		}
-	}
-
-	if (!valid_mac) {
-		puts("Warning: Generating 'random' MAC address\n");
-		net_random_ethaddr(mac_addr);
-	}
-
-	eth_setenv_enetaddr("ethaddr", mac_addr);
 }
 
 /* Only the first run of boards had a KSZ switch */
diff --git a/board/bf526-ezbrd/bf526-ezbrd.c b/board/bf526-ezbrd/bf526-ezbrd.c
index 0a88491e90..db1ee283f2 100644
--- a/board/bf526-ezbrd/bf526-ezbrd.c
+++ b/board/bf526-ezbrd/bf526-ezbrd.c
@@ -26,28 +26,14 @@ int checkboard(void)
 #ifdef CONFIG_BFIN_MAC
 static void board_init_enetaddr(uchar *mac_addr)
 {
-#ifdef CONFIG_SYS_NO_FLASH
-# define USE_MAC_IN_FLASH 0
-#else
-# define USE_MAC_IN_FLASH 1
+#ifndef CONFIG_SYS_NO_FLASH
+	/* we cram the MAC in the last flash sector */
+	uchar *board_mac_addr = (uchar *)0x203F0096;
+	if (is_valid_ethaddr(board_mac_addr)) {
+		memcpy(mac_addr, board_mac_addr, 6);
+		eth_setenv_enetaddr("ethaddr", mac_addr);
+	}
 #endif
-	bool valid_mac = false;
-
-	if (USE_MAC_IN_FLASH) {
-		/* we cram the MAC in the last flash sector */
-		uchar *board_mac_addr = (uchar *)0x203F0096;
-		if (is_valid_ethaddr(board_mac_addr)) {
-			memcpy(mac_addr, board_mac_addr, 6);
-			valid_mac = true;
-		}
-	}
-
-	if (!valid_mac) {
-		puts("Warning: Generating 'random' MAC address\n");
-		net_random_ethaddr(mac_addr);
-	}
-
-	eth_setenv_enetaddr("ethaddr", mac_addr);
 }
 
 int board_eth_init(bd_t *bis)
diff --git a/board/bf527-ezkit/bf527-ezkit.c b/board/bf527-ezkit/bf527-ezkit.c
index 257775f3c8..b551d4ed7e 100644
--- a/board/bf527-ezkit/bf527-ezkit.c
+++ b/board/bf527-ezkit/bf527-ezkit.c
@@ -27,8 +27,6 @@ int checkboard(void)
 #ifdef CONFIG_BFIN_MAC
 static void board_init_enetaddr(uchar *mac_addr)
 {
-	bool valid_mac = false;
-
 	/* the MAC is stored in OTP memory page 0xDF */
 	uint32_t ret;
 	uint64_t otp_mac;
@@ -41,15 +39,8 @@ static void board_init_enetaddr(uchar *mac_addr)
 			mac_addr[ret] = otp_mac_p[5 - ret];
 
 		if (is_valid_ethaddr(mac_addr))
-			valid_mac = true;
+			eth_setenv_enetaddr("ethaddr", mac_addr);
 	}
-
-	if (!valid_mac) {
-		puts("Warning: Generating 'random' MAC address\n");
-		net_random_ethaddr(mac_addr);
-	}
-
-	eth_setenv_enetaddr("ethaddr", mac_addr);
 }
 
 int board_eth_init(bd_t *bis)
diff --git a/board/bf537-minotaur/bf537-minotaur.c b/board/bf537-minotaur/bf537-minotaur.c
index 71b4293ad6..9312216dc7 100644
--- a/board/bf537-minotaur/bf537-minotaur.c
+++ b/board/bf537-minotaur/bf537-minotaur.c
@@ -23,26 +23,8 @@ int checkboard(void)
 }
 
 #ifdef CONFIG_BFIN_MAC
-static void board_init_enetaddr(uchar *mac_addr)
-{
-	puts("Warning: Generating 'random' MAC address\n");
-	net_random_ethaddr(mac_addr);
-	eth_setenv_enetaddr("ethaddr", mac_addr);
-}
-
 int board_eth_init(bd_t *bis)
 {
 	return bfin_EMAC_initialize(bis);
 }
 #endif
-
-int misc_init_r(void)
-{
-#ifdef CONFIG_BFIN_MAC
-	uchar enetaddr[6];
-	if (!eth_getenv_enetaddr("ethaddr", enetaddr))
-		board_init_enetaddr(enetaddr);
-#endif
-
-	return 0;
-}
diff --git a/board/bf537-pnav/bf537-pnav.c b/board/bf537-pnav/bf537-pnav.c
index 93522df56c..6739fe1ed6 100644
--- a/board/bf537-pnav/bf537-pnav.c
+++ b/board/bf537-pnav/bf537-pnav.c
@@ -23,26 +23,8 @@ int checkboard(void)
 }
 
 #ifdef CONFIG_BFIN_MAC
-static void board_init_enetaddr(uchar *mac_addr)
-{
-	puts("Warning: Generating 'random' MAC address\n");
-	net_random_ethaddr(mac_addr);
-	eth_setenv_enetaddr("ethaddr", mac_addr);
-}
-
 int board_eth_init(bd_t *bis)
 {
 	return bfin_EMAC_initialize(bis);
 }
 #endif
-
-int misc_init_r(void)
-{
-#ifdef CONFIG_BFIN_MAC
-	uchar enetaddr[6];
-	if (!eth_getenv_enetaddr("ethaddr", enetaddr))
-		board_init_enetaddr(enetaddr);
-#endif
-
-	return 0;
-}
diff --git a/board/bf537-srv1/bf537-srv1.c b/board/bf537-srv1/bf537-srv1.c
index 6581028294..b0ffe1aeea 100644
--- a/board/bf537-srv1/bf537-srv1.c
+++ b/board/bf537-srv1/bf537-srv1.c
@@ -23,26 +23,8 @@ int checkboard(void)
 }
 
 #ifdef CONFIG_BFIN_MAC
-static void board_init_enetaddr(uchar *mac_addr)
-{
-	puts("Warning: Generating 'random' MAC address\n");
-	net_random_ethaddr(mac_addr);
-	eth_setenv_enetaddr("ethaddr", mac_addr);
-}
-
 int board_eth_init(bd_t *bis)
 {
 	return bfin_EMAC_initialize(bis);
 }
 #endif
-
-int misc_init_r(void)
-{
-#ifdef CONFIG_BFIN_MAC
-	uchar enetaddr[6];
-	if (!eth_getenv_enetaddr("ethaddr", enetaddr))
-		board_init_enetaddr(enetaddr);
-#endif
-
-	return 0;
-}
diff --git a/board/bf537-stamp/bf537-stamp.c b/board/bf537-stamp/bf537-stamp.c
index 66e54925da..85d41d0aaa 100644
--- a/board/bf537-stamp/bf537-stamp.c
+++ b/board/bf537-stamp/bf537-stamp.c
@@ -29,28 +29,14 @@ int checkboard(void)
 #ifdef CONFIG_BFIN_MAC
 static void board_init_enetaddr(uchar *mac_addr)
 {
-#ifdef CONFIG_SYS_NO_FLASH
-# define USE_MAC_IN_FLASH 0
-#else
-# define USE_MAC_IN_FLASH 1
+#ifndef CONFIG_SYS_NO_FLASH
+	/* we cram the MAC in the last flash sector */
+	uchar *board_mac_addr = (uchar *)0x203F0000;
+	if (is_valid_ethaddr(board_mac_addr)) {
+		memcpy(mac_addr, board_mac_addr, 6);
+		eth_setenv_enetaddr("ethaddr", mac_addr);
+	}
 #endif
-	bool valid_mac = false;
-
-	if (USE_MAC_IN_FLASH) {
-		/* we cram the MAC in the last flash sector */
-		uchar *board_mac_addr = (uchar *)0x203F0000;
-		if (is_valid_ethaddr(board_mac_addr)) {
-			memcpy(mac_addr, board_mac_addr, 6);
-			valid_mac = true;
-		}
-	}
-
-	if (!valid_mac) {
-		puts("Warning: Generating 'random' MAC address\n");
-		net_random_ethaddr(mac_addr);
-	}
-
-	eth_setenv_enetaddr("ethaddr", mac_addr);
 }
 
 int board_eth_init(bd_t *bis)
diff --git a/board/buffalo/lsxl/lsxl.c b/board/buffalo/lsxl/lsxl.c
index 487875c23a..45dd788805 100644
--- a/board/buffalo/lsxl/lsxl.c
+++ b/board/buffalo/lsxl/lsxl.c
@@ -230,16 +230,6 @@ static void rescue_mode(void)
 	uchar enetaddr[6];
 
 	printf("Entering rescue mode..\n");
-#ifdef CONFIG_RANDOM_MACADDR
-	if (!eth_getenv_enetaddr("ethaddr", enetaddr)) {
-		net_random_ethaddr(enetaddr);
-		if (eth_setenv_enetaddr("ethaddr", enetaddr)) {
-			printf("Failed to set ethernet address\n");
-				set_led(LED_ALARM_BLINKING);
-			return;
-		}
-	}
-#endif
 	setenv("bootsource", "rescue");
 }
 
diff --git a/board/cm-bf527/cm-bf527.c b/board/cm-bf527/cm-bf527.c
index 2871fa2d6a..3186c6717e 100644
--- a/board/cm-bf527/cm-bf527.c
+++ b/board/cm-bf527/cm-bf527.c
@@ -26,8 +26,6 @@ int checkboard(void)
 #ifdef CONFIG_BFIN_MAC
 static void board_init_enetaddr(uchar *mac_addr)
 {
-	bool valid_mac = false;
-
 	/* the MAC is stored in OTP memory page 0xDF */
 	uint32_t ret;
 	uint64_t otp_mac;
@@ -40,15 +38,8 @@ static void board_init_enetaddr(uchar *mac_addr)
 			mac_addr[ret] = otp_mac_p[5 - ret];
 
 		if (is_valid_ethaddr(mac_addr))
-			valid_mac = true;
+			eth_setenv_enetaddr("ethaddr", mac_addr);
 	}
-
-	if (!valid_mac) {
-		puts("Warning: Generating 'random' MAC address\n");
-		net_random_ethaddr(mac_addr);
-	}
-
-	eth_setenv_enetaddr("ethaddr", mac_addr);
 }
 
 int board_eth_init(bd_t *bis)
diff --git a/board/cm-bf537e/cm-bf537e.c b/board/cm-bf537e/cm-bf537e.c
index 902611ec01..57c72a2c06 100644
--- a/board/cm-bf537e/cm-bf537e.c
+++ b/board/cm-bf537e/cm-bf537e.c
@@ -23,18 +23,6 @@ int checkboard(void)
 	return 0;
 }
 
-static void board_init_enetaddr(char *var)
-{
-	uchar enetaddr[6];
-
-	if (eth_getenv_enetaddr(var, enetaddr))
-		return;
-
-	printf("Warning: %s: generating 'random' MAC address\n", var);
-	net_random_ethaddr(enetaddr);
-	eth_setenv_enetaddr(var, enetaddr);
-}
-
 #ifndef CONFIG_BFIN_MAC
 # define bfin_EMAC_initialize(x) 1
 #endif
@@ -50,9 +38,6 @@ int board_eth_init(bd_t *bis)
 
 int misc_init_r(void)
 {
-	board_init_enetaddr("ethaddr");
-	board_init_enetaddr("eth1addr");
-
 	gpio_cfi_flash_init();
 
 	return 0;
diff --git a/board/cm-bf537u/cm-bf537u.c b/board/cm-bf537u/cm-bf537u.c
index 69bffd76de..f365cdbeb7 100644
--- a/board/cm-bf537u/cm-bf537u.c
+++ b/board/cm-bf537u/cm-bf537u.c
@@ -23,18 +23,6 @@ int checkboard(void)
 	return 0;
 }
 
-static void board_init_enetaddr(char *var)
-{
-	uchar enetaddr[6];
-
-	if (eth_getenv_enetaddr(var, enetaddr))
-		return;
-
-	printf("Warning: %s: generating 'random' MAC address\n", var);
-	net_random_ethaddr(enetaddr);
-	eth_setenv_enetaddr(var, enetaddr);
-}
-
 #ifndef CONFIG_BFIN_MAC
 # define bfin_EMAC_initialize(x) 1
 #endif
@@ -50,9 +38,6 @@ int board_eth_init(bd_t *bis)
 
 int misc_init_r(void)
 {
-	board_init_enetaddr("ethaddr");
-	board_init_enetaddr("eth1addr");
-
 	gpio_cfi_flash_init();
 
 	return 0;
diff --git a/board/dnp5370/dnp5370.c b/board/dnp5370/dnp5370.c
index 655fcace2b..ae9ba84dc2 100644
--- a/board/dnp5370/dnp5370.c
+++ b/board/dnp5370/dnp5370.c
@@ -36,28 +36,14 @@ int checkboard(void)
 #ifdef CONFIG_BFIN_MAC
 static void board_init_enetaddr(uchar *mac_addr)
 {
-#ifdef CONFIG_SYS_NO_FLASH
-# define USE_MAC_IN_FLASH 0
-#else
-# define USE_MAC_IN_FLASH 1
+#ifndef CONFIG_SYS_NO_FLASH
+	/* we cram the MAC in the last flash sector */
+	uchar *board_mac_addr = (uchar *)0x202F0000;
+	if (is_valid_ethaddr(board_mac_addr)) {
+		memcpy(mac_addr, board_mac_addr, 6);
+		eth_setenv_enetaddr("ethaddr", mac_addr);
+	}
 #endif
-	bool valid_mac = false;
-
-	if (USE_MAC_IN_FLASH) {
-		/* we cram the MAC in the last flash sector */
-		uchar *board_mac_addr = (uchar *)0x202F0000;
-		if (is_valid_ethaddr(board_mac_addr)) {
-			memcpy(mac_addr, board_mac_addr, 6);
-			valid_mac = true;
-		}
-	}
-
-	if (!valid_mac) {
-		puts("Warning: Generating 'random' MAC address\n");
-		net_random_ethaddr(mac_addr);
-	}
-
-	eth_setenv_enetaddr("ethaddr", mac_addr);
 }
 
 int board_eth_init(bd_t *bis)
diff --git a/board/ip04/ip04.c b/board/ip04/ip04.c
index d20500f4df..70765bce50 100644
--- a/board/ip04/ip04.c
+++ b/board/ip04/ip04.c
@@ -26,16 +26,4 @@ int board_eth_init(bd_t *bis)
 {
 	return dm9000_initialize(bis);
 }
-
-int misc_init_r(void)
-{
-	uchar enetaddr[6];
-	if (!eth_getenv_enetaddr("ethaddr", enetaddr)) {
-		puts("Warning: Generating 'random' MAC address\n");
-		net_random_ethaddr(enetaddr);
-		eth_setenv_enetaddr("ethaddr", enetaddr);
-	}
-
-	return 0;
-}
 #endif
diff --git a/board/tcm-bf518/tcm-bf518.c b/board/tcm-bf518/tcm-bf518.c
index 3fa7d972ea..4348678aeb 100644
--- a/board/tcm-bf518/tcm-bf518.c
+++ b/board/tcm-bf518/tcm-bf518.c
@@ -23,52 +23,12 @@ int checkboard(void)
 }
 
 #if defined(CONFIG_BFIN_MAC)
-static void board_init_enetaddr(uchar *mac_addr)
-{
-	bool valid_mac = false;
-
-#if 0
-	/* the MAC is stored in OTP memory page 0xDF */
-	uint32_t ret;
-	uint64_t otp_mac;
-
-	ret = bfrom_OtpRead(0xDF, OTP_LOWER_HALF, &otp_mac);
-	if (!(ret & OTP_MASTER_ERROR)) {
-		uchar *otp_mac_p = (uchar *)&otp_mac;
-
-		for (ret = 0; ret < 6; ++ret)
-			mac_addr[ret] = otp_mac_p[5 - ret];
-
-		if (is_valid_ethaddr(mac_addr))
-			valid_mac = true;
-	}
-#endif
-
-	if (!valid_mac) {
-		puts("Warning: Generating 'random' MAC address\n");
-		net_random_ethaddr(mac_addr);
-	}
-
-	eth_setenv_enetaddr("ethaddr", mac_addr);
-}
-
 int board_eth_init(bd_t *bis)
 {
 	return bfin_EMAC_initialize(bis);
 }
 #endif
 
-int misc_init_r(void)
-{
-#ifdef CONFIG_BFIN_MAC
-	uchar enetaddr[6];
-	if (!eth_getenv_enetaddr("ethaddr", enetaddr))
-		board_init_enetaddr(enetaddr);
-#endif
-
-	return 0;
-}
-
 #ifdef CONFIG_BFIN_SDH
 int board_mmc_init(bd_t *bis)
 {
diff --git a/board/tcm-bf537/tcm-bf537.c b/board/tcm-bf537/tcm-bf537.c
index 2531a44336..2cf70cab15 100644
--- a/board/tcm-bf537/tcm-bf537.c
+++ b/board/tcm-bf537/tcm-bf537.c
@@ -23,18 +23,6 @@ int checkboard(void)
 	return 0;
 }
 
-static void board_init_enetaddr(char *var)
-{
-	uchar enetaddr[6];
-
-	if (eth_getenv_enetaddr(var, enetaddr))
-		return;
-
-	printf("Warning: %s: generating 'random' MAC address\n", var);
-	net_random_ethaddr(enetaddr);
-	eth_setenv_enetaddr(var, enetaddr);
-}
-
 #ifndef CONFIG_BFIN_MAC
 # define bfin_EMAC_initialize(x) 1
 #endif
@@ -50,9 +38,6 @@ int board_eth_init(bd_t *bis)
 
 int misc_init_r(void)
 {
-	board_init_enetaddr("ethaddr");
-	board_init_enetaddr("eth1addr");
-
 	gpio_cfi_flash_init();
 
 	return 0;
diff --git a/configs/bct-brettl2_defconfig b/configs/bct-brettl2_defconfig
index 26b145d30a..84eb1febde 100644
--- a/configs/bct-brettl2_defconfig
+++ b/configs/bct-brettl2_defconfig
@@ -1,3 +1,4 @@
 CONFIG_BLACKFIN=y
-CONFIG_TARGET_BCT_BRETTL2=y
+CONFIG_NET=y
+CONFIG_NET_RANDOM_ETHADDR=y
 CONFIG_CC_OPTIMIZE_LIBS_FOR_SPEED=y
diff --git a/configs/bf518f-ezbrd_defconfig b/configs/bf518f-ezbrd_defconfig
index fb35ad023d..51f93f8456 100644
--- a/configs/bf518f-ezbrd_defconfig
+++ b/configs/bf518f-ezbrd_defconfig
@@ -1,3 +1,5 @@
 CONFIG_BLACKFIN=y
+CONFIG_NET=y
 CONFIG_TARGET_BF518F_EZBRD=y
+CONFIG_NET_RANDOM_ETHADDR=y
 CONFIG_CC_OPTIMIZE_LIBS_FOR_SPEED=y
diff --git a/configs/bf526-ezbrd_defconfig b/configs/bf526-ezbrd_defconfig
index da06d3ad6e..245faacfcc 100644
--- a/configs/bf526-ezbrd_defconfig
+++ b/configs/bf526-ezbrd_defconfig
@@ -1,3 +1,5 @@
 CONFIG_BLACKFIN=y
+CONFIG_NET=y
 CONFIG_TARGET_BF526_EZBRD=y
+CONFIG_NET_RANDOM_ETHADDR=y
 CONFIG_CC_OPTIMIZE_LIBS_FOR_SPEED=y
diff --git a/configs/bf527-ezkit_defconfig b/configs/bf527-ezkit_defconfig
index 69f6ef781b..0451c64391 100644
--- a/configs/bf527-ezkit_defconfig
+++ b/configs/bf527-ezkit_defconfig
@@ -1,3 +1,5 @@
 CONFIG_BLACKFIN=y
+CONFIG_NET=y
 CONFIG_TARGET_BF527_EZKIT=y
+CONFIG_NET_RANDOM_ETHADDR=y
 CONFIG_CC_OPTIMIZE_LIBS_FOR_SPEED=y
diff --git a/configs/bf537-minotaur_defconfig b/configs/bf537-minotaur_defconfig
index e76118fbd3..1f398a00d1 100644
--- a/configs/bf537-minotaur_defconfig
+++ b/configs/bf537-minotaur_defconfig
@@ -1,2 +1,4 @@
 CONFIG_BLACKFIN=y
+CONFIG_NET=y
 CONFIG_TARGET_BF537_MINOTAUR=y
+CONFIG_NET_RANDOM_ETHADDR=y
diff --git a/configs/bf537-pnav_defconfig b/configs/bf537-pnav_defconfig
index ba5eaaa392..63722589b8 100644
--- a/configs/bf537-pnav_defconfig
+++ b/configs/bf537-pnav_defconfig
@@ -1,2 +1,4 @@
 CONFIG_BLACKFIN=y
+CONFIG_NET=y
 CONFIG_TARGET_BF537_PNAV=y
+CONFIG_NET_RANDOM_ETHADDR=y
diff --git a/configs/bf537-srv1_defconfig b/configs/bf537-srv1_defconfig
index 61ac0e7d0e..f007c8269e 100644
--- a/configs/bf537-srv1_defconfig
+++ b/configs/bf537-srv1_defconfig
@@ -1,2 +1,4 @@
 CONFIG_BLACKFIN=y
+CONFIG_NET=y
 CONFIG_TARGET_BF537_SRV1=y
+CONFIG_NET_RANDOM_ETHADDR=y
diff --git a/configs/bf537-stamp_defconfig b/configs/bf537-stamp_defconfig
index 9b9a92f13f..50483b18ff 100644
--- a/configs/bf537-stamp_defconfig
+++ b/configs/bf537-stamp_defconfig
@@ -1,3 +1,5 @@
 CONFIG_BLACKFIN=y
+CONFIG_NET=y
 CONFIG_TARGET_BF537_STAMP=y
+CONFIG_NET_RANDOM_ETHADDR=y
 CONFIG_CC_OPTIMIZE_LIBS_FOR_SPEED=y
diff --git a/configs/cm-bf527_defconfig b/configs/cm-bf527_defconfig
index a6830b54fd..5bceb17bc9 100644
--- a/configs/cm-bf527_defconfig
+++ b/configs/cm-bf527_defconfig
@@ -1,3 +1,5 @@
 CONFIG_BLACKFIN=y
+CONFIG_NET=y
 CONFIG_TARGET_CM_BF527=y
+CONFIG_NET_RANDOM_ETHADDR=y
 CONFIG_CC_OPTIMIZE_LIBS_FOR_SPEED=y
diff --git a/configs/cm-bf537e_defconfig b/configs/cm-bf537e_defconfig
index a44eab7f0d..fd9dd00d3e 100644
--- a/configs/cm-bf537e_defconfig
+++ b/configs/cm-bf537e_defconfig
@@ -1,3 +1,5 @@
 CONFIG_BLACKFIN=y
+CONFIG_NET=y
 CONFIG_TARGET_CM_BF537E=y
+CONFIG_NET_RANDOM_ETHADDR=y
 CONFIG_CC_OPTIMIZE_LIBS_FOR_SPEED=y
diff --git a/configs/cm-bf537u_defconfig b/configs/cm-bf537u_defconfig
index 29c33b9514..4a8f123bb0 100644
--- a/configs/cm-bf537u_defconfig
+++ b/configs/cm-bf537u_defconfig
@@ -1,3 +1,5 @@
 CONFIG_BLACKFIN=y
+CONFIG_NET=y
 CONFIG_TARGET_CM_BF537U=y
+CONFIG_NET_RANDOM_ETHADDR=y
 CONFIG_CC_OPTIMIZE_LIBS_FOR_SPEED=y
diff --git a/configs/dnp5370_defconfig b/configs/dnp5370_defconfig
index 0c00087631..c7104caef8 100644
--- a/configs/dnp5370_defconfig
+++ b/configs/dnp5370_defconfig
@@ -1,2 +1,4 @@
 CONFIG_BLACKFIN=y
+CONFIG_NET=y
 CONFIG_TARGET_DNP5370=y
+CONFIG_NET_RANDOM_ETHADDR=y
diff --git a/configs/ip04_defconfig b/configs/ip04_defconfig
index ba737aedfb..69110a3cb7 100644
--- a/configs/ip04_defconfig
+++ b/configs/ip04_defconfig
@@ -1,3 +1,5 @@
 CONFIG_BLACKFIN=y
+CONFIG_NET=y
 CONFIG_TARGET_IP04=y
+CONFIG_NET_RANDOM_ETHADDR=y
 CONFIG_CC_OPTIMIZE_LIBS_FOR_SPEED=y
diff --git a/configs/lschlv2_defconfig b/configs/lschlv2_defconfig
index efd8fcaa48..31452a3463 100644
--- a/configs/lschlv2_defconfig
+++ b/configs/lschlv2_defconfig
@@ -1,4 +1,6 @@
 CONFIG_ARM=y
 CONFIG_KIRKWOOD=y
 CONFIG_TARGET_LSXL=y
+CONFIG_NET=y
 CONFIG_SYS_EXTRA_OPTIONS="LSCHLV2"
+CONFIG_NET_RANDOM_ETHADDR=y
diff --git a/configs/lsxhl_defconfig b/configs/lsxhl_defconfig
index bb3a80e873..00f48bcc47 100644
--- a/configs/lsxhl_defconfig
+++ b/configs/lsxhl_defconfig
@@ -1,4 +1,6 @@
 CONFIG_ARM=y
 CONFIG_KIRKWOOD=y
 CONFIG_TARGET_LSXL=y
+CONFIG_NET=y
 CONFIG_SYS_EXTRA_OPTIONS="LSXHL"
+CONFIG_NET_RANDOM_ETHADDR=y
diff --git a/configs/tcm-bf518_defconfig b/configs/tcm-bf518_defconfig
index 0c9ae4d57e..f16d863435 100644
--- a/configs/tcm-bf518_defconfig
+++ b/configs/tcm-bf518_defconfig
@@ -1,3 +1,5 @@
 CONFIG_BLACKFIN=y
+CONFIG_NET=y
 CONFIG_TARGET_TCM_BF518=y
+CONFIG_NET_RANDOM_ETHADDR=y
 CONFIG_CC_OPTIMIZE_LIBS_FOR_SPEED=y
diff --git a/configs/tcm-bf537_defconfig b/configs/tcm-bf537_defconfig
index 6d604b6c9e..7f3a3a67a6 100644
--- a/configs/tcm-bf537_defconfig
+++ b/configs/tcm-bf537_defconfig
@@ -1,3 +1,5 @@
 CONFIG_BLACKFIN=y
+CONFIG_NET=y
 CONFIG_TARGET_TCM_BF537=y
+CONFIG_NET_RANDOM_ETHADDR=y
 CONFIG_CC_OPTIMIZE_LIBS_FOR_SPEED=y
diff --git a/drivers/net/dm9000x.c b/drivers/net/dm9000x.c
index ccd2131f88..3c41cec3e4 100644
--- a/drivers/net/dm9000x.c
+++ b/drivers/net/dm9000x.c
@@ -343,13 +343,7 @@ static int dm9000_init(struct eth_device *dev, bd_t *bd)
 
 	printf("MAC: %pM\n", dev->enetaddr);
 	if (!is_valid_ethaddr(dev->enetaddr)) {
-#ifdef CONFIG_RANDOM_MACADDR
-		printf("Bad MAC address (uninitialized EEPROM?), randomizing\n");
-		net_random_ethaddr(dev->enetaddr);
-		printf("MAC: %pM\n", dev->enetaddr);
-#else
 		printf("WARNING: Bad MAC address (uninitialized EEPROM?)\n");
-#endif
 	}
 
 	/* fill device MAC address registers */
diff --git a/drivers/net/ftmac110.c b/drivers/net/ftmac110.c
index 4bae9ad977..4f17015bc5 100644
--- a/drivers/net/ftmac110.c
+++ b/drivers/net/ftmac110.c
@@ -424,9 +424,6 @@ int ftmac110_initialize(bd_t *bis)
 	dev->send = ftmac110_send;
 	dev->recv = ftmac110_recv;
 
-	if (!eth_getenv_enetaddr_by_index("eth", card_nr, dev->enetaddr))
-		net_random_ethaddr(dev->enetaddr);
-
 	/* allocate tx descriptors (it must be 16 bytes aligned) */
 	chip->txd = dma_alloc_coherent(
 		sizeof(struct ftmac110_desc) * CFG_TXDES_NUM, &chip->txd_dma);
diff --git a/include/configs/bf537-minotaur.h b/include/configs/bf537-minotaur.h
index 6092f243b9..e705d08b3a 100644
--- a/include/configs/bf537-minotaur.h
+++ b/include/configs/bf537-minotaur.h
@@ -131,7 +131,6 @@
 #define CONFIG_SYS_LONGHELP		1
 #define CONFIG_CMDLINE_EDITING	1
 #define CONFIG_ENV_OVERWRITE	1
-#define CONFIG_MISC_INIT_R
 
 #define CONFIG_BAUDRATE		57600
 #define CONFIG_UART_CONSOLE	0
diff --git a/include/configs/bf537-pnav.h b/include/configs/bf537-pnav.h
index e853b7dd73..be11a85bc0 100644
--- a/include/configs/bf537-pnav.h
+++ b/include/configs/bf537-pnav.h
@@ -148,7 +148,6 @@
  * Misc Settings
  */
 #define CONFIG_BAUDRATE		115200
-#define CONFIG_MISC_INIT_R
 #define CONFIG_RTC_BFIN
 #define CONFIG_UART_CONSOLE	0
 
diff --git a/include/configs/bf537-srv1.h b/include/configs/bf537-srv1.h
index ba2ea2a27a..9a7edf36b6 100644
--- a/include/configs/bf537-srv1.h
+++ b/include/configs/bf537-srv1.h
@@ -130,7 +130,6 @@
 #define CONFIG_SYS_LONGHELP		1
 #define CONFIG_CMDLINE_EDITING	1
 #define CONFIG_ENV_OVERWRITE	1
-#define CONFIG_MISC_INIT_R
 
 #define CONFIG_BAUDRATE		115200
 #define CONFIG_UART_CONSOLE	0
diff --git a/include/configs/ip04.h b/include/configs/ip04.h
index 2ee215f706..2bd81fc5cf 100644
--- a/include/configs/ip04.h
+++ b/include/configs/ip04.h
@@ -131,7 +131,6 @@
  * Misc Settings
  */
 #define CONFIG_BAUDRATE		115200
-#define CONFIG_MISC_INIT_R	/* needed for MAC address */
 #define CONFIG_UART_CONSOLE	0
 
 #undef CONFIG_SHOW_BOOT_PROGRESS
diff --git a/include/configs/lsxl.h b/include/configs/lsxl.h
index c354c29296..490f84eb75 100644
--- a/include/configs/lsxl.h
+++ b/include/configs/lsxl.h
@@ -37,7 +37,6 @@
 #define CONFIG_MISC_INIT_R
 #define CONFIG_SHOW_BOOT_PROGRESS
 
-#define CONFIG_RANDOM_MACADDR
 #define CONFIG_LIB_RAND
 #define CONFIG_KIRKWOOD_GPIO
 #define CONFIG_OF_LIBFDT
diff --git a/include/configs/tcm-bf518.h b/include/configs/tcm-bf518.h
index d4c89b6fce..e726b29da5 100644
--- a/include/configs/tcm-bf518.h
+++ b/include/configs/tcm-bf518.h
@@ -109,7 +109,6 @@
  * Misc Settings
  */
 #define CONFIG_BAUDRATE		115200
-#define CONFIG_MISC_INIT_R
 #define CONFIG_RTC_BFIN
 #define CONFIG_UART_CONSOLE	0
 #define CONFIG_BOOTCOMMAND	"run flashboot"