[openwrt/openwrt] ramips: use nvmem to get mikrotik mac

LEDE Commits lede-commits at lists.infradead.org
Sat Oct 12 13:27:35 PDT 2024


hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/4f4cb52e24ddf4e931b783ea8e65ec5d5b530261

commit 4f4cb52e24ddf4e931b783ea8e65ec5d5b530261
Author: Rosen Penev <rosenp at gmail.com>
AuthorDate: Sat Aug 24 12:35:03 2024 -0700

    ramips: use nvmem to get mikrotik mac
    
    73a9f9f857947bc63fef1aefb7e2e4b906fb9d2b added support. Let's use it.
    Calibration data is not yet supported.
    
    Signed-off-by: Rosen Penev <rosenp at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16256
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 target/linux/ramips/dts/mt7621_mikrotik.dtsi            |  8 ++++++++
 target/linux/ramips/dts/mt7621_mikrotik_ltap-2hnd.dts   |  6 ++++++
 .../ramips/dts/mt7621_mikrotik_routerboard-750gr3.dts   |  4 ++++
 .../ramips/dts/mt7621_mikrotik_routerboard-760igs.dts   |  4 ++++
 .../ramips/dts/mt7621_mikrotik_routerboard-7xx.dtsi     | 17 ++++++++++++++++-
 .../ramips/dts/mt7621_mikrotik_routerboard-m11g.dts     |  7 +++++++
 .../ramips/dts/mt7621_mikrotik_routerboard-m33g.dts     | 10 ++++++++++
 .../ramips/mt7621/base-files/etc/board.d/02_network     | 12 ------------
 .../base-files/etc/hotplug.d/firmware/10-ath9k-eeprom   | 15 +--------------
 target/linux/ramips/mt7621/config-6.6                   |  2 +-
 10 files changed, 57 insertions(+), 28 deletions(-)

