[][Refactor eMMC image of MT7981 fpga]

[Description]
Refactor eMMC image of MT7981 fpga
The whole image format is changed:
 - Kernel and rootfs reside in individual partitions.
 - rootfs_data split from rootfs partition using loop device with offset.
 - Upgrading firmware usig tarball with saving config files supported.
 - No recovery partition needed.
 - No GPT partition offset and size restricted.

Important note:
Please select the following packages to make emmc firmware upgrading work:
e2fsprogs mkf2fs blkid blockdev losetup kmod-fs-ext4 kmod-fs-f2fs

[Release-log]
  N/A

Change-Id: I9b7612b24ff0d6f62d080e709192bb298cb2444a
Reviewed-on: https://gerrit.mediatek.inc/c/openwrt/feeds/mtk_openwrt_feeds/+/5607081
diff --git a/target/linux/mediatek/files-5.4/arch/arm64/boot/dts/mediatek/mt7981-fpga-emmc.dts b/target/linux/mediatek/files-5.4/arch/arm64/boot/dts/mediatek/mt7981-fpga-emmc.dts
index 9bce9f6..6c3a197 100644
--- a/target/linux/mediatek/files-5.4/arch/arm64/boot/dts/mediatek/mt7981-fpga-emmc.dts
+++ b/target/linux/mediatek/files-5.4/arch/arm64/boot/dts/mediatek/mt7981-fpga-emmc.dts
@@ -6,7 +6,7 @@
 	chosen {
 		bootargs = "console=ttyS0,115200n1 loglevel=8  \
 				earlycon=uart8250,mmio32,0x11002000 \
-				root=/dev/mmcblk0p7 rootfstype=squashfs,f2fs";
+				root=PARTLABEL=rootfs rootfstype=squashfs,f2fs";
 	};
 
 	memory {
diff --git a/target/linux/mediatek/files-5.4/arch/arm64/boot/dts/mediatek/mt7981-fpga-sd.dts b/target/linux/mediatek/files-5.4/arch/arm64/boot/dts/mediatek/mt7981-fpga-sd.dts
index 5d1caaa..deca60b 100644
--- a/target/linux/mediatek/files-5.4/arch/arm64/boot/dts/mediatek/mt7981-fpga-sd.dts
+++ b/target/linux/mediatek/files-5.4/arch/arm64/boot/dts/mediatek/mt7981-fpga-sd.dts
@@ -2,11 +2,11 @@
 #include "mt7981-fpga.dtsi"
 / {
 	model = "MediaTek MT7981 FPGA";
-	compatible = "mediatek,mt7981-fpga-emmc";
+	compatible = "mediatek,mt7981-fpga-sd";
 	chosen {
 		bootargs = "console=ttyS0,115200n1 loglevel=8  \
 				earlycon=uart8250,mmio32,0x11002000 \
-				root=/dev/mmcblk0p7 rootfstype=squashfs,f2fs";
+				root=PARTLABEL=rootfs rootfstype=squashfs,f2fs";
 	};
 
 	memory {
diff --git a/target/linux/mediatek/image/mt7981.mk b/target/linux/mediatek/image/mt7981.mk
index 359351d..ce977b7 100755
--- a/target/linux/mediatek/image/mt7981.mk
+++ b/target/linux/mediatek/image/mt7981.mk
@@ -131,9 +131,24 @@
   DEVICE_VENDOR := MediaTek
   DEVICE_MODEL := mt7981-fpga-emmc
   DEVICE_DTS := mt7981-fpga-emmc
+  SUPPORTED_DEVICES := mediatek,mt7981-fpga-emmc
   DEVICE_DTS_DIR := $(DTS_DIR)/mediatek
-  DEVICE_PACKAGES := mkf2fs e2fsprogs kmod-fs-vfat kmod-nls-cp437 kmod-nls-iso8859-1 kmod-mmc
-  IMAGES := sysupgrade-emmc.bin.gz
-  IMAGE/sysupgrade-emmc.bin.gz := sysupgrade-emmc | gzip | append-metadata
+  DEVICE_PACKAGES := mkf2fs e2fsprogs blkid blockdev losetup kmod-fs-ext4 \
+		     kmod-mmc kmod-fs-f2fs kmod-fs-vfat kmod-nls-cp437 \
+		     kmod-nls-iso8859-1
+  IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
 endef
 TARGET_DEVICES += mt7981-fpga-emmc
+
+define Device/mt7981-fpga-sd
+  DEVICE_VENDOR := MediaTek
+  DEVICE_MODEL := mt7981-fpga-sd
+  DEVICE_DTS := mt7981-fpga-sd
+  SUPPORTED_DEVICES := mediatek,mt7981-fpga-sd
+  DEVICE_DTS_DIR := $(DTS_DIR)/mediatek
+  DEVICE_PACKAGES := mkf2fs e2fsprogs blkid blockdev losetup kmod-fs-ext4 \
+		     kmod-mmc kmod-fs-f2fs kmod-fs-vfat kmod-nls-cp437 \
+		     kmod-nls-iso8859-1
+  IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
+endef
+TARGET_DEVICES += mt7981-fpga-sd