]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
qualcommax: ipq807x: Update u-boot env only when changes for Linksys MX devices
authorPaweł Owoc <frut3k7@gmail.com>
Thu, 12 Dec 2024 18:51:27 +0000 (19:51 +0100)
committerRobert Marko <robimarko@gmail.com>
Thu, 16 Oct 2025 09:47:19 +0000 (11:47 +0200)
Update u-boot env variables only when changes are made.
Applies to Linksys MX4200/MX4300/MX5300/MX8500.

Signed-off-by: Paweł Owoc <frut3k7@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/14720
Link: https://github.com/openwrt/openwrt/pull/20086
Signed-off-by: Robert Marko <robimarko@gmail.com>
target/linux/qualcommax/ipq807x/base-files/lib/upgrade/platform.sh

index e3cf4a11602ac28d0c42018d4e4f64892a7ad037..3deb102a8fa9248627f3e8e71a32707f62f8be80 100644 (file)
@@ -109,6 +109,8 @@ tplink_do_upgrade() {
 }
 
 linksys_mx_do_upgrade() {
+       local setenv_script="/tmp/fw_env_upgrade"
+
        CI_UBIPART="rootfs"
        boot_part="$(fw_printenv -n boot_part)"
        if [ -n "$UPGRADE_OPT_USE_CURR_PART" ]; then
@@ -118,15 +120,30 @@ linksys_mx_do_upgrade() {
                fi
        else
                if [ "$boot_part" -eq "1" ]; then
-                       fw_setenv boot_part 2
+                       echo "boot_part 2" >> $setenv_script
                        CI_KERNPART="alt_kernel"
                        CI_UBIPART="alt_rootfs"
                else
-                       fw_setenv boot_part 1
+                       echo "boot_part 1" >> $setenv_script
                fi
        fi
-       fw_setenv boot_part_ready 3
-       fw_setenv auto_recovery yes
+
+       boot_part_ready="$(fw_printenv -n boot_part_ready)"
+       if [ "$boot_part_ready" -ne "3" ]; then
+               echo "boot_part_ready 3" >> $setenv_script
+       fi
+
+       auto_recovery="$(fw_printenv -n auto_recovery)"
+       if [ "$auto_recovery" != "yes" ]; then
+               echo "auto_recovery yes" >> $setenv_script
+       fi
+
+       if [ -f "$setenv_script" ]; then
+               fw_setenv -s $setenv_script || {
+                       echo "failed to update U-Boot environment"
+                       return 1
+               }
+       fi
        nand_do_upgrade "$1"
 }