From: Mathias Kresin Date: Tue, 24 Oct 2017 04:57:29 +0000 (+0200) Subject: mpc85xx: use image metadata X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=605ce5f6cd8098f3813b44a64f8f1ac61cc92470;p=openwrt%2Fstaging%2Fwigyori.git 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 --- 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 diff --git a/target/linux/mpc85xx/image/Makefile b/target/linux/mpc85xx/image/Makefile index f7de3bc5ce..7ae6e27b35 100644 --- a/target/linux/mpc85xx/image/Makefile +++ b/target/linux/mpc85xx/image/Makefile @@ -46,10 +46,11 @@ define Device/tl-wdr4900-v1 TPLINK_HWREV := 1 TPLINK_FLASHLAYOUT := 16Mppc KERNEL_NAME := cuImage.tl-wdr4900-v1 + SUPPORTED_DEVICES:=tl-wdr4900-v1 tplink,tl-wdr4900-v1 IMAGES := fdt.bin factory.bin sysupgrade.bin IMAGE/fdt.bin := append-dtb IMAGE/factory.bin := tplink-v1-image - IMAGE/sysupgrade.bin := tplink-v1-image -s + IMAGE/sysupgrade.bin := tplink-v1-image -s | append-metadata endef TARGET_DEVICES += tl-wdr4900-v1 @@ -63,12 +64,13 @@ define Device/hiveap-330 BLOCKSIZE := 128k KERNEL_NAME := zImage KERNEL_SIZE := 8m + SUPPORTED_DEVICES := aerohive,hiveap-330 IMAGES := fdt.bin sysupgrade.bin IMAGE/fdt.bin := append-dtb IMAGE/sysupgrade.bin := append-dtb | pad-to 256k | check-size 256k | \ append-uImage-fakeramdisk-hdr | pad-to 256k | check-size 512k | \ append-rootfs | pad-rootfs $$(BLOCKSIZE) | pad-to 41216k | check-size 41216k | \ - append-kernel + append-kernel | append-metadata endef TARGET_DEVICES += hiveap-330