diff --git a/board/bct-brettl2/bct-brettl2.c b/board/bct-brettl2/bct-brettl2.c
index 1f0dfb4d403e6dc97194ff4ad3f97fb49d89885a..bf7cd62954bd457fb56a1c24fa4ea9cbd7b159aa 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 8ecfbb28c9a98466ffdad9a7b23318a5f9b852ff..bf4a7db03d6d2bf231d23d5c7087dc07b0c485cf 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
-#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);
+#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);
 	}
-
-	eth_setenv_enetaddr("ethaddr", mac_addr);
+#endif
 }
 
 /* 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 0a88491e902f8ffcfc360e7ca77931efc7e8e864..db1ee283f250e8dfdaacf94df26d9fa200bbef4d 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
-#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);
+#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);
 	}
-
-	eth_setenv_enetaddr("ethaddr", mac_addr);
+#endif
 }
 
 int board_eth_init(bd_t *bis)
diff --git a/board/bf527-ezkit/bf527-ezkit.c b/board/bf527-ezkit/bf527-ezkit.c
index 257775f3c87e9ff01b58fbd9dc9b25781c5a6a0b..b551d4ed7e34ece6c2c31c741e561d819a8d7bcc 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;
-	}
-
-	if (!valid_mac) {
-		puts("Warning: Generating 'random' MAC address\n");
-		net_random_ethaddr(mac_addr);
+			eth_setenv_enetaddr("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 71b4293ad62240474036224fbb6df9bbc9acc385..9312216dc74667eb890016c47ebe2e60b7371a49 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 93522df56c35542b79a6dff1bc09821f03c95603..6739fe1ed61fe874f887d410c6534e7b2948dd2b 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 6581028294fc743775a0a872abf71eab6ced1a3b..b0ffe1aeea1a9cf285cdac9016cb88bbae7391c2 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 66e54925daefa66d53d519b1c79d5364f6231502..85d41d0aaae4de44bccd7ceeaaac4f879920a5d9 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
-#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);
+#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);
 	}
-
-	eth_setenv_enetaddr("ethaddr", mac_addr);
+#endif
 }
 
 int board_eth_init(bd_t *bis)
diff --git a/board/buffalo/lsxl/lsxl.c b/board/buffalo/lsxl/lsxl.c
index 487875c23a15e96f1d4e18d15ec05021e5cd68f3..45dd7888051b640cdac49a292d769919208f8b19 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 2871fa2d6a7307ac10c16b8aa61cad810b641d4a..3186c6717effa985158e3c578d62c1d4f4578b42 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;
-	}
-
-	if (!valid_mac) {
-		puts("Warning: Generating 'random' MAC address\n");
-		net_random_ethaddr(mac_addr);
+			eth_setenv_enetaddr("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 902611ec016aa25e7d89b4eea6aa542666d9aff2..57c72a2c06778909837a454ff4a6ea4554e93b19 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 69bffd76de892765c7e7c1d8eff43af3ebfbc6fd..f365cdbeb776d7fbd607d15b82274b1f15ccac5f 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 655fcace2b8f0e9e1a6db89590b60824de028c05..ae9ba84dc2490f63c8cc9559f775310df0dd250d 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
-#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);
+#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);
 	}
-
-	eth_setenv_enetaddr("ethaddr", mac_addr);
+#endif
 }
 
 int board_eth_init(bd_t *bis)
diff --git a/board/ip04/ip04.c b/board/ip04/ip04.c
index d20500f4df53aed084f47b7a539e22a90d18669f..70765bce50de3ddfb08dac2362442aa01cef709f 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 3fa7d972eafa25b1d3094ec96217e6d782a85e39..4348678aebcd86daa05ef1d5df3cca778519c76a 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 2531a4433640d70a6df73179f5a069fd4af90b58..2cf70cab1518b06d271555cf90303c7e57571596 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 26b145d30a1247153c2432685ae8ae27d1014c4c..84eb1febde57c109a7c8fabe61be8c4fdd9717af 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 fb35ad023dbba91dbd1ccbf8bb3c4ff5248313fe..51f93f845645025e2816311e5a53352e71f9e5f0 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 da06d3ad6eea05f0a07955036ca858886290f65b..245faacfccc9f4b396e765edca6c5d3c1975b6f4 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 69f6ef781b9cbabe6ffeaeba8193caa6285eb050..0451c6439134cecc81679d0ccbacdbc1851812eb 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 e76118fbd3b8d2d95c0e345654ea12acfcd942bc..1f398a00d1b3160108b2007e3b5f78b524be8ffe 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 ba5eaaa392b19c2ff1d2256d94406e5123bd5d05..63722589b8813c01a3eced455201f8bcf5fcebfb 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 61ac0e7d0e1a1eb6e3fa67e89f57f931f1560990..f007c8269eb426c603d1fbcac4b887ecc2eedda9 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 9b9a92f13fa79591f6f14e8a489ae8969900d8cf..50483b18ffa031a79435ec77bf43848f2c8c0ab5 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 a6830b54fd396b019dd884bdb200d147d379caea..5bceb17bc9993199e354bb7e5dd33d20099b8eab 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 a44eab7f0da6b1e82b53b2e7f7e2d08a0b61a841..fd9dd00d3e592afe2d8861df218f9e7a6dc34743 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 29c33b95144aa403569afd40a50075478e13559a..4a8f123bb0f8eafa388d0f2b1ace772bfbad2307 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 0c000876314dac4b4eefd20d70984e67e4c5843f..c7104caef84cb8e8708af53d85d8e3f7e8e8406b 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 ba737aedfbe46cd0e2d4db912de04858699cc1ff..69110a3cb7f74ce702dd2a107780924f22c2696e 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 efd8fcaa4855b0cecf6f1badd070750f96aceac6..31452a3463e73b6b938035f1c4bf68b189c196f6 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 bb3a80e8739731b3dbf0dc97032e6076976cff37..00f48bcc47bffa352a430afb833e7f98f9714296 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 0c9ae4d57e7917a55869dc997ff421804e8fcbf2..f16d863435cd00783a38abc7e13c0bda650a7bd8 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 6d604b6c9e4af2cec8f25ae9b61a2f2560afd089..7f3a3a67a626bdd82538b1913a12fcc1084cf301 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 ccd2131f88f156eb61b03bc241e4b505b50d66c8..3c41cec3e4d30f8b28d71a7f077a61232e302972 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 4bae9ad977c388de2aeb6cd1b25a1d8fd8518ab5..4f17015bc593edece051b70e6a508e7812740f32 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 6092f243b9a83dfeb8769614fbdc635acf8d0a0c..e705d08b3a4d4a83b996fdf894dde7811b676ddb 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 e853b7dd73cc180e9eef563998a0d78c4d5c59c7..be11a85bc0067945177fb6af8be09cef59349748 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 ba2ea2a27a4a89ba8c42582ef2b37c53ebb5eef9..9a7edf36b6be34cdf778d1404bfc0bc7c899d4d1 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 2ee215f70614dfb44b7179e8247dc2936329e768..2bd81fc5cf2b1f4bf5e9e8b892f1cda63329ca47 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 c354c292960ad511049e4acbe4f0fac5ee673d1d..490f84eb7528eb582268952e7755a0bec9855a08 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 d4c89b6fce662f419b9cc9c890385d6f7c841317..e726b29da561c2be88ea340812b75e8337b6650d 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"