diff --git a/target/linux/lantiq/base-files/etc/board.d/02_network b/target/linux/lantiq/base-files/etc/board.d/02_network
index 2f744f859a39b3e3eeeaba441a396bce98cca46b..f63be9e3fdd7f86758ad9c05d108121fe005e070 100755
--- a/target/linux/lantiq/base-files/etc/board.d/02_network
+++ b/target/linux/lantiq/base-files/etc/board.d/02_network
@@ -100,7 +100,16 @@ EASY80920NAND|EASY80920NOR)
 		"0:lan:4" "1:lan:3" "2:lan:2" "4:lan:1" "5:wan:5" "6t@eth0"
 	;;
 
+FRITZ3370)
+	wan_mac=$(macaddr_add "$(mtd_get_mac_binary urlader 2439)" 1)
+	;;
+
+FRITZ7320)
+	wan_mac=$(macaddr_add "$(mtd_get_mac_binary urlader 2705)" 1)
+	;;
+
 FRITZ7360SL)
+	wan_mac=$(macaddr_add "$(mtd_get_mac_binary urlader 2705)" 1)
 	ucidef_add_switch "switch0" \
 		"0:lan:3" "1:lan:4" "2:lan:2" "4:lan:1" "6t@eth0"
 	;;
diff --git a/target/linux/lantiq/base-files/etc/hotplug.d/firmware/12-ath9k-eeprom b/target/linux/lantiq/base-files/etc/hotplug.d/firmware/12-ath9k-eeprom
index 6b9d23a7996c0a89e815c90d486b62561a83adce..7144423d433b2ce0ffdbad73680c88931f3f0d65 100644
--- a/target/linux/lantiq/base-files/etc/hotplug.d/firmware/12-ath9k-eeprom
+++ b/target/linux/lantiq/base-files/etc/hotplug.d/firmware/12-ath9k-eeprom
@@ -138,13 +138,8 @@ case "$FIRMWARE" in
 				ath9k_eeprom_extract "calibration" 61440 0
 				ath9k_patch_fw_mac_crc $(macaddr_add $(mtd_get_mac_ascii uboot-env ethaddr) +2) 524
 				;;
-			FRITZ3370)
+			FRITZ3370|FRITZ7320|FRITZ7360SL)
 				ath9k_eeprom_extract "urlader" 2437 0
-				ath9k_patch_fw_mac "00:00:00:00:00:00" 2
-				;;
-			FRITZ7320|FRITZ7360SL)
-				ath9k_eeprom_extract "urlader" 2437 0
-				ath9k_patch_fw_mac_crc "00:00:00:00:00:00" 268
 				;;
 			TDW8970|TDW8980)
 				ath9k_eeprom_extract "boardconfig" 135168 0
diff --git a/target/linux/lantiq/dts/FRITZ3370.dts b/target/linux/lantiq/dts/FRITZ3370.dts
index 1e2e90ca1b462e6ee4d1ffca1ea82ea9098cf5f6..3f57f45ee882c9f3affc7ac22d5a3f3592ce919c 100644
--- a/target/linux/lantiq/dts/FRITZ3370.dts
+++ b/target/linux/lantiq/dts/FRITZ3370.dts
@@ -189,7 +189,7 @@
 		reg = <4 0>;
 		spi-max-frequency = <1000000>;
 
-		partition@0 {
+		urlader: partition@0 {
 			reg = <0x0 0x20000>;
 			label = "urlader";
 			read-only;
@@ -215,7 +215,8 @@
 		#address-cells = <1>;
 		#size-cells = <0>;
 		reg = <0>;
-		mac-address = [ 00 11 22 33 44 55 ];
+		mtd-mac-address = <&urlader 0x987>;
+		mtd-mac-address-increment = <(-2)>;
 		lantiq,switch;
 
 		ethernet@0 {
diff --git a/target/linux/lantiq/dts/FRITZ7320.dts b/target/linux/lantiq/dts/FRITZ7320.dts
index 1d3e02f9aafbd8bb720fbaa206c5ec7ac5fe5e2e..491baee7ea9a1c0e884a13df67175833e60f59c8 100644
--- a/target/linux/lantiq/dts/FRITZ7320.dts
+++ b/target/linux/lantiq/dts/FRITZ7320.dts
@@ -90,6 +90,8 @@
 
 		etop@E180000 {
 			phy-mode = "mii";
+			mtd-mac-address = <&ath9k_cal 0xa91>;
+			mtd-mac-address-increment = <(-2)>;
 		};
 
 		ifxhcd@E101000 {
diff --git a/target/linux/lantiq/dts/FRITZ7360SL.dts b/target/linux/lantiq/dts/FRITZ7360SL.dts
index b4b12246ced62530a127455bc4647fded5a7b94d..31a9527b796b7c4c39bdd93aad066655c2382a33 100644
--- a/target/linux/lantiq/dts/FRITZ7360SL.dts
+++ b/target/linux/lantiq/dts/FRITZ7360SL.dts
@@ -155,7 +155,8 @@
 		#address-cells = <1>;
 		#size-cells = <0>;
 		reg = <0>;
-		mac-address = [ 00 11 22 33 44 55 ];
+		mtd-mac-address = <&urlader 0xa91>;
+		mtd-mac-address-increment = <(-2)>;
 		lantiq,switch;
 
 		ethernet@0 {