mirror of
https://github.com/openwrt/openwrt.git
synced 2025-01-06 22:08:54 +00:00
94530067ad
Don't comence the switch to RAMFS when the image format is wrong. This
led to rebooting the device, which could lead to false impression that
upgrade succeded.
Being here, factor out the code responsible for upgrading RedBoot
devices to separate file.
Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com>
(cherry picked from commit 5897c52e78
)
32 lines
842 B
Bash
32 lines
842 B
Bash
platform_check_image_redboot_fis() {
|
|
if [ "$(get_magic_word "$1")" != "7379" ]; then
|
|
v "Unknown image format, aborting!"
|
|
return 1
|
|
else
|
|
return 0
|
|
fi
|
|
}
|
|
|
|
platform_do_upgrade_redboot_fis() {
|
|
local append
|
|
local sysup_file="$1"
|
|
local kern_part="$2"
|
|
|
|
if [ "$(get_magic_word "$sysup_file")" = "7379" ]; then
|
|
local board_dir=$(tar tf $sysup_file | grep -m 1 '^sysupgrade-.*/$')
|
|
|
|
[ -f "$UPGRADE_BACKUP" ] && append="-j $UPGRADE_BACKUP"
|
|
|
|
if grep -q "mtd1.*loader" /proc/mtd; then
|
|
tar xf $sysup_file ${board_dir}kernel ${board_dir}root -O | \
|
|
mtd -r $append write - loader:firmware
|
|
|
|
else
|
|
local kern_length=$(tar xf $sysup_file ${board_dir}kernel -O | wc -c)
|
|
|
|
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
|
|
fi
|
|
fi
|
|
}
|