platform_do_upgrade() {
- default_do_upgrade "$ARGV"
-}
+ local board=$(board_name)
+ case "$board" in
+ "unielec,u7623"*)
+ #Keep the persisten random mac address (if it exists)
+ mkdir -p /tmp/recovery
+ mount -o rw,noatime /dev/mmcblk0p1 /tmp/recovery
+ [ -f "/tmp/recovery/mac_addr" ] && \
+ mv -f /tmp/recovery/mac_addr /tmp/
+ umount /tmp/recovery
+
+ #1310720 is the offset in bytes from the start of eMMC and to
+ #the location of the kernel (2560 512 byte sectors)
+ get_image "$1" | dd of=/dev/mmcblk0 bs=1310720 seek=1 conv=fsync
+
+ mount -o rw,noatime /dev/mmcblk0p1 /tmp/recovery
+ [ -f "/tmp/mac_addr" ] && mv -f /tmp/mac_addr /tmp/recovery
+ sync
+ umount /tmp/recovery
+ ;;
+ *)
+ default_do_upgrade "$ARGV"
+ ;;
+ esac
+}
PART_NAME=firmware
[ "$#" -gt 1 ] && return 1
case "$board" in
- bananapi,bpi-r2)
+ bananapi,bpi-r2|\
+ "unielec,u7623"*)
[ "$magic" != "27051956" ] && {
echo "Invalid image type."
return 1
esac
return 0
-}
+}
+
+platform_copy_config_emmc() {
+ mkdir -p /recovery
+ mount -o rw,noatime /dev/mmcblk0p1 /recovery
+ cp -af "$CONF_TAR" /recovery/
+ sync
+ umount /recovery
+}
+
+platform_copy_config() {
+ case "$(board_name)" in
+ "unielec,u7623"*)
+ platform_copy_config_emmc
+ ;;
+ esac
+}