Browse Source

ath79: nbg6x16: use nvmem

Userspace handling is deprecated.

Signed-off-by: Rosen Penev <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/16291
Signed-off-by: Hauke Mehrtens <[email protected]>
Rosen Penev 1 year ago
parent
commit
91966bee33

+ 8 - 2
target/linux/ath79/dts/qca9557_zyxel_nbg6616.dts

@@ -9,6 +9,7 @@
 	model = "Zyxel NBG6616";
 
 	aliases {
+		label-mac-device = &wmac;
 		led-boot = &led_power;
 		led-failsafe = &led_power;
 		led-running = &led_power;
@@ -82,8 +83,13 @@
 			};
 
 			partition@30000 {
+				compatible = "u-boot,env";
 				label = "u-boot-env";
 				reg = <0x030000 0x010000>;
+
+				macaddr_uboot_ethaddr: ethaddr {
+					#nvmem-cell-cells = <1>;
+				};
 			};
 
 			partition@40000 {
@@ -136,7 +142,7 @@
 	wifi@0,0 {
 		compatible = "qcom,ath10k";
 		reg = <0 0 0 0 0>;
-		nvmem-cells = <&cal_art_5000>;
-		nvmem-cell-names = "calibration";
+		nvmem-cells = <&cal_art_5000>, <&macaddr_uboot_ethaddr 1>;
+		nvmem-cell-names = "calibration", "mac-address";
 	};
 };

+ 8 - 2
target/linux/ath79/dts/qca9558_zyxel_nbg6716.dts

@@ -9,6 +9,7 @@
 	model = "Zyxel NBG6716";
 
 	aliases {
+		label-mac-device = &wmac;
 		led-boot = &led_power;
 		led-failsafe = &led_power;
 		led-running = &led_power;
@@ -103,8 +104,13 @@
 			};
 
 			partition@40000 {
+				compatible = "u-boot,env";
 				label = "u-boot-env";
 				reg = <0x040000 0x010000>;
+
+				macaddr_uboot_ethaddr: ethaddr {
+					#nvmem-cell-cells = <1>;
+				};
 			};
 
 			partition@50000 {
@@ -185,8 +191,8 @@
 	wifi@0,0 {
 		compatible = "qcom,ath10k";
 		reg = <0 0 0 0 0>;
-		nvmem-cells = <&cal_art_5000>;
-		nvmem-cell-names = "calibration";
+		nvmem-cells = <&cal_art_5000>, <&macaddr_uboot_ethaddr 1>;
+		nvmem-cell-names = "calibration", "mac-address";
 		qcom,ath10k-calibration-variant = "ZyXEL-NBG6716";
 	};
 };

+ 8 - 2
target/linux/ath79/dts/qca955x_zyxel_nbg6x16.dtsi

@@ -82,6 +82,9 @@
 	pll-data = <0xa6000000 0x00000101 0x00001616>;
 	phy-handle = <&phy17>;
 
+	nvmem-cells = <&macaddr_uboot_ethaddr 2>;
+	nvmem-cell-names = "mac-address";
+
 	fixed-link {
 		speed = <1000>;
 		full-duplex;
@@ -94,6 +97,9 @@
 	pll-data = <0x03000101 0x00000101 0x00001616>;
 	phy-handle = <&phy1>;
 
+	nvmem-cells = <&macaddr_uboot_ethaddr 3>;
+	nvmem-cell-names = "mac-address";
+
 	fixed-link {
 		speed = <1000>;
 		full-duplex;
@@ -103,8 +109,8 @@
 &wmac {
 	status = "okay";
 
-	nvmem-cells = <&cal_art_1000>;
-	nvmem-cell-names = "calibration";
+	nvmem-cells = <&cal_art_1000>, <&macaddr_uboot_ethaddr 0>;
+	nvmem-cell-names = "calibration", "mac-address";
 };
 
 &usb_phy0 {

+ 0 - 3
target/linux/ath79/generic/base-files/etc/board.d/02_network

@@ -861,9 +861,6 @@ ath79_setup_macs()
 	xiaomi,aiot-ac2350)
 		lan_mac=$(mtd_get_mac_binary art 0x1002)
 		;;
-	zyxel,nbg6616)
-		label_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
-		;;
 	esac
 
 	[ -n "$lan_mac" ] && ucidef_set_interface_macaddr "lan" $lan_mac

+ 1 - 7
target/linux/ath79/generic/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac

@@ -75,8 +75,7 @@ case "$board" in
 	iodata,wn-ac1600dgr|\
 	iodata,wn-ac1600dgr2|\
 	sitecom,wlr-7100|\
-	sitecom,wlr-8100|\
-	zyxel,nbg6616)
+	sitecom,wlr-8100)
 		# There is no eeprom data for 5 GHz wlan in "art" partition
 		# which would allow to patch the macaddress
 		[ "$PHYNBR" -eq 0 ] && \
