#
PART_NAME=firmware
-RAMFS_COPY_BIN='nandwrite'
+REQUIRE_IMAGE_METADATA=1
-CI_BLKSZ=65536
-CI_LDADR=0x80060000
+redboot_fis_do_upgrade() {
+ local append
+ local sysup_file="$1"
+ local kern_part="$2"
+ local magic=$(get_magic_word "$sysup_file")
-PLATFORM_DO_UPGRADE_COMBINED_SEPARATE_MTD=0
+ if [ "$magic" = "4349" ]; then
+ local kern_length=0x$(dd if="$sysup_file" bs=2 skip=1 count=4 2>/dev/null)
-platform_check_image() {
- local board=$(board_name)
- local magic="$(get_magic_word "$1")"
- local magic_long="$(get_magic_long "$1")"
+ [ -f "$CONF_TAR" -a "$SAVE_CONFIG" -eq 1 ] && append="-j $CONF_TAR"
+ 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
- [ "$#" -gt 1 ] && return 1
+ 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)
- case "$board" in
- "ubnt,unifi")
- [ "$magic" != "2705" ] && {
- echo "Invalid image type."
- return 1
- }
+ [ -f "$CONF_TAR" -a "$SAVE_CONFIG" -eq 1 ] && append="-j $CONF_TAR"
+ 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
- return 0
- ;;
- esac
+ else
+ echo "Unknown image, aborting!"
+ return 1
+ fi
+}
- echo "Sysupgrade is not yet supported on $board."
- return 1
+platform_check_image() {
+ return 0
}
platform_do_upgrade() {
local board=$(board_name)
case "$board" in
+ jjplus,ja76pf2)
+ redboot_fis_do_upgrade "$ARGV" linux
+ ;;
+ ubnt,routerstation|\
+ ubnt,routerstation-pro)
+ redboot_fis_do_upgrade "$ARGV" kernel
+ ;;
*)
default_do_upgrade "$ARGV"
;;