imx: add Gateworks Venice support
[openwrt/openwrt.git] / target / linux / imx / cortexa53 / base-files / lib / upgrade / platform.sh
diff --git a/target/linux/imx/cortexa53/base-files/lib/upgrade/platform.sh b/target/linux/imx/cortexa53/base-files/lib/upgrade/platform.sh
new file mode 100755 (executable)
index 0000000..c59a694
--- /dev/null
@@ -0,0 +1,53 @@
+
+enable_image_metadata_check() {
+       case "$(board_name)" in
+       gw,imx8m*)
+               REQUIRE_IMAGE_METADATA=1
+               ;;
+       esac
+}
+enable_image_metadata_check
+
+platform_check_image() {
+       local board=$(board_name)
+
+       case "$board" in
+       gw,imx8m*)
+               return 0
+               ;;
+       esac
+
+       echo "Sysupgrade is not yet supported on $board."
+       return 1
+}
+
+platform_do_upgrade() {
+       local board=$(board_name)
+
+       case "$board" in
+       gw,imx8m*)
+               export_bootdevice && export_partdevice diskdev 0 || {
+                       echo "Unable to find root device."
+                       return 1
+               }
+               v "Updating /dev/$diskdev..."
+               get_image "$@" | dd of="/dev/$diskdev" bs=4096 conv=fsync
+               ;;
+       esac
+}
+
+platform_copy_config() {
+       local board=$(board_name)
+       local partdev
+
+       case "$board" in
+       gw,imx8m*)
+               export_partdevice partdev 1 && {
+                       v "Storing $UPGRADE_BACKUP on /dev/$partdev..."
+                       mount -o rw,noatime "/dev/$partdev" /mnt
+                       cp -af "$UPGRADE_BACKUP" "/mnt/$BACKUP_FILE"
+                       umount /mnt
+               }
+               ;;
+       esac
+}