summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaweł Owoc2024-12-12 18:51:27 +0000
committerRobert Marko2025-10-16 09:47:19 +0000
commitd63824f78f1f1ebea7134646575f5574d2bbec5b (patch)
tree339dd07815476db6a0ccfb8896541b0da47eba79
parentf84fde7fb96ecfd63ae568a764641a15bb11f65e (diff)
downloadopenwrt-d63824f78f1f1ebea7134646575f5574d2bbec5b.tar.gz
qualcommax: ipq807x: Update u-boot env only when changes for Linksys MX devices
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>
-rw-r--r--target/linux/qualcommax/ipq807x/base-files/lib/upgrade/platform.sh25
1 files changed, 21 insertions, 4 deletions
diff --git a/target/linux/qualcommax/ipq807x/base-files/lib/upgrade/platform.sh b/target/linux/qualcommax/ipq807x/base-files/lib/upgrade/platform.sh
index e3cf4a1160..3deb102a8f 100644
--- a/target/linux/qualcommax/ipq807x/base-files/lib/upgrade/platform.sh
+++ b/target/linux/qualcommax/ipq807x/base-files/lib/upgrade/platform.sh
@@ -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"
}