mvebu: add support for Turris Omnia
[openwrt/staging/mkresin.git] / target / linux / mvebu / base-files / lib / upgrade / sdcard.sh
1 get_magic_at() {
2 local file="$1"
3 local pos="$2"
4 get_image "$file" | dd bs=1 count=2 skip="$pos" 2>/dev/null | hexdump -v -n 2 -e '1/1 "%02x"'
5 }
6
7 platform_check_image_sdcard() {
8 local file="$1"
9 local magic
10
11 magic=$(get_magic_at "$file" 510)
12 [ "$magic" != "55aa" ] && {
13 echo "Failed to verify MBR boot signature."
14 return 1
15 }
16
17 return 0;
18 }
19
20 platform_do_upgrade_sdcard() {
21 local board=$(board_name)
22
23 sync
24 get_image "$1" | dd of=/dev/mmcblk0 bs=2M conv=fsync
25
26 case "$board" in
27 armada-385-turris-omnia)
28 fw_setenv openwrt_bootargs 'earlyprintk console=ttyS0,115200 root=/dev/mmcblk0p2 rootfstype=auto rootwait'
29 fw_setenv openwrt_mmcload 'setenv bootargs "$openwrt_bootargs cfg80211.freg=$regdomain"; fatload mmc 0 0x01000000 zImage; fatload mmc 0 0x02000000 armada-385-turris-omnia.dtb'
30 fw_setenv factory_mmcload 'setenv bootargs "$bootargs cfg80211.freg=$regdomain"; btrload mmc 0 0x01000000 boot/zImage @; btrload mmc 0 0x02000000 boot/dtb @'
31 fw_setenv mmcboot 'mw 0xf10184a0 0xfd4d4cfa; run openwrt_mmcload || run factory_mmcload; bootz 0x01000000 - 0x02000000'
32 ;;
33 esac
34
35 sleep 1
36 }
37
38 platform_copy_config_sdcard() {
39 mkdir -p /boot
40 [ -f /boot/kernel.img ] || mount -o rw,noatime /dev/mmcblk0p1 /boot
41 cp -af "$CONF_TAR" /boot/
42 sync
43 umount /boot
44 }