diff --git a/target/linux/ramips/base-files/etc/uci-defaults/02_network b/target/linux/ramips/base-files/etc/uci-defaults/02_network
index 5ee2381e94df452300b7e3b0b29c415672ca78c2..79ad4b885f6abceee6e466395b813f223180c51e 100755
--- a/target/linux/ramips/base-files/etc/uci-defaults/02_network
+++ b/target/linux/ramips/base-files/etc/uci-defaults/02_network
@@ -163,64 +163,30 @@ ramips_setup_macs()
 	local wan_mac=""
 
 	case $board in
-	all0256n | \
-	all5002 | \
-	dir-615-h1)
-		lan_mac=$(mtd_get_mac_binary factory 40)
-		;;
-	3g-6200n | \
-	3g300m | \
-	w150m | \
-	air3gii | \
-	argus-atp52b | \
-	bc2 | \
-	br6425 | \
-	broadway | \
-	dir-620-d1 | \
-	f5d8235-v1 | \
-	ip2202 | \
-	mpr-a1 | \
-	mpr-a2 | \
-	dir-300-b7 | \
-	dir-320-b1 | \
-	mzk-w300nh2 | \
-	nw718 | \
-	psr-680w | \
-	rt-n15 | \
-	sl-r7205 | \
-	wmr300 | \
-	wl-351)
-		lan_mac=$(mtd_get_mac_binary factory 4)
+	*)
 		wan_mac=$(macaddr_add "$lan_mac" 1)
 		;;
 
-	asl26555)
-		lan_mac=$(mtd_get_mac_binary devdata 16388)
-		;;
-
 	w306r-v20)
-		lan_mac=$(mtd_get_mac_binary factory 4)
 		wan_mac=$(macaddr_add "$lan_mac" 5)
 		;;
 
-	rt-n13u | \
-	hg255d	| \
-	fonera20n | \
-	dir-810l)
-		lan_mac=$(mtd_get_mac_binary factory 40)
-		wan_mac=$(macaddr_add "$lan_mac" 1)
+	tew-691gr)
+		wan_mac=$(macaddr_add "$lan_mac" 3)
 		;;
 
-	dir-300-b1 |\
-	dir-300-b2 |\
-	dir-600-b1 |\
-	dir-610-a1)
-		lan_mac=$(mtd_get_mac_binary devdata 16388)
-		wan_mac=$(macaddr_add "$lan_mac" 1)
+	tew-692gr)
+		wan_mac=$(macaddr_add "$lan_mac" 4)
+		;;
+
+	m3 |\
+	m4 |\
+	x5 |\
+	x8)
+		lan_mac=$(macaddr_add "$lan_mac" -1)
 		;;
 
 	dir-620-a1)
-		lan_mac=$(mtd_get_mac_binary factory 4)
 		lan_mac=$(macaddr_setbit_la "$lan_mac")
 		wan_mac=$(macaddr_add "$lan_mac" 1)
 		;;
@@ -230,57 +196,20 @@ ramips_setup_macs()
 		wan_mac=$(mtd_get_mac_ascii nvram wanmac)
 		;;
 
-	esr-9753 | \
-	ur-326n4g | \
-	ur-336un)
-		lan_mac=$(mtd_get_mac_binary devdata 16388)
-		wan_mac=$(macaddr_add "$lan_mac" 1)
-		;;
-
-	m3 |\
-	m4 |\
-	x5 |\
-	x8)
-		lan_mac=$(mtd_get_mac_binary factory 4)
-		lan_mac=$(macaddr_add "$lan_mac" -1)
-		;;
-
 	nbg-419n | \
 	wcr-150gn)
-                lan_mac=$(mtd_get_mac_binary factory 4)
                 wan_mac=$(mtd_get_mac_binary factory 40)
 		;;
 
-	omni-emb-hpm)
-		lan_mac=$(mtd_get_mac_binary factory 40)
-		;;
-
-	f5d8235-v2)
-		lan_mac=$(mtd_get_mac_binary "u-boot" 262148)
-		wan_mac=$(macaddr_add "$lan_mac" 1)
-		;;
-
 	rt-n56u)
-		lan_mac=$(mtd_get_mac_binary factory 4)
 		wan_mac=$(mtd_get_mac_binary factory 32772)
 		;;
 
-	tew-691gr)
-		lan_mac=$(mtd_get_mac_binary factory 40)
-		wan_mac=$(macaddr_add "$lan_mac" 3)
-		;;
-
-	tew-692gr)
-		lan_mac=$(mtd_get_mac_binary factory 40)
-		wan_mac=$(macaddr_add "$lan_mac" 4)
-		;;
-
 	all0239-3g | \
 	carambola | \
 	freestation5 | \
 	w502u | \
 	wnce2001)
-		lan_mac=$(mtd_get_mac_binary factory 40)
 		wan_mac=$(mtd_get_mac_binary factory 46)
 		;;
 
@@ -289,11 +218,6 @@ ramips_setup_macs()
 		wan_mac=$(macaddr_add "$lan_mac" 1)
 		;;
 
-	d105 | \
-	wli-tx4-ag300n)
-		lan_mac=$(mtd_get_mac_binary factory 4)
-		;;
-
 	esac
 
 	[ -n "$lan_mac" ] && ucidef_set_interface_macaddr lan $lan_mac
diff --git a/target/linux/ramips/dts/3G-6200N.dts b/target/linux/ramips/dts/3G-6200N.dts
index dc342439cea2b36ee54c09885321ec978cb994ea..0be8c7252c946a6e960d7e539f3ef54057b866d9 100644
--- a/target/linux/ramips/dts/3G-6200N.dts
+++ b/target/linux/ramips/dts/3G-6200N.dts
@@ -54,6 +54,10 @@
 		};
 	};
 
