12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- #
- # Copyright (C) 2011 OpenWrt.org
- #
- . /lib/mpc85xx.sh
- PART_NAME=firmware
- RAMFS_COPY_DATA=/lib/mpc85xx.sh
- 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"'
- }
- platform_check_image() {
- local board=$(mpc85xx_board_name)
- local magic="$(get_magic_long "$1")"
- [ "$#" -gt 1 ] && return 1
- case $board in
- 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
- }
- platform_do_upgrade() {
- local board=$(mpc85xx_board_name)
- case "$board" in
- *)
- default_do_upgrade "$ARGV"
- ;;
- esac
- }
- disable_watchdog() {
- killall watchdog
- ( ps | grep -v 'grep' | grep '/dev/watchdog' ) && {
- echo 'Could not disable watchdog'
- return 1
- }
- }
- append sysupgrade_pre_upgrade disable_watchdog
|