2 # Copyright (C) 2011 OpenWrt.org
6 REQUIRE_IMAGE_METADATA
=1
8 RAMFS_COPY_BIN
='fw_printenv fw_setenv'
9 RAMFS_COPY_DATA
='/etc/fw_env.config /var/lock/fw_printenv.lock'
11 redboot_fis_do_upgrade
() {
15 local magic
=$
(get_magic_word
"$sysup_file")
17 if [ "$magic" = "4349" ]; then
18 local kern_length
=0x$
(dd if="$sysup_file" bs
=2 skip
=1 count
=4 2>/dev
/null
)
20 [ -f "$UPGRADE_BACKUP" ] && append
="-j $UPGRADE_BACKUP"
21 dd if="$sysup_file" bs
=64k skip
=1 2>/dev
/null | \
22 mtd
-r $append -F$kern_part:$kern_length:0x80060000,rootfs
write - $kern_part:rootfs
24 elif [ "$magic" = "7379" ]; then
25 local board_dir
=$
(tar tf
$sysup_file |
grep -m 1 '^sysupgrade-.*/$')
26 local kern_length
=$
(tar xf
$sysup_file ${board_dir}kernel
-O |
wc -c)
28 [ -f "$UPGRADE_BACKUP" ] && append
="-j $UPGRADE_BACKUP"
29 tar xf
$sysup_file ${board_dir}kernel
${board_dir}root
-O | \
30 mtd
-r $append -F$kern_part:$kern_length:0x80060000,rootfs
write - $kern_part:rootfs
33 echo "Unknown image, aborting!"
38 platform_check_image
() {
42 platform_do_upgrade
() {
43 local board
=$
(board_name
)
48 redboot_fis_do_upgrade
"$1" vmlinux_2
51 redboot_fis_do_upgrade
"$1" linux
68 platform_do_upgrade_openmesh
"$1"
73 platform_do_upgrade_dualboot_datachk
"$1"
76 ubnt
,routerstation-pro
)
77 redboot_fis_do_upgrade
"$1" kernel
80 default_do_upgrade
"$1"