+	ethernet@10100000 {
+		mtd-mac-address = <&factory 0x4>;
+	};
+
 	esw@10110000 {
 		ralink,portmap = <0x2f>;
 	};
diff --git a/target/linux/ramips/dts/3G300M.dts b/target/linux/ramips/dts/3G300M.dts
index 62683cc16d971bbe0cd0e8392aef179891883a74..93e864f6a8ce283529244cf0b02de378166e0a27 100644
--- a/target/linux/ramips/dts/3G300M.dts
+++ b/target/linux/ramips/dts/3G300M.dts
@@ -97,6 +97,10 @@
 		};
 	};
 
+	ethernet@10100000 {
+		mtd-mac-address = <&factory 0x4>;
+	};
+
 	esw@10110000 {
 		ralink,portmap = <0x2f>;
 	};
diff --git a/target/linux/ramips/dts/AIR3GII.dts b/target/linux/ramips/dts/AIR3GII.dts
index f9fcf075e34e001c91740910267a40d58f501784..1276574e938288b1f4ceaa90656021b6de9eee1e 100644
--- a/target/linux/ramips/dts/AIR3GII.dts
+++ b/target/linux/ramips/dts/AIR3GII.dts
@@ -56,6 +56,10 @@
 		};
 	};
 
+	ethernet@10100000 {
+		mtd-mac-address = <&factory 0x4>;
+	};
+
 	esw@10110000 {
 		ralink,portmap = <0x2f>;
 	};
diff --git a/target/linux/ramips/dts/ALL0239-3G.dts b/target/linux/ramips/dts/ALL0239-3G.dts
index 335aea85b38c4ca617fa52469ffe1a2c80fe51e5..fe1eba960beab0ea8c260fad6d42528c247d934a 100644
--- a/target/linux/ramips/dts/ALL0239-3G.dts
+++ b/target/linux/ramips/dts/ALL0239-3G.dts
@@ -48,6 +48,10 @@
 		};
 	};
 
+	ethernet@10100000 {
+		mtd-mac-address = <&factory 0x28>;
+	};
+
 	esw@10110000 {
 		status = "okay";
 		ralink,portmap = <0x3e>;
diff --git a/target/linux/ramips/dts/ALL0256N-4M.dts b/target/linux/ramips/dts/ALL0256N-4M.dts
index 7351675b6520e3120da0ec0315a1d6135bf77831..e92118f17e43538913fd50a55eec3f4fdbc59a0e 100644
--- a/target/linux/ramips/dts/ALL0256N-4M.dts
+++ b/target/linux/ramips/dts/ALL0256N-4M.dts
@@ -56,6 +56,10 @@
 		};
 	};
 
+	ethernet@10100000 {
+		mtd-mac-address = <&factory 0x28>;
+	};
+
 	esw@10110000 {
 		ralink,portmap = <0x3f>;
 	};
diff --git a/target/linux/ramips/dts/ALL0256N-8M.dts b/target/linux/ramips/dts/ALL0256N-8M.dts
index 8c825a9154f28c8716ec64691df7747c66e6f244..6a704f1a24bb6662e184bd366df72fee3b7c078e 100644
--- a/target/linux/ramips/dts/ALL0256N-8M.dts
+++ b/target/linux/ramips/dts/ALL0256N-8M.dts
@@ -56,6 +56,10 @@
 		};
 	};
 
+	ethernet@10100000 {
+		mtd-mac-address = <&factory 0x28>;
+	};
+
 	esw@10110000 {
 		ralink,portmap = <0x3f>;
 	};
diff --git a/target/linux/ramips/dts/ALL5002.dts b/target/linux/ramips/dts/ALL5002.dts
index 60c9c1fc44a8d948dd4a3345c7cf6053406eb8a3..827e9df05b7a89cb144cf0463da78b993f91acc8 100644
--- a/target/linux/ramips/dts/ALL5002.dts
+++ b/target/linux/ramips/dts/ALL5002.dts
@@ -56,6 +56,10 @@
 		};
 	};
 
+	ethernet@10100000 {
+		mtd-mac-address = <&factory 0x28>;
+	};
+
 	esw@10110000 {
 		ralink,portmap = <0x3f>;
 	};
diff --git a/target/linux/ramips/dts/ARGUS_ATP52B.dts b/target/linux/ramips/dts/ARGUS_ATP52B.dts
index b8e246bb03bda6b00ab96c60e0b88dc9c6b1ee1a..fb04f017d5bd7563bd7ea347cc85609440787242 100644
--- a/target/linux/ramips/dts/ARGUS_ATP52B.dts
+++ b/target/linux/ramips/dts/ARGUS_ATP52B.dts
@@ -75,6 +75,10 @@
 		};
 	};
 
+	ethernet@10100000 {
+		mtd-mac-address = <&factory 0x4>;
+	};
+
 	esw@10110000 {
 		ralink,portmap = <0x3e>;
 	};
diff --git a/target/linux/ramips/dts/ASL26555-16M.dts b/target/linux/ramips/dts/ASL26555-16M.dts
index 8bc98df160612599dc28b7dc064a41ced1beb96a..8aeeba84f4396ba3563e77e67a644b67b31f2799 100644
--- a/target/linux/ramips/dts/ASL26555-16M.dts
+++ b/target/linux/ramips/dts/ASL26555-16M.dts
@@ -68,6 +68,10 @@
 		};
 	};
 
+	ethernet@10100000 {
+		mtd-mac-address = <&factory 0x4004>;
+	};
+
 	esw@10110000 {
 		ralink,portmap = <0x1e>;
 	};
