summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Golle2024-02-25 21:59:39 +0000
committerDaniel Golle2024-06-05 12:46:00 +0000
commit683a35098ff603e073acf13e124bfc0708852c51 (patch)
treed572fb6216e21949c4e03dfd6f6dc50b3706d11f
parentf1091ef7ac3596f1e401b918a36273672acbe389 (diff)
downloadopenwrt-683a35098ff603e073acf13e124bfc0708852c51.tar.gz
ipq40xx: use NVMEM-on-UBI for ASUS RT-AC58U
Instead of extracting WiFi precal as well as MAC addresses in userspace use recently introduced NVMEM-on-UBI instead. Signed-off-by: Daniel Golle <daniel@makrotopia.org> Tested-by: Christian Lamparter <chunkeey@gmail.com>
-rw-r--r--target/linux/ipq40xx/base-files/etc/board.d/02_network5
-rw-r--r--target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata6
-rw-r--r--target/linux/ipq40xx/config-6.61
-rw-r--r--target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-rt-ac58u.dts42
4 files changed, 44 insertions, 10 deletions
diff --git a/target/linux/ipq40xx/base-files/etc/board.d/02_network b/target/linux/ipq40xx/base-files/etc/board.d/02_network
index df0fca7544..7a2874a6e4 100644
--- a/target/linux/ipq40xx/base-files/etc/board.d/02_network
+++ b/target/linux/ipq40xx/base-files/etc/board.d/02_network
@@ -170,11 +170,6 @@ ipq40xx_setup_macs()
asus,rt-ac42u)
label_mac=$(mtd_get_mac_binary_ubi Factory 0x1006)
;;
- asus,rt-ac58u)
- wan_mac=$(mtd_get_mac_binary_ubi Factory 0x1006)
- lan_mac=$(mtd_get_mac_binary_ubi Factory 0x5006)
- label_mac=$wan_mac
- ;;
avm,fritzbox-7530)
local tffsdev=$(find_mtd_chardev "nand-tffs")
wan_mac=$(/usr/bin/fritz_tffs_nand -b -d $tffsdev -n macdsl)
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 3b7f44282d..4a1a0ff311 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
@@ -58,8 +58,7 @@ case "$FIRMWARE" in
"ath10k/pre-cal-ahb-a000000.wifi.bin")
case "$board" in
asus,map-ac2200|\
- asus,rt-ac42u|\
- asus,rt-ac58u)
+ asus,rt-ac42u)
caldata_extract_ubi "Factory" 0x1000 0x2f20
;;
avm,fritzbox-4040)
@@ -158,8 +157,7 @@ case "$FIRMWARE" in
;;
"ath10k/pre-cal-ahb-a800000.wifi.bin")
case "$board" in
- asus,map-ac2200|\
- asus,rt-ac58u)
+ asus,map-ac2200)
caldata_extract_ubi "Factory" 0x5000 0x2f20
;;
avm,fritzbox-4040)
diff --git a/target/linux/ipq40xx/config-6.6 b/target/linux/ipq40xx/config-6.6
index 52ac1a585e..3049efc3d6 100644
--- a/target/linux/ipq40xx/config-6.6
+++ b/target/linux/ipq40xx/config-6.6
@@ -309,6 +309,7 @@ CONFIG_MTD_SPLIT_WRGG_FW=y
CONFIG_MTD_UBI=y
CONFIG_MTD_UBI_BEB_LIMIT=20
CONFIG_MTD_UBI_BLOCK=y
+CONFIG_MTD_UBI_NVMEM=y
CONFIG_MTD_UBI_WL_THRESHOLD=4096
CONFIG_MUTEX_SPIN_ON_OWNER=y
CONFIG_NEED_DMA_MAP_STATE=y
diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-rt-ac58u.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-rt-ac58u.dts
index 4f31c8f283..e58b3378d5 100644
--- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-rt-ac58u.dts
+++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-rt-ac58u.dts
@@ -20,6 +20,7 @@
led-failsafe = &led_power;
led-running = &led_power;
led-upgrade = &led_power;
+ label-mac-device = &swport5;
};
soc {
@@ -247,13 +248,44 @@
#size-cells = <1>;
partition@0 {
- label = "ubi";
+ compatible = "linux,ubi";
reg = <0x00000000 0x08000000>;
+ label = "ubi";
+
+ volumes {
+ ubi_factory: ubi-volume-factory {
+ volname = "Factory";
+ };
+ };
};
};
};
};
+&ubi_factory {
+ nvmem-layout {
+ compatible = "fixed-layout";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ precal_factory_1000: precal@1000 {
+ reg = <0x1000 0x2f20>;
+ };
+
+ macaddr_factory_1006: macaddr@1006 {
+ reg = <0x1006 0x6>;
+ };
+
+ precal_factory_5000: precal@5000 {
+ reg = <0x5000 0x2f20>;
+ };
+
+ macaddr_factory_5006: macaddr@5006 {
+ reg = <0x5006 0x6>;
+ };
+ };
+};
+
&blsp1_uart1 {
pinctrl-0 = <&serial_pins>;
pinctrl-names = "default";
@@ -293,6 +325,8 @@
&gmac {
status = "okay";
+ nvmem-cells = <&macaddr_factory_5006>;
+ nvmem-cell-names = "mac-address";
};
&switch {
@@ -317,14 +351,20 @@
&swport5 {
status = "okay";
+ nvmem-cells = <&macaddr_factory_1006>;
+ nvmem-cell-names = "mac-address";
};
&wifi0 {
status = "okay";
+ nvmem-cell-names = "pre-calibration";
+ nvmem-cells = <&precal_factory_1000>;
qcom,ath10k-calibration-variant = "RT-AC58U";
};
&wifi1 {
status = "okay";
+ nvmem-cell-names = "pre-calibration";
+ nvmem-cells = <&precal_factory_5000>;
qcom,ath10k-calibration-variant = "RT-AC58U";
};