@@ -121,11 +120,6 @@ case "$board" in
 		[ "$PHYNBR" -eq 0 ] && \
 			macaddr_add "$(mtd_get_mac_text mac 0x18)" 1 > /sys${DEVPATH}/macaddress
 		;;
-	zyxel,nbg6616)
-		# Set mac address for 2.4g device
-		[ "$PHYNBR" -eq 1 ] && \
-			mtd_get_mac_ascii u-boot-env ethaddr > /sys${DEVPATH}/macaddress
-		;;
 	zyxel,nwa1123-ac)
 		[ "$PHYNBR" -eq 0 ] && \
 			mtd_get_mac_text mib0 0x66 > /sys${DEVPATH}/macaddress

+ 0 - 5
target/linux/ath79/generic/base-files/lib/preinit/10_fix_eth_mac.sh

@@ -32,11 +32,6 @@ preinit_set_mac_address() {
 		base_mac=$(mtd_get_mac_encrypted_deco $(find_mtd_part config))
 		ip link set dev eth0 address $base_mac
 		;;
-	zyxel,nbg6616)
-		ethaddr=$(mtd_get_mac_ascii u-boot-env ethaddr)
-		ip link set dev eth0 address $(macaddr_add $ethaddr 2)
-		ip link set dev eth1 address $(macaddr_add $ethaddr 3)
-		;;
 	esac
 }
 

+ 0 - 21
target/linux/ath79/nand/base-files/etc/hotplug.d/ieee80211/10-fix-wifi-mac

@@ -1,21 +0,0 @@
-[ "$ACTION" = "add" ] || exit 0
-
-PHYNBR=${DEVPATH##*/phy}
-
-[ -n $PHYNBR ] || exit 0
-
-. /lib/functions.sh
-. /lib/functions/system.sh
-
-board=$(board_name)
-
-case $board in
-	zyxel,emg2926-q10a|\
-	zyxel,nbg6716)
-		ethaddr=$(mtd_get_mac_ascii u-boot-env ethaddr)
-		[ "$PHYNBR" -eq 0 ] && \
-			macaddr_add $ethaddr 1 > /sys${DEVPATH}/macaddress
-		[ "$PHYNBR" -eq 1 ] && \
-			echo -n $ethaddr > /sys${DEVPATH}/macaddress
-		;;
-esac

+ 0 - 15
target/linux/ath79/nand/base-files/lib/preinit/10_fix_eth_mac.sh

@@ -1,15 +0,0 @@
-. /lib/functions.sh
-. /lib/functions/system.sh
-
-preinit_set_mac_address() {
-	case $(board_name) in
-	zyxel,emg2926-q10a|\
-	zyxel,nbg6716)
-		ethaddr=$(mtd_get_mac_ascii u-boot-env ethaddr)
-		ip link set dev eth0 address $(macaddr_add $ethaddr 2)
-		ip link set dev eth1 address $(macaddr_add $ethaddr 3)
-		;;
-	esac
-}
-
-boot_hook_add preinit_main preinit_set_mac_address

+ 1 - 0
target/linux/ath79/nand/config-default

@@ -17,6 +17,7 @@ CONFIG_MTD_UBI=y
 CONFIG_MTD_UBI_BEB_LIMIT=20
 CONFIG_MTD_UBI_BLOCK=y
 CONFIG_MTD_UBI_WL_THRESHOLD=4096
+CONFIG_NVMEM_U_BOOT_ENV=y
 # CONFIG_PCI_AR71XX is not set
 CONFIG_POWER_RESET=y
 CONFIG_POWER_RESET_GPIO_RESTART=y