diff --git a/target/linux/ramips/dts/ASL26555-8M.dts b/target/linux/ramips/dts/ASL26555-8M.dts
index f1501ebf11097441e6999ba6d3894761bcb6a5f3..1ddbb1c984d8f8738e338ded3441cba57664e393 100644
--- a/target/linux/ramips/dts/ASL26555-8M.dts
+++ b/target/linux/ramips/dts/ASL26555-8M.dts
@@ -26,8 +26,8 @@
 					reg = <0x0 0x30000>;
 					read-only;
 				};
-				partition@30000 {
-					label = "devdata";
+				factory: partition@30000 {
+					label = "factory";
 					reg = <0x30000 0x10000>;
 					read-only;
 				};
@@ -63,6 +63,10 @@
 		};
 	};
 
+	ethernet@10100000 {
+		mtd-mac-address = <&factory 0x4004>;
+	};
+
 	esw@10110000 {
 		ralink,portmap = <0x1e>;
 	};
diff --git a/target/linux/ramips/dts/BC2.dts b/target/linux/ramips/dts/BC2.dts
index 8877743d98f850ddeb73f5bc5b069e66621d1543..54adbafad687719d48637a642b955e4ed9302373 100644
--- a/target/linux/ramips/dts/BC2.dts
+++ b/target/linux/ramips/dts/BC2.dts
@@ -68,6 +68,10 @@
 		};
 	};
 
+	ethernet@10100000 {
+		mtd-mac-address = <&factory 0x4>;
+	};
+
 	esw@10110000 {
 		ralink,portmap = <0x2f>;
 	};
diff --git a/target/linux/ramips/dts/BR-6425.dts b/target/linux/ramips/dts/BR-6425.dts
index 913df051af39ef3909d96fec53a925760c8d5098..7df63c6583ea1aea7995119fa54a79b7e7b00f3f 100644
--- a/target/linux/ramips/dts/BR-6425.dts
+++ b/target/linux/ramips/dts/BR-6425.dts
@@ -25,6 +25,10 @@
 		#size-cells = <1>;
 	};
 
+	ethernet@10100000 {
+		mtd-mac-address = <&factory 0x4>;
+	};
+
 	esw@10110000 {
 		ralink,portmap = <0x2f>;
 	};
diff --git a/target/linux/ramips/dts/BROADWAY.dts b/target/linux/ramips/dts/BROADWAY.dts
index 3f00ad75be630907b824b79877d32ad24ed9c6b9..25e3b89db9bcca3cc90a186183f64cb5b190ca5e 100644
--- a/target/linux/ramips/dts/BROADWAY.dts
+++ b/target/linux/ramips/dts/BROADWAY.dts
@@ -48,6 +48,10 @@
 		};
 	};
 
+	ethernet@10100000 {
+		mtd-mac-address = <&factory 0x4>;
+	};
+
 	esw@10110000 {
 		ralink,portmap = <0x3e>;
 	};
diff --git a/target/linux/ramips/dts/CARAMBOLA.dts b/target/linux/ramips/dts/CARAMBOLA.dts
index 5c63e0315a29d089e383da47ddc1d6bc9141aa97..520450a5cc70e782b6e9fda71adaf3a966081fe1 100644
--- a/target/linux/ramips/dts/CARAMBOLA.dts
+++ b/target/linux/ramips/dts/CARAMBOLA.dts
@@ -52,6 +52,10 @@
 		};
 	};
 
+	ethernet@10100000 {
+		mtd-mac-address = <&factory 0x28>;
+	};
+
 	esw@10110000 {
 		ralink,portmap = <0x3f>;
 	};
diff --git a/target/linux/ramips/dts/D105.dts b/target/linux/ramips/dts/D105.dts
index c4171c003d481334894d7c4d560b414c90e69090..c19e0dabb0ffe364053c9beb1388a57a0d580ebf 100644
--- a/target/linux/ramips/dts/D105.dts
+++ b/target/linux/ramips/dts/D105.dts
@@ -72,6 +72,10 @@
 		};
 	};
 
+	ethernet@10100000 {
+		mtd-mac-address = <&factory 0x4>;
+	};
+
 	esw@10110000 {
 		ralink,portmap = <0x2f>;
 	};
diff --git a/target/linux/ramips/dts/DIR-300-B1.dts b/target/linux/ramips/dts/DIR-300-B1.dts
index 8efef3c0d9ff35b1f8242570574f7fe4f14125fe..4623af2a4072532a631f5fbe5d17e3388c70bcc3 100644
--- a/target/linux/ramips/dts/DIR-300-B1.dts
+++ b/target/linux/ramips/dts/DIR-300-B1.dts
@@ -48,6 +48,10 @@
 		};
 	};
 
+	ethernet@10100000 {
+		mtd-mac-address = <&factory 0x4004>;
+	};
+
 	esw@10110000 {
 		ralink,portmap = <0x2f>;
 	};
diff --git a/target/linux/ramips/dts/DIR-300-B7.dts b/target/linux/ramips/dts/DIR-300-B7.dts
index 22c4cb2c6b8ecb0d47987c7d5f177c80d4f67653..492fd4ce8ac47c47ed0450e7351982f4173e546d 100644
--- a/target/linux/ramips/dts/DIR-300-B7.dts
+++ b/target/linux/ramips/dts/DIR-300-B7.dts
@@ -52,6 +52,10 @@
 		};
 	};
 
