Browse Source

ramips: TP-Link EC330-G5u v1: switch to mac-address-ascii

The TP-Link EC330-G5u v1 router has MAC address that stored in factory mtd
in ascii format. This commit makes the router use of "mac-address-ascii"
in dts.

After the change:
1. All MAC addresses are explicitly assigned in dts (the workarounds in
   network scripts are no longer needed);
2. gmac0 (eth0) MAC address is no longer random.

Signed-off-by: Mikhail Zhilkin <[email protected]>
Mikhail Zhilkin 2 years ago
parent
commit
15e21d373b

+ 26 - 0
target/linux/ramips/dts/mt7621_tplink_ec330-g5u-v1.dts

@@ -11,6 +11,8 @@
 	model = "TP-Link EC330-G5u v1";
 
 	aliases {
+		label-mac-device = &gmac0;
+
 		led-boot = &led_power;
 		led-failsafe = &led_power;
 		led-running = &led_power;
@@ -226,6 +228,14 @@
 			label = "factory";
 			reg = <0x7800000 0x400000>;
 			read-only;
+
+			compatible = "nvmem-cells";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			macaddr_factory_165: macaddr@165 {
+				reg = <0x165 0x11>;
+			};
 		};
 
 		partition@0_wholeflash {
@@ -246,6 +256,9 @@
 		reg = <0x0000 0 0 0 0>;
 		mediatek,mtd-eeprom = <&factory 0x8000>;
 		ieee80211-freq-limit = <2400000 2500000>;
+
+		nvmem-cells = <&macaddr_factory_165>;
+		nvmem-cell-names = "mac-address-ascii";
 	};
 };
 
@@ -255,13 +268,26 @@
 		reg = <0x0000 0 0 0 0>;
 		mediatek,mtd-eeprom = <&factory 0x14000>;
 		ieee80211-freq-limit = <5000000 6000000>;
+
+		nvmem-cells = <&macaddr_factory_165>;
+		nvmem-cell-names = "mac-address-ascii";
+		mac-address-increment = <(2)>;
 	};
 };
 
+&gmac0 {
+	nvmem-cells = <&macaddr_factory_165>;
+	nvmem-cell-names = "mac-address-ascii";
+};
+
 &gmac1 {
 	status = "okay";
 	label = "wan";
 	phy-handle = <&ethphy0>;
+
+	nvmem-cells = <&macaddr_factory_165>;
+	nvmem-cell-names = "mac-address-ascii";
+	mac-address-increment = <(1)>;
 };
 
 &mdio {

+ 0 - 5
target/linux/ramips/mt7621/base-files/etc/board.d/02_network

@@ -245,11 +245,6 @@ ramips_setup_macs()
 		label_mac=$(cat "/sys/firmware/mikrotik/hard_config/mac_base")
 		lan_mac=$label_mac
 		;;
-	tplink,ec330-g5u-v1)
-		label_mac="$(mtd_get_mac_text factory 0x165)"
-		lan_mac=$label_mac
-		wan_mac=$(macaddr_add $label_mac 1)
-		;;
 	tplink,er605-v2)
 		CI_UBIPART="firmware"
 		label_mac=$(mtd_get_mac_uci_config_ubi "tddp")

+ 0 - 5
target/linux/ramips/mt7621/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac

@@ -161,11 +161,6 @@ case "$board" in
 		hw_mac_addr="$(mtd_get_mac_binary product-info 0x8)"
 		macaddr_add "$hw_mac_addr" "$PHYNBR" > "/sys${DEVPATH}/macaddress"
 		;;
-	tplink,ec330-g5u-v1)
-		hw_mac_addr="$(mtd_get_mac_text factory 0x165)"
-		[ "$PHYNBR" = "0" ] && echo -n $hw_mac_addr > /sys${DEVPATH}/macaddress
-		[ "$PHYNBR" = "1" ] && macaddr_add $hw_mac_addr 2 > /sys${DEVPATH}/macaddress
-		;;
 	yuncore,ax820)
 		[ "$PHYNBR" = "1" ] && \
 			macaddr_setbit_la "$(mtd_get_mac_binary Factory 0xe000)" > /sys${DEVPATH}/macaddress