Files
wlan-ap/feeds/mediatek-sdk/mediatek/mt7981/base-files/lib/upgrade/platform.sh
2025-06-10 08:55:54 +02:00

114 lines
2.9 KiB
Bash

REQUIRE_IMAGE_METADATA=1
swap_wap588m_active_fw() {
echo "Doing swap active_fw" > /dev/console
tmp_active_fw=$(fw_printenv | grep active_fw | awk -F= {'print $2'})
if [ $tmp_active_fw == "0" ]; then
fw_setenv active_fw 1
fw_setenv mtdparts nmbm0:1024k\(bl2\),512k\(u-boot-env\),2048k\(factory\),2048k\(fip\),56320k\(ubi_1\),56320k\(ubi\),384k\(cert\),640k\(userconfig\),384k\(crashdump\)
else
fw_setenv active_fw 0
fw_setenv mtdparts nmbm0:1024k\(bl2\),512k\(u-boot-env\),2048k\(factory\),2048k\(fip\),56320k\(ubi\),56320k\(ubi_1\),384k\(cert\),640k\(userconfig\),384k\(crashdump\)
fi
}
senao_swap_active_fw() {
echo "Doing swap active_fw" > /dev/console
tmp_active_fw=$(fw_printenv -n active_fw)
if [ $tmp_active_fw == "0" ]; then
fw_setenv active_fw 1
fw_setenv mtdparts nmbm0:1024k\(bl2\),512k\(u-boot-env\),2048k\(factory\),2048k\(fip\),112640k\(ubi_1\),112640k\(ubi\),384k\(cert\),640k\(userconfig\),384k\(crashdump\)
else
fw_setenv active_fw 0
fw_setenv mtdparts nmbm0:1024k\(bl2\),512k\(u-boot-env\),2048k\(factory\),2048k\(fip\),112640k\(ubi\),112640k\(ubi_1\),384k\(cert\),640k\(userconfig\),384k\(crashdump\)
fi
}
platform_do_upgrade() {
local board=$(board_name)
case "$board" in
edgecore,eap111|\
edgecore,eap112)
if [ -e /tmp/downgrade ]; then
CI_UBIPART="rootfs1"
{ echo 'active 1'; echo 'upgrade_available 0'; } > /tmp/fw_setenv.txt || exit 1
CI_FWSETENV="-s /tmp/fw_setenv.txt"
else
local CI_UBIPART_B=""
if grep -q rootfs1 /proc/cmdline; then
CI_UBIPART="rootfs2"
CI_UBIPART_B="rootfs1"
CI_FWSETENV="active 2"
elif grep -q rootfs2 /proc/cmdline; then
CI_UBIPART="rootfs1"
CI_UBIPART_B="rootfs2"
CI_FWSETENV="active 1"
else
CI_UBIPART="rootfs1"
CI_UBIPART_B=""
CI_FWSETENV="active 1"
fi
if [ "$(fw_printenv -n upgrade_available 2>/dev/null)" = "0" ]; then
if [ -n "$CI_UBIPART_B" ]; then
CI_UBIPART="$CI_UBIPART_B"
CI_FWSETENV=""
fi
fi
fi
nand_do_upgrade "$1"
;;
senao,iap2300m|\
emplus,wap588m|\
senao,jeap6500)
CI_UBIPART="ubi_1"
nand_do_upgrade "$1"
;;
sonicfi,rap630w-211g)
chmod +x /tmp/root/lib/upgrade/sonicfi/nand_sonicfi_rap630w_211g.sh
/tmp/root/lib/upgrade/sonicfi/nand_sonicfi_rap630w_211g.sh "$1"
;;
esac
}
platform_check_image() {
local board=$(board_name)
local magic="$(get_magic_long "$1")"
[ "$#" -gt 1 ] && return 1
case "$board" in
edgecore,eap111|\
edgecore,eap112|\
senao,iap2300m|\
emplus,wap588m|\
senao,jeap6500)
nand_do_platform_check "$board" "$1"
return $?
;;
sonicfi,rap630w-211g)
[ "$magic" != "73797375" ] && {
echo "Invalid image type."
return 1
}
return 0
;;
esac
return 0
}
platform_post_upgrade_success() {
local board=$(board_name)
case "$board" in
senao,iap2300m|\
senao,jeap6500)
senao_swap_active_fw
;;
emplus,wap588m)
swap_wap588m_active_fw
;;
esac
}