+	ethernet@10100000 {
+		mtd-mac-address = <&factory 0x4>;
+	};
+
         esw@10110000 {
                 ralink,portmap = <0x2f>;
                 ralink,led_polarity = <0x17>;
diff --git a/target/linux/ramips/dts/DIR-320-B1.dts b/target/linux/ramips/dts/DIR-320-B1.dts
index f07e528bf538f51954d951b2104eea5810eb8490..34d7944edcb67685e38d48b9e5c4c7beb3eb9f66 100644
--- a/target/linux/ramips/dts/DIR-320-B1.dts
+++ b/target/linux/ramips/dts/DIR-320-B1.dts
@@ -52,6 +52,10 @@
 		};
 	};
 
+	ethernet@10100000 {
+		mtd-mac-address = <&factory 0x4>;
+	};
+
 	esw@10110000 {
 		ralink,portmap = <0x2f>;
 		ralink,led_polarity = <0x17>;
diff --git a/target/linux/ramips/dts/DIR-600-B1.dts b/target/linux/ramips/dts/DIR-600-B1.dts
index 2c75465440f21ac1ccf12a4e49990351d206ab9f..e43a0d78f0b1992e2ee9e59545343ff8ac529d66 100644
--- a/target/linux/ramips/dts/DIR-600-B1.dts
+++ b/target/linux/ramips/dts/DIR-600-B1.dts
@@ -48,6 +48,10 @@
 		};
 	};
 
+	ethernet@10100000 {
+		mtd-mac-address = <&factory 0x4004>;
+	};
+
 	esw@10110000 {
 		ralink,portmap = <0x2f>;
 	};
diff --git a/target/linux/ramips/dts/DIR-610-A1.dts b/target/linux/ramips/dts/DIR-610-A1.dts
index 67c92b469d437992f51d3188bf70ad19c5b6d3c8..e6c104163a7dc51fbdc869457baf554081db2fa4 100644
--- a/target/linux/ramips/dts/DIR-610-A1.dts
+++ b/target/linux/ramips/dts/DIR-610-A1.dts
@@ -52,6 +52,10 @@
 		};
 	};
 
+	ethernet@10100000 {
+		mtd-mac-address = <&factory 0x4004>;
+	};
+
 	esw@10110000 {
 		status = "okay";
 		ralink,portmap = <0x2f>;
diff --git a/target/linux/ramips/dts/DIR-615-H1.dts b/target/linux/ramips/dts/DIR-615-H1.dts
index 5cb2beb3e8779f8bf518e99e44bd5a0b619c37e1..13d7f88c70dec2b96dc121d4c39f8c61921ad2e2 100644
--- a/target/linux/ramips/dts/DIR-615-H1.dts
+++ b/target/linux/ramips/dts/DIR-615-H1.dts
@@ -60,6 +60,10 @@
 		};
 	};
 
+	ethernet@10100000 {
+		mtd-mac-address = <&factory 0x28>;
+	};
+
 	esw@10110000 {
 		ralink,portmap = <0x2f>;
 	};
diff --git a/target/linux/ramips/dts/DIR-620-A1.dts b/target/linux/ramips/dts/DIR-620-A1.dts
index 649b3abcc16bf4c72936688a565a77162c88bb39..070edafde1dccf02bd7a0ffdfe18dbac64bd1b1c 100644
--- a/target/linux/ramips/dts/DIR-620-A1.dts
+++ b/target/linux/ramips/dts/DIR-620-A1.dts
@@ -48,6 +48,10 @@
 		};
 	};
 
+	ethernet@10100000 {
+		mtd-mac-address = <&factory 0x4>;
+	};
+
 	esw@10110000 {
 		ralink,portmap = <0x2f>;
 	};
diff --git a/target/linux/ramips/dts/DIR-620-D1.dts b/target/linux/ramips/dts/DIR-620-D1.dts
index 71d3ec2bfdbf7a185ec27e5a669ef2d73ce603d9..c8632f067e8c54f9b8ce1a4822513dc9f90c34d2 100644
--- a/target/linux/ramips/dts/DIR-620-D1.dts
+++ b/target/linux/ramips/dts/DIR-620-D1.dts
@@ -60,6 +60,10 @@
 		};
 	};
 
+	ethernet@10100000 {
+		mtd-mac-address = <&factory 0x4>;
+	};
+
 	esw@10110000 {
 		ralink,portmap = <0x2f>;
 	};
diff --git a/target/linux/ramips/dts/DIR-810L.dts b/target/linux/ramips/dts/DIR-810L.dts
index 95017d9ccd4b4a206add659daa0f3a3e5cef5597..d8a035a1cf11badda04e98937beaa8c4fcbf3757 100644
--- a/target/linux/ramips/dts/DIR-810L.dts
+++ b/target/linux/ramips/dts/DIR-810L.dts
@@ -77,6 +77,10 @@
 		};
 	};
 
+	ethernet@10100000 {
+		mtd-mac-address = <&factory 0x28>;
+	};
+
 	gsw@10110000 {
 		ralink,port4 = "ephy";
 
diff --git a/target/linux/ramips/dts/ESR-9753.dts b/target/linux/ramips/dts/ESR-9753.dts
index 755196b55bc5dcc78381937bca7a22a5deb04816..3760a465e019932d2ac6da25b86b098260f75aec 100644
--- a/target/linux/ramips/dts/ESR-9753.dts
+++ b/target/linux/ramips/dts/ESR-9753.dts
@@ -77,6 +77,10 @@
 		};
 	};
 
+	ethernet@10100000 {
+		mtd-mac-address = <&factory 0x4004>;
+	};
+
 	esw@10110000 {
 		ralink,portmap = <0x3e>;
 	};
