diff options
author | Mathias Kresin <dev@kresin.me> | 2017-10-24 06:57:29 +0200 |
---|---|---|
committer | Mathias Kresin <dev@kresin.me> | 2017-10-25 09:22:13 +0200 |
commit | 605ce5f6cd8098f3813b44a64f8f1ac61cc92470 (patch) | |
tree | 32ec11ad7fcc9e02d2279a4d62c02038c9995bf6 /target/linux/mpc85xx/base-files | |
parent | dcbbac55edbcc97e1ba320149eba886d3ab901b0 (diff) | |
download | upstream-605ce5f6cd8098f3813b44a64f8f1ac61cc92470.tar.gz upstream-605ce5f6cd8098f3813b44a64f8f1ac61cc92470.tar.bz2 upstream-605ce5f6cd8098f3813b44a64f8f1ac61cc92470.zip |
mpc85xx: use image metadata
Append and enforce image metadata. Remove the device specific image
checks, they are replaced by image metadata.
Signed-off-by: Mathias Kresin <dev@kresin.me>
Diffstat (limited to 'target/linux/mpc85xx/base-files')
-rwxr-xr-x | target/linux/mpc85xx/base-files/lib/upgrade/platform.sh | 93 |
1 files changed, 3 insertions, 90 deletions
diff --git a/target/linux/mpc85xx/base-files/lib/upgrade/platform.sh b/target/linux/mpc85xx/base-files/lib/upgrade/platform.sh index 6c1a140461..67e8324c2a 100755 --- a/target/linux/mpc85xx/base-files/lib/upgrade/platform.sh +++ b/target/linux/mpc85xx/base-files/lib/upgrade/platform.sh @@ -3,100 +3,13 @@ # PART_NAME=firmware - -get_magic_long_at() { - (get_image "$1" | dd bs=4 count=1 skip="$2" | hexdump -v -n 4 -e '1/1 "%02x"') 2>/dev/null -} - -tplink_get_hwid() { - local part - - part=$(find_mtd_part u-boot) - [ -z "$part" ] && return 1 - - dd if=$part bs=4 count=1 skip=81728 2>/dev/null | hexdump -v -n 4 -e '1/1 "%02x"' -} - -tplink_get_image_hwid() { - get_image "$@" | dd bs=4 count=1 skip=16 2>/dev/null | hexdump -v -n 4 -e '1/1 "%02x"' -} - -tplink_get_image_boot_size() { - get_image "$@" | dd bs=4 count=1 skip=37 2>/dev/null | hexdump -v -n 4 -e '1/1 "%02x"' -} +REQUIRE_IMAGE_METADATA=1 platform_check_image() { - local board=$(board_name) - local magic="$(get_magic_long "$1")" - - [ "$#" -gt 1 ] && return 1 - - case $board in - aerohive,hiveap-330) - local init_magic=$(get_magic_long_at "$1" "65536") - local root_magic=$(get_magic_long_at "$1" "131072") - local kernel_magic=$(get_magic_long_at "$1" "10551296") - - [ "$magic" != "d00dfeed" ] && { - echo "Invalid dtb image type." - return 1 - } - [ "$init_magic" != "27051956" ] && { - echo "Invalid initramfs image type." - return 1 - } - [ "$root_magic" != "68737173" ] && { - echo "Invalid rootfs image type." - return 1 - } - [ "$kernel_magic" != "27051956" ] && { - echo "Invalid kernel image type." - return 1 - } - return 0 - ;; - tplink,tl-wdr4900-v1) - [ "$magic" != "01000000" ] && { - echo "Invalid image type." - return 1 - } - - local hwid - local imageid - - hwid=$(tplink_get_hwid) - imageid=$(tplink_get_image_hwid "$1") - - [ "$hwid" != "$imageid" ] && { - echo "Invalid image, hardware ID mismatch, hw:$hwid image:$imageid." - return 1 - } - - local boot_size - - boot_size=$(tplink_get_image_boot_size "$1") - [ "$boot_size" != "00000000" ] && { - echo "Invalid image, it contains a bootloader." - return 1 - } - - return 0 - ;; - esac - - echo "Sysupgrade is not yet supported on $board." - return 1 + return 0 } -platform_do_upgrade() { - local board=$(board_name) - - case "$board" in - *) - default_do_upgrade "$ARGV" - ;; - esac -} +# use default for platform_do_upgrade() disable_watchdog() { killall watchdog |