openwrt/target/linux/lantiq/base-files/lib/upgrade/platform.sh
John Crispin 57c8708d64 lantiq: add platform_pre_upgrade for sysupgrade
As explained in recent sysupgrade/nand.sh commits, current NAND
sysupgrade is a bit misleading because of nand_do_platform_check
behavior. It leaves a special mark in /tmp/sysupgrade-nand-path
triggering some diffent code path in nand_upgrade_stage1.

The plan is to have the check function only check the image and nothing
else. Then platform code (platform_pre_upgrade) should trigger NAND
specific upgrade path. This is what this patch implements.

Please note that because of current nand_upgrade_stage1 implementation
this patch doesn't change any behaior yet. It only prepares lantiq
target for changing nand_do_platform_check (it will be possible after
preparing all other targets as well).

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>

SVN-Revision: 46939
2015-09-15 06:13:07 +00:00

48 lines
810 B
Bash
Executable File

. /lib/functions/lantiq.sh
PART_NAME=firmware
platform_check_image() {
[ "$#" -gt 1 ] && return 1
local board=$(lantiq_board_name)
case "$board" in
BTHOMEHUBV2B|BTHOMEHUBV3A|BTHOMEHUBV5A|P2812HNUF* )
nand_do_platform_check $board $1
return $?;
;;
esac
case "$(get_magic_word "$1")" in
# uImage
2705) return 0;;
# tplink
0200) return 0;;
*)
echo "Invalid image type"
return 1
;;
esac
}
platform_pre_upgrade() {
local board=$(lantiq_board_name)
case "$board" in
BTHOMEHUBV2B|BTHOMEHUBV3A|P2812HNUF* )
nand_do_upgrade $1
;;
esac
}
# use default for platform_do_upgrade()
disable_watchdog() {
killall watchdog
( ps | grep -v 'grep' | grep '/dev/watchdog' ) && {
echo 'Could not disable watchdog'
return 1
}
}
append sysupgrade_pre_upgrade disable_watchdog