diff --git a/target/linux/ramips/dts/F5D8235_V1.dts b/target/linux/ramips/dts/F5D8235_V1.dts
index 36026c2326f5c669e150d2a33cad42b713bfb5a5..e0215651767afecadbdf44ff037faab6fcf245b3 100644
--- a/target/linux/ramips/dts/F5D8235_V1.dts
+++ b/target/linux/ramips/dts/F5D8235_V1.dts
@@ -55,6 +55,7 @@
 
 	ethernet@400000 {
 		status = "okay";
+		mtd-mac-address = <&factory 0x4>;
 
                 port@0 {
 			ralink,fixed-link = <1000 1 1 1>;
diff --git a/target/linux/ramips/dts/F5D8235_V2.dts b/target/linux/ramips/dts/F5D8235_V2.dts
index 237709f5e4882e05ad04a77b99b05edfa412c588..1b96cea764e310842975f34bea1ba64a62bbe431 100644
--- a/target/linux/ramips/dts/F5D8235_V2.dts
+++ b/target/linux/ramips/dts/F5D8235_V2.dts
@@ -24,7 +24,7 @@
 		#address-cells = <1>;
 		#size-cells = <1>;
 
-		partition@0 {
+		uboot: partition@0 {
 			label = "u-boot";
 			reg = <0x0 0x50000>;
 			read-only;
@@ -46,6 +46,10 @@
 		};
 	};
 
+	ethernet@10100000 {
+		mtd-mac-address = <&uboot 0x40004>;
+	};
+
 	esw@10110000 {
 		ralink,portmap = <0x3f>;
 	};
diff --git a/target/linux/ramips/dts/FONERA20N.dts b/target/linux/ramips/dts/FONERA20N.dts
index 5c48103231d3b5bc0198a8d5a5bd19f4688d01f5..bb85bab5337a68f97268120166e2400897f28ef8 100644
--- a/target/linux/ramips/dts/FONERA20N.dts
+++ b/target/linux/ramips/dts/FONERA20N.dts
@@ -82,6 +82,10 @@
 		};
 	};
 
+	ethernet@10100000 {
+		mtd-mac-address = <&factory 0x28>;
+	};
+
 	esw@10110000 {
 		ralink,portmap = <0x2f>;
 
diff --git a/target/linux/ramips/dts/FREESTATION5.dts b/target/linux/ramips/dts/FREESTATION5.dts
index 0ec390c4c8dcafe7089d7890e67fcd63ee9aca43..603ec363ea64d8d10b2828fa5c34c80f2400bd07 100644
--- a/target/linux/ramips/dts/FREESTATION5.dts
+++ b/target/linux/ramips/dts/FREESTATION5.dts
@@ -52,6 +52,10 @@
 		};
 	};
 
+	ethernet@10100000 {
+		mtd-mac-address = <&factory 0x28>;
+	};
+
 	esw@10110000 {
 		ralink,portmap = <0x01>;
 	};
diff --git a/target/linux/ramips/dts/HG255D.dts b/target/linux/ramips/dts/HG255D.dts
index 68e5e8aab894f076150fa81c347d64d5c4e9d1f1..7496ca5456d8193350944b7f2afc667528e52b0d 100644
--- a/target/linux/ramips/dts/HG255D.dts
+++ b/target/linux/ramips/dts/HG255D.dts
@@ -104,6 +104,10 @@
 		};
 	};
 
+	ethernet@10100000 {
+		mtd-mac-address = <&factory 0x28>;
+	};
+
 	esw@10110000 {
 		ralink,portmap = <0x2f>;
 	};
diff --git a/target/linux/ramips/dts/IP2202.dts b/target/linux/ramips/dts/IP2202.dts
index ea5dc780a37738b5031551fcba1ad814eab975a1..dc2af40364ec90e6904b69e8dc41945e0f8e4e36 100644
--- a/target/linux/ramips/dts/IP2202.dts
+++ b/target/linux/ramips/dts/IP2202.dts
@@ -48,6 +48,10 @@
 		};
 	};
 
+	ethernet@10100000 {
+		mtd-mac-address = <&factory 0x4>;
+	};
+
 	esw@10110000 {
 		ralink,portmap = <0x2f>;
 	};
diff --git a/target/linux/ramips/dts/M3.dts b/target/linux/ramips/dts/M3.dts
index bae84ce4bfdd77af8cb0899be0526a1987bde9d0..f3c3aa4d30ae0d5526c2b75929e23c9d3beb7260 100644
--- a/target/linux/ramips/dts/M3.dts
+++ b/target/linux/ramips/dts/M3.dts
@@ -52,6 +52,10 @@
 		};
 	};
 
+	ethernet@10100000 {
+		mtd-mac-address = <&factory 0x4>;
+	};
+
 	esw@10110000 {
 		ralink,portmap = <0x2f>;
 		ralink,led_polarity = <1>;
diff --git a/target/linux/ramips/dts/M4-4M.dts b/target/linux/ramips/dts/M4-4M.dts
index 4522fb8019dab62d84b9345e94721eac442fb6ad..2d2ebc47b059c7ab2678753186667056aff601bb 100644
--- a/target/linux/ramips/dts/M4-4M.dts
+++ b/target/linux/ramips/dts/M4-4M.dts
@@ -52,6 +52,10 @@
 		};
 	};
 
+	ethernet@10100000 {
+		mtd-mac-address = <&factory 0x4>;
+	};
+
 	esw@10110000 {
 		ralink,portmap = <0x2f>;
 		ralink,led_polarity = <1>;
diff --git a/target/linux/ramips/dts/M4-8M.dts b/target/linux/ramips/dts/M4-8M.dts
index c8e7ff51ff2966e21181af3958fac2b6c1a977ef..23d8449ad6240aeb7ff5593894dc509e787045ba 100644
--- a/target/linux/ramips/dts/M4-8M.dts
+++ b/target/linux/ramips/dts/M4-8M.dts
@@ -52,6 +52,10 @@
 		};
 	};
 
