diff options
author | Jonas Gorski <jonas.gorski@gmail.com> | 2016-09-26 12:02:40 +0200 |
---|---|---|
committer | Jonas Gorski <jonas.gorski@gmail.com> | 2016-09-26 13:04:53 +0200 |
commit | 6859098d97aaa4e60a795f5887911958ca134ed0 (patch) | |
tree | 408a95b82c94b1679023a9e6d2d8275b356b50aa /target/linux/mvebu/base-files/lib/upgrade/clearfog.sh | |
parent | c359d7e81bd0f73bd3931abf5d87589a97cc37df (diff) | |
download | master-31e0f0ae-6859098d97aaa4e60a795f5887911958ca134ed0.tar.gz master-31e0f0ae-6859098d97aaa4e60a795f5887911958ca134ed0.tar.bz2 master-31e0f0ae-6859098d97aaa4e60a795f5887911958ca134ed0.zip |
mvebu: add sysupgrade support for clearfog
Add and enable sysupgrade support for clearfog boards, based on how the
brcm2708 target does it.
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
Acked-by: Felix Fietkau <nbd@nbd.name>
Diffstat (limited to 'target/linux/mvebu/base-files/lib/upgrade/clearfog.sh')
-rw-r--r-- | target/linux/mvebu/base-files/lib/upgrade/clearfog.sh | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/target/linux/mvebu/base-files/lib/upgrade/clearfog.sh b/target/linux/mvebu/base-files/lib/upgrade/clearfog.sh new file mode 100644 index 0000000000..5388b22198 --- /dev/null +++ b/target/linux/mvebu/base-files/lib/upgrade/clearfog.sh @@ -0,0 +1,32 @@ +get_magic_at() { + local file="$1" + local pos="$2" + get_image "$file" | dd bs=1 count=2 skip="$pos" 2>/dev/null | hexdump -v -n 2 -e '1/1 "%02x"' +} + +platform_check_image_clearfog() { + local file="$1" + local magic + + magic=$(get_magic_at "$file" 510) + [ "$magic" != "55aa" ] && { + echo "Failed to verify MBR boot signature." + return 1 + } + + return 0; +} + +platform_do_upgrade_clearfog() { + sync + get_image "$1" | dd of=/dev/mmcblk0 bs=2M conv=fsync + sleep 1 +} + +platform_copy_config_clearfog() { + mkdir -p /boot + [ -f /boot/kernel.img ] || mount -t vfat -o rw,noatime /dev/mmcblk0p1 /boot + cp -af "$CONF_TAR" /boot/ + sync + umount /boot +} |