diff options
Diffstat (limited to 'target/linux/octeon/base-files/lib/upgrade/platform.sh')
-rwxr-xr-x | target/linux/octeon/base-files/lib/upgrade/platform.sh | 39 |
1 files changed, 29 insertions, 10 deletions
diff --git a/target/linux/octeon/base-files/lib/upgrade/platform.sh b/target/linux/octeon/base-files/lib/upgrade/platform.sh index c137609d7f..d938950906 100755 --- a/target/linux/octeon/base-files/lib/upgrade/platform.sh +++ b/target/linux/octeon/base-files/lib/upgrade/platform.sh @@ -28,6 +28,11 @@ platform_copy_config() { cp -af "$UPGRADE_BACKUP" "/mnt/$BACKUP_FILE" umount /mnt ;; + itus,shield-router) + mount -t vfat /dev/mmcblk1p1 /mnt + cp -af "$UPGRADE_BACKUP" "/mnt/$BACKUP_FILE" + umount /mnt + ;; esac } @@ -42,18 +47,29 @@ platform_do_flash() { [ -n "$board_dir" ] || return 1 mkdir -p /boot - mount -t vfat /dev/$kernel /boot - [ -f /boot/vmlinux.64 -a ! -L /boot/vmlinux.64 ] && { - mv /boot/vmlinux.64 /boot/vmlinux.64.previous - mv /boot/vmlinux.64.md5 /boot/vmlinux.64.md5.previous - } + if [ $board = "itus,shield-router" ]; then + # mmcblk1p1 (fat) contains all ELF-bin images for the Shield + mount /dev/mmcblk1p1 /boot + + echo "flashing Itus Kernel to /boot/$kernel (/dev/mmblk1p1)" + tar -Oxf $tar_file "$board_dir/kernel" > /boot/$kernel + else + mount -t vfat /dev/$kernel /boot + + [ -f /boot/vmlinux.64 -a ! -L /boot/vmlinux.64 ] && { + mv /boot/vmlinux.64 /boot/vmlinux.64.previous + mv /boot/vmlinux.64.md5 /boot/vmlinux.64.md5.previous + } + + echo "flashing kernel to /dev/$kernel" + tar xf $tar_file $board_dir/kernel -O > /boot/vmlinux.64 + md5sum /boot/vmlinux.64 | cut -f1 -d " " > /boot/vmlinux.64.md5 + fi - echo "flashing kernel to /dev/$kernel" - tar xf $tar_file $board_dir/kernel -O > /boot/vmlinux.64 - md5sum /boot/vmlinux.64 | cut -f1 -d " " > /boot/vmlinux.64.md5 echo "flashing rootfs to ${rootfs}" tar xf $tar_file $board_dir/root -O | dd of="${rootfs}" bs=4096 + sync umount /boot } @@ -72,6 +88,9 @@ platform_do_upgrade() { erlite) kernel=sda1 ;; + itus,shield-router) + kernel=ItusrouterImage + ;; *) return 1 esac @@ -79,7 +98,6 @@ platform_do_upgrade() { platform_do_flash $tar_file $board $kernel $rootfs return 0 - } platform_check_image() { @@ -92,7 +110,8 @@ platform_check_image() { case "$board" in er | \ - erlite) + erlite | \ + itus,shield-router) local kernel_length=$(tar xf $tar_file $board_dir/kernel -O | wc -c 2> /dev/null) local rootfs_length=$(tar xf $tar_file $board_dir/root -O | wc -c 2> /dev/null) [ "$kernel_length" = 0 -o "$rootfs_length" = 0 ] && { |