+	ethernet@10100000 {
+		mtd-mac-address = <&factory 0x4>;
+	};
+
 	esw@10110000 {
 		ralink,portmap = <0x2f>;
 		ralink,led_polarity = <1>;
diff --git a/target/linux/ramips/dts/MPRA1.dts b/target/linux/ramips/dts/MPRA1.dts
index f363a573f5da4b6d459a9f2a48f3c501356d5b67..a869427264b260a66a3ba8629fd06237ee387f5c 100644
--- a/target/linux/ramips/dts/MPRA1.dts
+++ b/target/linux/ramips/dts/MPRA1.dts
@@ -52,6 +52,10 @@
 		};
 	};
 
+	ethernet@10100000 {
+		mtd-mac-address = <&factory 0x4>;
+	};
+
 	esw@10110000 {
 		ralink,portmap = <0x2f>;
 	};
diff --git a/target/linux/ramips/dts/MPRA2.dts b/target/linux/ramips/dts/MPRA2.dts
index 00c5d112e3529f1222b8a7e6be08d2e1574857f8..44141418c699326a1442a9de9cec1774b6d14433 100644
--- a/target/linux/ramips/dts/MPRA2.dts
+++ b/target/linux/ramips/dts/MPRA2.dts
@@ -52,6 +52,10 @@
 		};
 	};
 
+	ethernet@10100000 {
+		mtd-mac-address = <&factory 0x4>;
+	};
+
 	esw@10110000 {
 		ralink,portmap = <0x2f>;
 	};
diff --git a/target/linux/ramips/dts/MZK-W300NH2.dts b/target/linux/ramips/dts/MZK-W300NH2.dts
index 78c120a5bf6e64e67021fb9565ebb022e66d75bb..43a98ce97c6059bca497b98930c70ca136e2a489 100644
--- a/target/linux/ramips/dts/MZK-W300NH2.dts
+++ b/target/linux/ramips/dts/MZK-W300NH2.dts
@@ -54,6 +54,10 @@
 		};
 	};
 
+	ethernet@10100000 {
+		mtd-mac-address = <&factory 0x4>;
+	};
+
 	esw@10110000 {
 		ralink,portmap = <0x2f>;
 	};
diff --git a/target/linux/ramips/dts/NBG-419N.dts b/target/linux/ramips/dts/NBG-419N.dts
index c7d66c410ef4d537bfed8d46060347153a743a16..07c5b3c35683fa8bf8b7a2644d86bbd0920d8a04 100644
--- a/target/linux/ramips/dts/NBG-419N.dts
+++ b/target/linux/ramips/dts/NBG-419N.dts
@@ -48,6 +48,10 @@
 		};
 	};
 
+	ethernet@10100000 {
+		mtd-mac-address = <&factory 0x4>;
+	};
+
 	esw@10110000 {
 		ralink,portmap = <0x2f>;
 	};
diff --git a/target/linux/ramips/dts/NW718.dts b/target/linux/ramips/dts/NW718.dts
index d55f226785dd3a81051873aafb272f1c1dd19245..c67b832794e879adc20ea1fac39c565b93138fab 100644
--- a/target/linux/ramips/dts/NW718.dts
+++ b/target/linux/ramips/dts/NW718.dts
@@ -52,6 +52,10 @@
 		};
 	};
 
+	ethernet@10100000 {
+		mtd-mac-address = <&factory 0x4>;
+	};
+
 	esw@10110000 {
 		ralink,portmap = <0x2f>;
 	};
diff --git a/target/linux/ramips/dts/OMNI-EMB-HPM.dts b/target/linux/ramips/dts/OMNI-EMB-HPM.dts
index 9bceb001284b2217c4320b0eba79941340fed6ba..fa7d515a3492a1d4a3744d275b44e44e6d456fbc 100644
--- a/target/linux/ramips/dts/OMNI-EMB-HPM.dts
+++ b/target/linux/ramips/dts/OMNI-EMB-HPM.dts
@@ -60,6 +60,7 @@
 	ethernet@10100000 {
 		phy-handle = <&phy0>;
 		phy-mode = "rgmii";
+		mtd-mac-address = <&factory 0x28>;
 
 		mdio-bus {
 			status = "okay";
diff --git a/target/linux/ramips/dts/PSR-680W.dts b/target/linux/ramips/dts/PSR-680W.dts
index ec06feee0c71d8792f67744ecae45e504f640328..62e5f720edbb606e9000115b1c67e9fdc8daff91 100644
--- a/target/linux/ramips/dts/PSR-680W.dts
+++ b/target/linux/ramips/dts/PSR-680W.dts
@@ -52,6 +52,10 @@
 		};
 	};
 
+	ethernet@10100000 {
+		mtd-mac-address = <&factory 0x4>;
+	};
+
 	esw@10110000 {
 		ralink,portmap = <0x3e>;
 	};
diff --git a/target/linux/ramips/dts/RT-N13U.dts b/target/linux/ramips/dts/RT-N13U.dts
index b6a649ccdb6e0fa6a1db193b6b4685d327023c70..ed344858f4f788d4d78abc37f5f3a1fa23e1fcdc 100644
--- a/target/linux/ramips/dts/RT-N13U.dts
+++ b/target/linux/ramips/dts/RT-N13U.dts
@@ -82,6 +82,10 @@
 		};
 	};
 
+	ethernet@10100000 {
+		mtd-mac-address = <&factory 0x28>;
+	};
+
 	esw@10110000 {
 		ralink,portmap = <0x2f>;
 	};
