[rdkb][common][emmc][Add emmc overlayfs support]

[Description]
Add emmc overlayfs support

[Release-log]

diff --git a/recipes-devtools/initrd/files/init_readonlyfs-emmc.sh b/recipes-devtools/initrd/files/init_readonlyfs-emmc.sh
new file mode 100644
index 0000000..8b08dc0
--- /dev/null
+++ b/recipes-devtools/initrd/files/init_readonlyfs-emmc.sh
@@ -0,0 +1,64 @@
+#!/bin/sh
+set +e
+
+export PATH=/sbin:/bin:/usr/sbin:/usr/bin
+MOUNT="/bin/mount"
+UMOUNT="/bin/umount"
+INIT="/lib/systemd/systemd"
+
+ROOTDEV_OVERLAY_ALIGN=$((64*1024))
+
+
+
+$MOUNT -o remount,rw /
+
+mkdir -p /proc
+mkdir -p /sys
+mkdir -p /rdklogs
+
+$MOUNT -t proc proc -o rw,nosuid,nodev,noexec,noatime /proc
+$MOUNT -t sysfs sysfs -o rw,nosuid,nodev,noexec,noatime /sys
+$MOUNT -n -t tmpfs tmpfs -o rw,nosuid,nodev,noexec,noatime /rdklogs
+
+
+[ -z "$CONSOLE" ] && CONSOLE="/dev/console"
+mkdir -p /mnt
+
+rootfs_size=$(df | grep /dev/root |  awk '{print $2}')
+root_dev=$(blkid -t "PARTLABEL=rootfs" -o device)
+loop_dev="$(losetup -f)"
+
+rootfs_length=$(($rootfs_size*1024))
+
+rootfs_data_offset=$(((rootfs_length+ROOTDEV_OVERLAY_ALIGN-1)&~(ROOTDEV_OVERLAY_ALIGN-1)))
+
+losetup -o $rootfs_data_offset $loop_dev $root_dev
+
+mkfs.f2fs -q -l rootfs_data $loop_dev
+
+$MOUNT -n -t f2fs $loop_dev -o rw,noatime /overlay
+
+if [ -f "/overlay/upper/reset-default" ]; then
+	echo "Proceed with reset to default"
+	$UMOUNT /overlay
+	mkfs.f2fs -q -f -l rootfs_data $loop_dev
+	$MOUNT -n -t f2fs $loop_dev -o rw,noatime /overlay
+fi
+
+[ ! -d  "/overlay/upper" ] && mkdir /overlay/upper
+[ ! -d  "/overlay/work" ] && mkdir /overlay/work
+
+$MOUNT -n  -t overlay overlayfs:/overlay -o rw,noatime,lowerdir=/,upperdir=/overlay/upper,workdir=/overlay/work /mnt
+$MOUNT -n /proc -o noatime --move /mnt/proc  
+pivot_root /mnt /mnt/rom
+
+
+$MOUNT -n /rom/sys -o noatime --move /sys
+$MOUNT -n /rom/dev -o noatime --move /dev
+$MOUNT -n /rom/rdklogs -o noatime --move /rdklogs
+$MOUNT -n /rom/overlay -o noatime --move /overlay
+
+
+
+
+exec $INIT
diff --git a/recipes-devtools/initrd/systemd_%.bbappend b/recipes-devtools/initrd/systemd_%.bbappend
index 607d3d9..5ec9aec 100644
--- a/recipes-devtools/initrd/systemd_%.bbappend
+++ b/recipes-devtools/initrd/systemd_%.bbappend
@@ -1,5 +1,6 @@
 FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
 SRC_URI_append = " file://init_readonlyfs.sh \
+                   file://init_readonlyfs-emmc.sh \
                  "
 FILES_${PN} += " /overlay \
                /rom \"
@@ -8,7 +9,11 @@
        if ${@bb.utils.contains('DISTRO_FEATURES','kernel_in_ubi','true','false',d)}; then
        install -d ${D}/overlay
        install -d ${D}/rom
-       install -m 0755 ${WORKDIR}/init_readonlyfs.sh ${D}${rootlibexecdir}/init_readonlyfs.sh
+       if ${@bb.utils.contains('DISTRO_FEATURES','emmc','true','false',d)}; then
+              install -m 0755 ${WORKDIR}/init_readonlyfs-emmc.sh ${D}${rootlibexecdir}/init_readonlyfs.sh
+       else
+              install -m 0755 ${WORKDIR}/init_readonlyfs.sh ${D}${rootlibexecdir}/init_readonlyfs.sh
+       fi
        [ -e ${D}/sbin/init ] && rm -rf ${D}/sbin/init
        ln -s ${rootlibexecdir}/init_readonlyfs.sh ${D}/sbin/init
        fi