diff --git a/target/linux/ramips/dts/mt7621_mikrotik.dtsi b/target/linux/ramips/dts/mt7621_mikrotik.dtsi
index ace194c6d6..67892cc1a0 100644
--- a/target/linux/ramips/dts/mt7621_mikrotik.dtsi
+++ b/target/linux/ramips/dts/mt7621_mikrotik.dtsi
@@ -49,6 +49,14 @@
 
 				hard_config {
 					read-only;
+
+					nvmem-layout {
+						compatible = "mikrotik,routerboot-nvmem";
+
+						macaddr_hard: base-mac-address {
+							#nvmem-cell-cells = <1>;
+						};
+					};
 				};
 
 				partition at 10000 {
diff --git a/target/linux/ramips/dts/mt7621_mikrotik_ltap-2hnd.dts b/target/linux/ramips/dts/mt7621_mikrotik_ltap-2hnd.dts
index b5e38071f1..a3e3d8f4ce 100644
--- a/target/linux/ramips/dts/mt7621_mikrotik_ltap-2hnd.dts
+++ b/target/linux/ramips/dts/mt7621_mikrotik_ltap-2hnd.dts
@@ -11,6 +11,7 @@
 		led-failsafe = &led_usr;
 		led-running = &led_usr;
 		led-upgrade = &led_usr;
+		label-mac-device = ðernet;
 	};
 
 	ath9k-leds {
@@ -128,6 +129,9 @@
 
 &ethernet {
 	pinctrl-0 = <&mdio_pins>, <&rgmii1_pins>;
+
+	nvmem-cells = <&macaddr_hard 0>;
+	nvmem-cell-names = "mac-address";
 };
 
 &switch0 {
@@ -146,6 +150,8 @@
 		compatible = "pci168c,0030";
 		reg = <0x0000 0 0 0 0>;
 		qca,no-eeprom;
+		nvmem-cells = <&macaddr_hard 1>;
+		nvmem-cell-names = "mac-address";
 		gpio-controller;
 		#gpio-cells = <2>;
 	};
diff --git a/target/linux/ramips/dts/mt7621_mikrotik_routerboard-750gr3.dts b/target/linux/ramips/dts/mt7621_mikrotik_routerboard-750gr3.dts
index faa4e53f09..6357dceb6d 100644
--- a/target/linux/ramips/dts/mt7621_mikrotik_routerboard-750gr3.dts
+++ b/target/linux/ramips/dts/mt7621_mikrotik_routerboard-750gr3.dts
@@ -11,6 +11,7 @@
 		led-failsafe = &led_usr;
 		led-running = &led_usr;
 		led-upgrade = &led_usr;
+		label-mac-device = &gmac1;
 	};
 
 	leds {
@@ -40,6 +41,9 @@
 	status = "okay";
 	label = "wan";
 	phy-handle = <&ethphy0>;
+
+	nvmem-cells = <&macaddr_hard 0>;
+	nvmem-cell-names = "mac-address";
 };
 
 &ethphy0 {
diff --git a/target/linux/ramips/dts/mt7621_mikrotik_routerboard-760igs.dts b/target/linux/ramips/dts/mt7621_mikrotik_routerboard-760igs.dts
index 8b88cfe0a3..c9d07cf96c 100644
--- a/target/linux/ramips/dts/mt7621_mikrotik_routerboard-760igs.dts
+++ b/target/linux/ramips/dts/mt7621_mikrotik_routerboard-760igs.dts
@@ -11,6 +11,7 @@
 		led-failsafe = &led_pwr;
 		led-running = &led_pwr;
 		led-upgrade = &led_pwr;
+		label-mac-device = &port0;
 	};
 
 	leds {
@@ -51,6 +52,9 @@
 	label = "sfp";
 	phy-mode = "rgmii-rxid";
 	phy-handle = <&ephy7>;
+
+	nvmem-cells = <&macaddr_hard 5>;
+	nvmem-cell-names = "mac-address";
 };
 
 &i2c {
diff --git a/target/linux/ramips/dts/mt7621_mikrotik_routerboard-7xx.dtsi b/target/linux/ramips/dts/mt7621_mikrotik_routerboard-7xx.dtsi
index b8fae51c3b..cdca47f8b8 100644
--- a/target/linux/ramips/dts/mt7621_mikrotik_routerboard-7xx.dtsi
+++ b/target/linux/ramips/dts/mt7621_mikrotik_routerboard-7xx.dtsi
@@ -40,29 +40,44 @@
 
 &switch0 {
 	ports {
-		port at 0 {
+		port0: port at 0 {
 			status = "okay";
 			label = "wan";
+
+			nvmem-cells = <&macaddr_hard 0>;
+			nvmem-cell-names = "mac-address";
 		};
 
 		port at 1 {
 			status = "okay";
 			label = "lan2";
+
+			nvmem-cells = <&macaddr_hard 1>;
+			nvmem-cell-names = "mac-address";
 		};
 
 		port at 2 {
 			status = "okay";
 			label = "lan3";
+
+			nvmem-cells = <&macaddr_hard 2>;
+			nvmem-cell-names = "mac-address";
 		};
 
 		port at 3 {
 			status = "okay";
 			label = "lan4";
+
+			nvmem-cells = <&macaddr_hard 3>;
+			nvmem-cell-names = "mac-address";
 		};
 
 		port at 4 {
 			status = "okay";
 			label = "lan5";
+
+			nvmem-cells = <&macaddr_hard 4>;
+			nvmem-cell-names = "mac-address";
 		};
 	};
 };
diff --git a/target/linux/ramips/dts/mt7621_mikrotik_routerboard-m11g.dts b/target/linux/ramips/dts/mt7621_mikrotik_routerboard-m11g.dts
index 5f9ee90e7c..89ef5fb3fd 100644
--- a/target/linux/ramips/dts/mt7621_mikrotik_routerboard-m11g.dts
+++ b/target/linux/ramips/dts/mt7621_mikrotik_routerboard-m11g.dts
@@ -9,6 +9,7 @@
 		led-failsafe = &led_usr;
 		led-running = &led_usr;
 		led-upgrade = &led_usr;
+		label-mac-device = ðernet;
 	};
 
 	leds {
@@ -68,6 +69,9 @@
 
 &ethernet {
 	pinctrl-0 = <&mdio_pins>, <&rgmii1_pins>;
+
+	nvmem-cells = <&macaddr_hard 0>;
+	nvmem-cell-names = "mac-address";
 };
 
 &switch0 {
@@ -75,6 +79,9 @@
 		port at 0 {
 			status = "okay";
 			label = "lan";
+
+			nvmem-cells = <&macaddr_hard 1>;
+			nvmem-cell-names = "mac-address";
 		};
 	};
 };
diff --git a/target/linux/ramips/dts/mt7621_mikrotik_routerboard-m33g.dts b/target/linux/ramips/dts/mt7621_mikrotik_routerboard-m33g.dts
index 5e76261529..e26d3cee2e 100644
--- a/target/linux/ramips/dts/mt7621_mikrotik_routerboard-m33g.dts
+++ b/target/linux/ramips/dts/mt7621_mikrotik_routerboard-m33g.dts
@@ -9,6 +9,7 @@
 		led-failsafe = &led_usr;
 		led-running = &led_usr;
 		led-upgrade = &led_usr;
+		label-mac-device = &gmac1;
 	};
 
 	leds {
@@ -94,6 +95,9 @@
 	status = "okay";
 	label = "wan";
 	phy-handle = <&ethphy0>;
+
+	nvmem-cells = <&macaddr_hard 0>;
+	nvmem-cell-names = "mac-address";
 };
 
 &ethphy0 {
@@ -105,11 +109,17 @@
 		port at 1 {
 			status = "okay";
 			label = "lan1";
+
+			nvmem-cells = <&macaddr_hard 1>;
+			nvmem-cell-names = "mac-address";
 		};
 
 		port at 2 {
 			status = "okay";
 			label = "lan2";
+
+			nvmem-cells = <&macaddr_hard 2>;
+			nvmem-cell-names = "mac-address";
 		};
 	};
 };