diff --git a/target/linux/ramips/dts/RT-N15.dts b/target/linux/ramips/dts/RT-N15.dts
index 0b9d0d9f543aadc966221af427e3ab899317c455..27b0da97fe414af116072387ebee72aa736bf3ee 100644
--- a/target/linux/ramips/dts/RT-N15.dts
+++ b/target/linux/ramips/dts/RT-N15.dts
@@ -53,6 +53,7 @@
 
 	ethernet@400000 {
 		status = "okay";
+		mtd-mac-address = <&factory 0x4>;
 
                 port@0 {
 			ralink,fixed-link = <1000 1 1 1>;
diff --git a/target/linux/ramips/dts/RTN56U.dts b/target/linux/ramips/dts/RTN56U.dts
index 6dfe3f480d47cf6fef5156271786c1b3010bc968..ec9163a3459eb3400e72b20f86e52961fb373e1c 100644
--- a/target/linux/ramips/dts/RTN56U.dts
+++ b/target/linux/ramips/dts/RTN56U.dts
@@ -22,7 +22,8 @@
 	};
 
 	ethernet@10100000 {
-                port@0 {
+       		mtd-mac-address = <&factory 0x4>;
+		port@0 {
 			ralink,fixed-link = <1000 1 1 1>;
 		};
 	};
diff --git a/target/linux/ramips/dts/SL-R7205.dts b/target/linux/ramips/dts/SL-R7205.dts
index 589fd10fa2d3fef5fa5719cc79d42b174dfe379c..24bf94037998c83afad299c27dff1ac1ed67d8b6 100644
--- a/target/linux/ramips/dts/SL-R7205.dts
+++ b/target/linux/ramips/dts/SL-R7205.dts
@@ -48,6 +48,10 @@
 		};
 	};
 
+	ethernet@10100000 {
+		mtd-mac-address = <&factory 0x4>;
+	};
+
 	esw@10110000 {
 		ralink,portmap = <0x3e>;
 	};
diff --git a/target/linux/ramips/dts/TEW-691GR.dts b/target/linux/ramips/dts/TEW-691GR.dts
index 98d45fc530358e4d9bca7110e00be1f7d1f99182..1d6152967dad6f93e8dec3e709fac94a7d9b8d31 100644
--- a/target/linux/ramips/dts/TEW-691GR.dts
+++ b/target/linux/ramips/dts/TEW-691GR.dts
@@ -22,6 +22,7 @@
 	};
 
 	ethernet@10100000 {
+		mtd-mac-address = <&factory 0x28>;
 		port@0 {
 			phy-handle = <&phy0>;
 			phy-mode = "rgmii";
diff --git a/target/linux/ramips/dts/TEW-692GR.dts b/target/linux/ramips/dts/TEW-692GR.dts
index 6c07c7760fbfca37f2d1e91914dd645334f734cd..3d7dc9fdf2c488dedab4e358780fd7ce4a9fbbd6 100644
--- a/target/linux/ramips/dts/TEW-692GR.dts
+++ b/target/linux/ramips/dts/TEW-692GR.dts
@@ -23,6 +23,7 @@
 
 	ethernet@10100000 {
 		status = "okay";
+		mtd-mac-address = <&factory 0x28>;
 		port@0 {
 			phy-handle = <&phy0>;
 			phy-mode = "rgmii";
diff --git a/target/linux/ramips/dts/UR-326N4G.dts b/target/linux/ramips/dts/UR-326N4G.dts
index d97ca05ef9eb2ccb62102ebf322974a5d5bb1166..4af10bb8f437ab0bb023e31167d00609df0cd674 100644
--- a/target/linux/ramips/dts/UR-326N4G.dts
+++ b/target/linux/ramips/dts/UR-326N4G.dts
@@ -48,6 +48,10 @@
 		};
 	};
 
+	ethernet@10100000 {
+		mtd-mac-address = <&factory 0x4004>;
+	};
+
 	esw@10110000 {
 		ralink,portmap = <0x2f>;
 	};
diff --git a/target/linux/ramips/dts/UR-336UN.dts b/target/linux/ramips/dts/UR-336UN.dts
index b1377036cced182bf6e7917fb6c0ed121847656b..5ce7fa9efdc0c506a8e78e8d3bc748803ef11105 100644
--- a/target/linux/ramips/dts/UR-336UN.dts
+++ b/target/linux/ramips/dts/UR-336UN.dts
@@ -25,6 +25,10 @@
 		#size-cells = <1>;
 	};
 
+	ethernet@10100000 {
+		mtd-mac-address = <&factory 0x4004>;
+	};
+
 	esw@10110000 {
 		ralink,portmap = <0x2f>;
 	};
diff --git a/target/linux/ramips/dts/W150M.dts b/target/linux/ramips/dts/W150M.dts
index 76ad658437711ac7b8bc2d6906b5f4c0f2246675..f3ab7191ca0c0323ec70a41fbd15088f88c8944c 100644
--- a/target/linux/ramips/dts/W150M.dts
+++ b/target/linux/ramips/dts/W150M.dts
@@ -93,6 +93,10 @@
 		};
 	};
 
+	ethernet@10100000 {
+		mtd-mac-address = <&factory 0x4>;
+	};
+
 	esw@10110000 {
 		ralink,portmap = <0x2f>;
 	};
diff --git a/target/linux/ramips/dts/W306R_V20.dts b/target/linux/ramips/dts/W306R_V20.dts
index 16d9ad4c3a03a6058ac8bf8203228d47268e0cab..3f57b35bd818f0cd126771c38adc1f9264761172 100644
--- a/target/linux/ramips/dts/W306R_V20.dts
+++ b/target/linux/ramips/dts/W306R_V20.dts
@@ -48,6 +48,10 @@
 		};
 	};
 
