]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
ipq40xx: use NVMEM-on-UBI for ASUS Lyra and introduce label mac 20612/head
authorSteffen Förster <nemesis@chemnitz.freifunk.net>
Fri, 31 Oct 2025 14:15:34 +0000 (15:15 +0100)
committerRobert Marko <robimarko@gmail.com>
Sat, 1 Nov 2025 18:31:15 +0000 (19:31 +0100)
Switch the mac lookup to NVMEM on UBI layout and add label-mac

Signed-off-by: Steffen Förster <nemesis@chemnitz.freifunk.net>
Link: https://github.com/openwrt/openwrt/pull/20612
Signed-off-by: Robert Marko <robimarko@gmail.com>
target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
target/linux/ipq40xx/base-files/lib/preinit/05_set_iface_mac_ipq40xx.sh
target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-map-ac2200.dts

index 0c8a5d8aa5ba61b6a32300ee5d41165ed972645e..469c0626ee0927032cc4b7614f372bbcbe36c758 100644 (file)
@@ -9,11 +9,6 @@ board=$(board_name)
 case "$FIRMWARE" in
 "ath10k/pre-cal-pci-0000:01:00.0.bin")
        case "$board" in
-       asus,map-ac2200)
-               caldata_extract_ubi "Factory" 0x9000 0x2f20
-               ln -sf /lib/firmware/ath10k/pre-cal-pci-0000\:00\:00.0.bin \
-                       /lib/firmware/ath10k/QCA9888/hw2.0/board.bin
-               ;;
        asus,rt-ac42u)
                caldata_extract_ubi "Factory" 0x9000 0x2f20
                ;;
@@ -48,7 +43,6 @@ case "$FIRMWARE" in
        ;;
 "ath10k/pre-cal-ahb-a000000.wifi.bin")
        case "$board" in
-       asus,map-ac2200|\
        asus,rt-ac42u)
                caldata_extract_ubi "Factory" 0x1000 0x2f20
                ;;
@@ -143,9 +137,6 @@ case "$FIRMWARE" in
        ;;
 "ath10k/pre-cal-ahb-a800000.wifi.bin")
        case "$board" in
-       asus,map-ac2200)
-               caldata_extract_ubi "Factory" 0x5000 0x2f20
-               ;;
        avm,fritzbox-4040)
                /usr/bin/fritz_cal_extract -i 1 -s 0x400 -e 0x208 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader_config")
                ;;
index 092f9da4407b21cabaac1bd86f087a9b5dc1f6f2..12d9b4eeecaaca319bb8312dc82e2ff66d067fc9 100644 (file)
@@ -2,11 +2,6 @@
 
 preinit_set_mac_address() {
        case $(board_name) in
-       asus,map-ac2200)
-               base_mac=$(mtd_get_mac_binary_ubi Factory 0x1006)
-               ip link set dev eth0 address $(macaddr_add "$base_mac" 1)
-               ip link set dev eth1 address $(macaddr_add "$base_mac" 3)
-               ;;
        asus,rt-ac42u)
                base_mac=$(mtd_get_mac_binary_ubi Factory 0x1006)
                ip link set dev eth0 address $base_mac
index 497e38f018d7b96b994b5364fe88b92ac0889228..f64ffd85229c9702a5ecabe979b5ae8e97fe3f00 100644 (file)
@@ -15,9 +15,8 @@
                led-failsafe = &led_red0;
                led-running = &led_blue0;
                led-upgrade = &led_red0;
-               // TODO: Verify if the ethernet0 alias is needed
-               ethernet0 = &gmac;
                ethernet1 = &swport4;
+               label-mac-device = &wifi0;
        };
 
        soc {
                        };
 
                        partition@400000 {
-                               label = "ubi";
+                               compatible = "linux,ubi";
                                reg = <0x400000 0x7c00000>;
+                               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 {
+                       compatible = "mac-base";
+                       reg = <0x1006 0x6>;
+                       #nvmem-cell-cells = <1>;
+               };
+
+               precal_factory_5000: precal@5000 {
+                       reg = <0x5000 0x2f20>;
+               };
+
+               precal_factory_9000: precal@9000 {
+                       reg = <0x9000 0x2f20>;
+               };
+       };
+};
+
 &tlmm {
        i2c_0_pins: i2c_0_pinmux {
                pinmux {
 
 &wifi0 {
        status = "okay";
+       nvmem-cell-names = "pre-calibration";
+       nvmem-cells = <&precal_factory_1000>;
        qcom,ath10k-calibration-variant = "ASUS-MAP-AC2200";
 };
 
 &wifi1 {
        status = "okay";
+       nvmem-cell-names = "pre-calibration";
+       nvmem-cells = <&precal_factory_5000>;
        qcom,ath10k-calibration-variant = "ASUS-MAP-AC2200";
        ieee80211-freq-limit = <5470000 5875000>;
 };
                compatible = "qcom,ath10k";
                reg = <0x00010000 0 0 0 0>;
                ieee80211-freq-limit = <5170000 5350000>;
+               nvmem-cell-names = "pre-calibration";
+               nvmem-cells = <&precal_factory_9000>;
                qcom,ath10k-calibration-variant = "ASUS-MAP-AC2200";
+               status = "okay";
        };
 };
 
 
 &gmac {
        status = "okay";
+       nvmem-cell-names = "mac-address";
+       nvmem-cells = <&macaddr_factory_1006 1>;
 };
 
 &switch {
 
 &swport4 {
        status = "okay";
+       nvmem-cell-names = "mac-address";
+       nvmem-cells = <&macaddr_factory_1006 3>;
 
        label = "wan";
 };