diff --git a/target/linux/ramips/mt7621/base-files/etc/board.d/02_network b/target/linux/ramips/mt7621/base-files/etc/board.d/02_network
index 12098f0bbf..471f9ecfbd 100644
--- a/target/linux/ramips/mt7621/base-files/etc/board.d/02_network
+++ b/target/linux/ramips/mt7621/base-files/etc/board.d/02_network
@@ -299,10 +299,6 @@ ramips_setup_macs()
 		wan_mac=$(mtd_get_mac_ascii Config wan_hwaddr)
 		label_mac=$lan_mac
 		;;
-	mikrotik,ltap-2hnd)
-		label_mac=$(cat "/sys/firmware/mikrotik/hard_config/mac_base")
-		lan_mac=$label_mac
-		;;
 	tplink,er605-v2)
 		CI_UBIPART="firmware"
 		label_mac=$(mtd_get_mac_uci_config_ubi "tddp")
@@ -314,14 +310,6 @@ ramips_setup_macs()
 		wwan_mac=$(macaddr_add $label_mac 1)
 		ucidef_set_interface "wwan0" device "/dev/cdc-wdm0" protocol "qmi" macaddr "$wwan_mac"
 		;;
-	mikrotik,routerboard-750gr3|\
-	mikrotik,routerboard-760igs|\
-	mikrotik,routerboard-m11g|\
-	mikrotik,routerboard-m33g)
-		label_mac=$(cat "/sys/firmware/mikrotik/hard_config/mac_base")
-		wan_mac=$label_mac
-		lan_mac=$(macaddr_add $label_mac 1)
-		;;
 	ruijie,rg-ew1200g-pro-v1.1)
 		lan_mac=$(mtd_get_mac_ascii product_info ethaddr)
 		wan_mac=$(macaddr_add "$lan_mac" 8)
diff --git a/target/linux/ramips/mt7621/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom b/target/linux/ramips/mt7621/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom
index 0bf5e85cd0..a334d1a5a0 100644
--- a/target/linux/ramips/mt7621/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom
+++ b/target/linux/ramips/mt7621/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom
@@ -4,26 +4,13 @@
 
 . /lib/functions/caldata.sh
 
-caldata_mikrotik_ath9k() {
-	local offset=$(($1))
-	local count=$(($2))
-	local macaddr=$3
-	local wlan_data="/sys/firmware/mikrotik/hard_config/wlan_data"
-
-	caldata_from_file $wlan_data $offset $count /tmp/$FIRMWARE
-	ath9k_patch_mac "$macaddr" /tmp/$FIRMWARE
-	caldata_sysfsload_from_file /tmp/$FIRMWARE 0x0 $count
-	rm -f /tmp/$FIRMWARE
-}
-
 board=$(board_name)
 
 case "$FIRMWARE" in
 "ath9k-eeprom-pci-0000:01:00.0.bin")
 	case $board in
 	mikrotik,ltap-2hnd)
-		mac_base="$(cat /sys/firmware/mikrotik/hard_config/mac_base)"
-		caldata_mikrotik_ath9k 0x5000 0x440 $(macaddr_add "$mac_base" 1)
+		caldata_sysfsload_from_file "/sys/firmware/mikrotik/hard_config/wlan_data" 0x5000 0x440
 		;;
 	*)
 		caldata_die "board $board is not supported yet"
diff --git a/target/linux/ramips/mt7621/config-6.6 b/target/linux/ramips/mt7621/config-6.6
index adbb7c8465..5e10f03ac1 100644
--- a/target/linux/ramips/mt7621/config-6.6
+++ b/target/linux/ramips/mt7621/config-6.6
@@ -202,7 +202,7 @@ CONFIG_NO_HZ_IDLE=y
 CONFIG_NR_CPUS=4
 CONFIG_NVMEM=y
 CONFIG_NVMEM_LAYOUTS=y
-# CONFIG_NVMEM_LAYOUT_MIKROTIK is not set
+CONFIG_NVMEM_LAYOUT_MIKROTIK=y
 CONFIG_NVMEM_LAYOUT_U_BOOT_ENV=y
 CONFIG_OF=y
 CONFIG_OF_ADDRESS=y




More information about the lede-commits mailing list