+	ethernet@10100000 {
+		mtd-mac-address = <&factory 0x4>;
+	};
+
 	esw@10110000 {
 		ralink,portmap = <0x3e>;
 	};
diff --git a/target/linux/ramips/dts/W502U.dts b/target/linux/ramips/dts/W502U.dts
index 54e8d58ed28a0a879569906259ac823539629742..d11a7adedd9750018dfb2320b969b112489e4e64 100644
--- a/target/linux/ramips/dts/W502U.dts
+++ b/target/linux/ramips/dts/W502U.dts
@@ -1,3 +1,7 @@
+	ethernet@10100000 {
+		mtd-mac-address = <&factory 0x28>;
+	};
+
 /dts-v1/;
 
 /include/ "rt3050.dtsi"
@@ -52,6 +56,10 @@
 		};
 	};
 
+	ethernet@10100000 {
+		mtd-mac-address = <&factory 0x28>;
+	};
+
 	esw@10110000 {
 		ralink,portmap = <0x3e>;
 	};
diff --git a/target/linux/ramips/dts/WCR150GN.dts b/target/linux/ramips/dts/WCR150GN.dts
index 601883d24daa99791459404bee840dfbfc2c2f55..e59fc8d7458e8a824ca27b3f001e5f177c38db5b 100644
--- a/target/linux/ramips/dts/WCR150GN.dts
+++ b/target/linux/ramips/dts/WCR150GN.dts
@@ -77,6 +77,10 @@
 		};
 	};
 
+	ethernet@10100000 {
+		mtd-mac-address = <&factory 0x4>;
+	};
+
 	esw@10110000 {
 		ralink,portmap = <0x2f>;
 	};
diff --git a/target/linux/ramips/dts/WL-351.dts b/target/linux/ramips/dts/WL-351.dts
index bc122943d4ce271762e98091c9dcc1886e15fd67..1e6705c02c784aa2ae6c81a24770732fc9a4ec8b 100644
--- a/target/linux/ramips/dts/WL-351.dts
+++ b/target/linux/ramips/dts/WL-351.dts
@@ -48,6 +48,10 @@
 		};
 	};
 
+	ethernet@10100000 {
+		mtd-mac-address = <&factory 0x4>;
+	};
+
 	esw@10110000 {
 		ralink,portmap = <0x3f>;
 		ralink,fct2 = <0x0002500c>;
diff --git a/target/linux/ramips/dts/WLI-TX4-AG300N.dts b/target/linux/ramips/dts/WLI-TX4-AG300N.dts
index 62c2a799a63af9592f3c2bb7ecb6e1c429f65ba5..0ea5e29bc2fc77349fb7e252724b229238d1af89 100644
--- a/target/linux/ramips/dts/WLI-TX4-AG300N.dts
+++ b/target/linux/ramips/dts/WLI-TX4-AG300N.dts
@@ -52,6 +52,7 @@
 
 	ethernet@400000 {
 		status = "okay";
+		mtd-mac-address = <&factory 0x4>;
 
                 port@0 {
 			ralink,fixed-link = <1000 1 1 1>;
diff --git a/target/linux/ramips/dts/WMR300.dts b/target/linux/ramips/dts/WMR300.dts
index dbee9ad083657c75a3cdc42ca4c369eaa5cd9089..56cf6a60f1c58c176af75c3d97a345736992aa15 100644
--- a/target/linux/ramips/dts/WMR300.dts
+++ b/target/linux/ramips/dts/WMR300.dts
@@ -49,6 +49,7 @@
 	};
 
 	ethernet@10100000 {
+		mtd-mac-address = <&factory 0x4>;
 		ralink,port-map = "wllll";
 	};
 
diff --git a/target/linux/ramips/dts/WNCE2001.dts b/target/linux/ramips/dts/WNCE2001.dts
index bbf6625bf6f5f12cca28f284bfc5a6dba756d617..10910afe31146df3c3b1e6df7d711c7de0812276 100644
--- a/target/linux/ramips/dts/WNCE2001.dts
+++ b/target/linux/ramips/dts/WNCE2001.dts
@@ -73,6 +73,10 @@
 		};
 	};
 
+	ethernet@10100000 {
+		mtd-mac-address = <&factory 0x28>;
+	};
+
 	gpio-leds {
 		compatible = "gpio-leds";
 		power-green {
diff --git a/target/linux/ramips/dts/X5.dts b/target/linux/ramips/dts/X5.dts
index 0a4f1b3684d4829ca9b1c51127a96439c49de9eb..a19bf4dc8efe7d302ea6d8770cc6ae54f02713c4 100644
--- a/target/linux/ramips/dts/X5.dts
+++ b/target/linux/ramips/dts/X5.dts
@@ -52,6 +52,10 @@
 		};
 	};
 
+	ethernet@10100000 {
+		mtd-mac-address = <&factory 0x4>;
+	};
+
 	esw@10110000 {
 		ralink,portmap = <0x2f>;
 		ralink,led_polarity = <1>;
diff --git a/target/linux/ramips/dts/X8.dts b/target/linux/ramips/dts/X8.dts
index b7591dec2017b9104ba2c58d8513bf08f6543c81..cadbc3afddc2fb50abcaa9febbb15998d1c4e269 100644
--- a/target/linux/ramips/dts/X8.dts
+++ b/target/linux/ramips/dts/X8.dts
@@ -52,6 +52,10 @@
 		};
 	};
 
+	ethernet@10100000 {
+		mtd-mac-address = <&factory 0x4>;
+	};
+
 	esw@10110000 {
 		ralink,portmap = <0x2f>;
 		ralink,led_polarity = <1>;