aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/mvebu/base-files/lib/preinit/82_uDPU
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/mvebu/base-files/lib/preinit/82_uDPU')
-rw-r--r--target/linux/mvebu/base-files/lib/preinit/82_uDPU48
1 files changed, 48 insertions, 0 deletions
diff --git a/target/linux/mvebu/base-files/lib/preinit/82_uDPU b/target/linux/mvebu/base-files/lib/preinit/82_uDPU
new file mode 100644
index 0000000000..937a0a5f21
--- /dev/null
+++ b/target/linux/mvebu/base-files/lib/preinit/82_uDPU
@@ -0,0 +1,48 @@
+#
+# Copyright (C) 2014-2019 OpenWrt.org
+# Copyright (C) 2016 LEDE-Project.org
+#
+
+preinit_mount_udpu() {
+
+ . /lib/functions.sh
+
+ case $(board_name) in
+ methode,udpu)
+ # Check which device is detected
+ [ -b "/dev/mmcblk0" ] && mmcdev="/dev/mmcblk0" || mmcdev="/dev/mmcblk1"
+
+ if [ -b "${mmcdev}p4" ]; then
+ mkdir /misc
+ mount -t f2fs ${mmcdev}p4 /misc
+ [ -f "/misc/sysupgrade.tgz" ] && {
+ echo "- Restoring configuration files -"
+ tar xzf /misc/sysupgrade.tgz -C /
+ rm -f /misc/sysupgrade.tgz
+ sync
+ }
+ [ -f "/misc/firmware/recovery.itb" ] && {
+ echo "- Updating /recovery partition -"
+ mkfs.ext4 -q ${mmcdev}p2 | echo y &> /dev/null
+ mkdir -p /tmp/recovery
+ mount ${mmcdev}p2 /tmp/recovery
+ cp /misc/firmware/recovery.itb /tmp/recovery
+ [ -f "/misc/firmware/boot.scr" ] && \
+ cp /misc/firmware/boot.scr /tmp/recovery
+ sync
+ umount /tmp/recovery
+ rm -rf /tmp/recovery
+
+ # Replace previous backup with the new one
+ [ -d "/misc/firmware_old" ] && rm -rf /misc/firmware_old
+ [ -d "/misc/firmware" ] && mv /misc/firmware /misc/firmware_old
+ }
+ fi
+
+ # Legacy support - if rootfs was booted, instruct u-boot to keep the current root dev
+ [ "$(df | grep /dev/root)" ] && fw_setenv root_ok '2'
+ ;;
+ esac
+}
+
+boot_hook_add preinit_main preinit_mount_udpu