aboutsummaryrefslogtreecommitdiffstats
path: root/target
diff options
context:
space:
mode:
authorLech Perczak <lech.perczak@gmail.com>2021-12-15 21:10:11 +0100
committerDavid Bauer <mail@david-bauer.net>2022-10-02 23:04:39 +0200
commitb9b4c51b2b78ba501cbf47b7d9fc19cf8bcd65ea (patch)
tree6b770e2e09d5df6d1bce6240a950da8192351d1e /target
parent550253bdf99280b3017baf56dec36406fa395734 (diff)
downloadupstream-b9b4c51b2b78ba501cbf47b7d9fc19cf8bcd65ea.tar.gz
upstream-b9b4c51b2b78ba501cbf47b7d9fc19cf8bcd65ea.tar.bz2
upstream-b9b4c51b2b78ba501cbf47b7d9fc19cf8bcd65ea.zip
ipq40xx: Meraki MR33: convert MAC addresses to nvmem
This fixes assigning random MAC to br-lan interface upon boot. While at that, rename at24@50 node to eeprom@50, to align with upstream device tree style. Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
Diffstat (limited to 'target')
-rw-r--r--target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata3
-rw-r--r--target/linux/ipq40xx/base-files/lib/preinit/05_set_iface_mac_ipq40xx.sh5
-rw-r--r--target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4029-insect-common.dtsi20
3 files changed, 19 insertions, 9 deletions
diff --git a/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
index f8d270a659..64215746d5 100644
--- a/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
+++ b/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
@@ -13,7 +13,6 @@ case "$FIRMWARE" in
meraki,mr74)
caldata_extract_ubi "ART" 0x9000 0x844
caldata_valid "4408" || caldata_extract "ART" 0x9000 0x844
- ath10k_patch_mac $(macaddr_add $(get_mac_binary "/sys/bus/i2c/devices/0-0050/eeprom" 0x66) 1)
;;
esac
;;
@@ -117,7 +116,6 @@ case "$FIRMWARE" in
meraki,mr74)
caldata_extract_ubi "ART" 0x1000 0x2f20
caldata_valid "202f" || caldata_extract "ART" 0x1000 0x2f20
- ath10k_patch_mac $(macaddr_add $(get_mac_binary "/sys/bus/i2c/devices/0-0050/eeprom" 0x66) 2)
;;
mikrotik,cap-ac |\
mikrotik,hap-ac2 |\
@@ -214,7 +212,6 @@ case "$FIRMWARE" in
meraki,mr74)
caldata_extract_ubi "ART" 0x5000 0x2f20
caldata_valid "202f" || caldata_extract "ART" 0x5000 0x2f20
- ath10k_patch_mac $(macaddr_add $(get_mac_binary "/sys/bus/i2c/devices/0-0050/eeprom" 0x66) 3)
;;
mikrotik,cap-ac |\
mikrotik,hap-ac2 |\
diff --git a/target/linux/ipq40xx/base-files/lib/preinit/05_set_iface_mac_ipq40xx.sh b/target/linux/ipq40xx/base-files/lib/preinit/05_set_iface_mac_ipq40xx.sh
index 3c247ae6aa..18c24e0511 100644
--- a/target/linux/ipq40xx/base-files/lib/preinit/05_set_iface_mac_ipq40xx.sh
+++ b/target/linux/ipq40xx/base-files/lib/preinit/05_set_iface_mac_ipq40xx.sh
@@ -24,11 +24,6 @@ preinit_set_mac_address() {
ip link set dev lan1 address $(macaddr_add "$base_mac" 1)
ip link set dev eth0 address $(macaddr_setbit "$base_mac" 7)
;;
- meraki,mr33|\
- meraki,mr74)
- mac_lan=$(get_mac_binary "/sys/bus/i2c/devices/0-0050/eeprom" 0x66)
- [ -n "$mac_lan" ] && ip link set dev eth0 address "$mac_lan"
- ;;
mikrotik,wap-ac)
base_mac=$(cat /sys/firmware/mikrotik/hard_config/mac_base)
ip link set dev eth0 address "$base_mac"
diff --git a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4029-insect-common.dtsi b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4029-insect-common.dtsi
index bc385d330e..ebfab171f5 100644
--- a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4029-insect-common.dtsi
+++ b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4029-insect-common.dtsi
@@ -127,11 +127,18 @@
pinctrl-0 = <&i2c_0_pins>;
pinctrl-names = "default";
status = "okay";
- at24@50 {
+
+ eeprom@50 {
compatible = "atmel,24c64";
pagesize = <32>;
reg = <0x50>;
read-only; /* This holds our MAC & Meraki board-data */
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ mac_address: mac-address@66 {
+ reg = <0x66 0x6>;
+ };
};
};
@@ -277,6 +284,9 @@
compatible = "qcom,ath10k";
status = "okay";
reg = <0x00010000 0 0 0 0>;
+ nvmem-cells = <&mac_address>;
+ nvmem-cell-names = "mac-address";
+ mac-address-increment = <1>;
};
};
};
@@ -380,15 +390,23 @@
&wifi0 {
status = "okay";
qcom,ath10k-calibration-variant = "Meraki-MR33";
+ nvmem-cells = <&mac_address>;
+ nvmem-cell-names = "mac-address";
+ mac-address-increment = <2>;
};
&wifi1 {
status = "okay";
qcom,ath10k-calibration-variant = "Meraki-MR33";
+ nvmem-cells = <&mac_address>;
+ nvmem-cell-names = "mac-address";
+ mac-address-increment = <3>;
};
&gmac {
status = "okay";
+ nvmem-cells = <&mac_address>;
+ nvmem-cell-names = "mac-address";
};
&switch {