Previous commit 0cc87b3
"ath79: image: disable sysupgrade images for
routerstations and ja76pf2" doesn't remedy completely the posibility of
bricking the device, since user could try to downgrade with an older
image. Therefore disable sysupgrade code for these boards with a small
note.
Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
59 lines
1.3 KiB
Bash
59 lines
1.3 KiB
Bash
#
|
|
# Copyright (C) 2011 OpenWrt.org
|
|
#
|
|
|
|
PART_NAME=firmware
|
|
REQUIRE_IMAGE_METADATA=1
|
|
|
|
redboot_fis_do_upgrade() {
|
|
local append
|
|
local sysup_file="$1"
|
|
local kern_part="$2"
|
|
local magic=$(get_magic_word "$sysup_file")
|
|
|
|
if [ "$magic" = "4349" ]; then
|
|
local kern_length=0x$(dd if="$sysup_file" bs=2 skip=1 count=4 2>/dev/null)
|
|
|
|
[ -f "$UPGRADE_BACKUP" ] && append="-j $UPGRADE_BACKUP"
|
|
dd if="$sysup_file" bs=64k skip=1 2>/dev/null | \
|
|
mtd -r $append -F$kern_part:$kern_length:0x80060000,rootfs write - $kern_part:rootfs
|
|
|
|
elif [ "$magic" = "7379" ]; then
|
|
local board_dir=$(tar tf $sysup_file | grep -m 1 '^sysupgrade-.*/$')
|
|
local kern_length=$(tar xf $sysup_file ${board_dir}kernel -O | wc -c)
|
|
|
|
[ -f "$UPGRADE_BACKUP" ] && append="-j $UPGRADE_BACKUP"
|
|
tar xf $sysup_file ${board_dir}kernel ${board_dir}root -O | \
|
|
mtd -r $append -F$kern_part:$kern_length:0x80060000,rootfs write - $kern_part:rootfs
|
|
|
|
else
|
|
echo "Unknown image, aborting!"
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
platform_check_image() {
|
|
return 0
|
|
}
|
|
|
|
platform_do_upgrade() {
|
|
local board=$(board_name)
|
|
|
|
case "$board" in
|
|
adtran,bsap1800-v2|\
|
|
adtran,bsap1840)
|
|
redboot_fis_do_upgrade "$1" vmlinux_2
|
|
;;
|
|
jjplus,ja76pf2)
|
|
echo "Sysupgrade disabled due bug FS#2428"
|
|
;;
|
|
ubnt,routerstation|\
|
|
ubnt,routerstation-pro)
|
|
echo "Sysupgrade disabled due bug FS#2428"
|
|
;;
|
|
*)
|
|
default_do_upgrade "$1"
|
|
;;
|
|
esac
|
|
}
|