ar71xx: sysupgrade for My Net Wi-Fi Range Extender

This patch enables the convenient sysupgrade feature for
WD's Wi-Fi Range Extender.

Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
Patchwork: http://patchwork.openwrt.org/patch/4341/
[juhosg:
  - rename 'mynet_rext_check_image' function to 'cybertan_check_image'
    and move that into platform.sh,
  - remove the the model specific 'platform_do_upgrade_mynet_rext' function,
  - drop the mynet-rext.sh script,
  - remove the image/Makefile change,
  - update commit message]
[christian:
  - check all 8 bytes of the firmware/device magic]
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

SVN-Revision: 38966
lede-17.01
Gabor Juhos 2013-11-30 18:31:03 +00:00
parent 3674062469
commit 1fa75d430a
2 changed files with 30 additions and 0 deletions

View File

@ -53,6 +53,15 @@ wndr3700_board_detect() {
AR71XX_MODEL="$machine" AR71XX_MODEL="$machine"
} }
cybertan_get_hw_magic() {
local part
part=$(find_mtd_part firmware)
[ -z "$part" ] && return 1
dd bs=8 count=1 skip=0 if=$part 2>/dev/null | hexdump -v -n 8 -e '1/1 "%02x"'
}
tplink_get_hwid() { tplink_get_hwid() {
local part local part

View File

@ -73,6 +73,22 @@ seama_get_type_magic() {
get_image "$@" | dd bs=1 count=4 skip=53 2>/dev/null | hexdump -v -n 4 -e '1/1 "%02x"' get_image "$@" | dd bs=1 count=4 skip=53 2>/dev/null | hexdump -v -n 4 -e '1/1 "%02x"'
} }
cybertan_get_image_magic() {
get_image "$@" | dd bs=8 count=1 skip=0 2>/dev/null | hexdump -v -n 8 -e '1/1 "%02x"'
}
cybertan_check_image() {
local magic="$(cybertan_get_image_magic "$1")"
local fw_magic="$(cybertan_get_hw_magic)"
[ "$fw_magic" != "$magic" ] && {
echo "Invalid image, ID mismatch, got:$magic, but need:$fw_magic"
return 1
}
return 0
}
platform_check_image() { platform_check_image() {
local board=$(ar71xx_board_name) local board=$(ar71xx_board_name)
local magic="$(get_magic_word "$1")" local magic="$(get_magic_word "$1")"
@ -155,6 +171,11 @@ platform_check_image() {
dir825b_check_image "$1" && return 0 dir825b_check_image "$1" && return 0
;; ;;
mynet-rext)
cybertan_check_image "$1" && return 0
return 1
;;
mynet-n600) mynet-n600)
[ "$magic_long" != "5ea3a417" ] && { [ "$magic_long" != "5ea3a417" ] && {
echo "Invalid image, bad magic: $magic_long" echo "Invalid image, bad magic: $magic_long"