diff --git a/target/linux/mediatek/Makefile b/target/linux/mediatek/Makefile
index fb2951cc9bbc2cab0069def81faea87211da30c3..466fe6dee24b80757f902e8a8bfbb03623382c85 100644
--- a/target/linux/mediatek/Makefile
+++ b/target/linux/mediatek/Makefile
@@ -6,7 +6,7 @@ ARCH:=arm
 BOARD:=mediatek
 BOARDNAME:=MediaTek Ralink ARM
 SUBTARGETS:=mt7622 mt7623 mt7629
-FEATURES:=dt-overlay emmc fpu gpio nand pci pcie separate_ramdisk squashfs usb
+FEATURES:=dt-overlay emmc fpu gpio nand pci pcie rootfs-part separate_ramdisk squashfs usb
 
 KERNEL_PATCHVER:=5.10
 
diff --git a/target/linux/mediatek/image/mt7622.mk b/target/linux/mediatek/image/mt7622.mk
index 3b0afa98dffc888bec325c57fd891817baaf7599..3517748510ab60f7e656d329f5ba919a53ba02f4 100644
--- a/target/linux/mediatek/image/mt7622.mk
+++ b/target/linux/mediatek/image/mt7622.mk
@@ -48,10 +48,10 @@ define Build/mt7622-gpt
 				-N recovery	-r	-p 32M@6M \
 		$(if $(findstring sdmmc,$1), \
 				-N install	-r	-p 7M@38M \
-			-t 0x2e -N production		-p 211M@45M \
+			-t 0x2e -N production		-p $(CONFIG_TARGET_ROOTFS_PARTSIZE)M@45M \
 		) \
 		$(if $(findstring emmc,$1), \
-			-t 0x2e -N production		-p 980M@40M \
+			-t 0x2e -N production		-p $(CONFIG_TARGET_ROOTFS_PARTSIZE)M@40M \
 		)
 	cat $@.tmp >> $@
 	rm $@.tmp
diff --git a/target/linux/mediatek/image/mt7623.mk b/target/linux/mediatek/image/mt7623.mk
index 9a938662c32748c97a6fe52662d56fc2156a0c9e..1d7745f1d699eb61ff01faa47865126c4a75a14c 100644
--- a/target/linux/mediatek/image/mt7623.mk
+++ b/target/linux/mediatek/image/mt7623.mk
@@ -58,10 +58,10 @@ define Build/mt7623-mbr
 			-t 0x41	-N uboot	-p 3584k@320k \
 			-t 0xea	-N recovery	-p 40M@4M \
 		$(if $(findstring sdmmc,$1), \
-			-t 0x2e -N production	-p 208M@48M \
+			-t 0x2e -N production	-p $(CONFIG_TARGET_ROOTFS_PARTSIZE)M@48M \
 		) \
 		$(if $(findstring emmc,$1), \
-			-t 0x2e -N production	-p 976M@48M \
+			-t 0x2e -N production	-p $(CONFIG_TARGET_ROOTFS_PARTSIZE)M@48M \
 		)
 
 	echo -en \