diff --git a/include/configs/khadas-vim3l_android.h b/include/configs/khadas-vim3l_android.h
index b1768e2d821176452254fb07f2e3747402b9b4fd..1efd6ede1632118b565497c079cdcf0818bd1d81 100644
--- a/include/configs/khadas-vim3l_android.h
+++ b/include/configs/khadas-vim3l_android.h
@@ -23,6 +23,8 @@
 	"name=vbmeta_b,size=512K,uuid=${uuid_gpt_vbmeta_b};" \
 	"name=boot_a,size=32M,bootable,uuid=${uuid_gpt_boot_a};" \
 	"name=boot_b,size=32M,bootable,uuid=${uuid_gpt_boot_b};" \
+	"name=vendor_boot_a,size=32M,uuid=${uuid_gpt_vendor_boot_a};" \
+	"name=vendor_boot_b,size=32M,uuid=${uuid_gpt_vendor_boot_b};" \
 	"name=super,size=3072M,uuid=${uuid_gpt_super};" \
 	"name=userdata,size=11282M,uuid=${uuid_gpt_userdata};" \
 	"name=rootfs,size=-,uuid=" ROOT_UUID
@@ -34,8 +36,9 @@
 	"name=dtbo,size=8M,uuid=${uuid_gpt_dtbo};" \
 	"name=vbmeta,size=512K,uuid=${uuid_gpt_vbmeta};" \
 	"name=boot,size=32M,bootable,uuid=${uuid_gpt_boot};" \
+	"name=vendor_boot,size=32M,uuid=${uuid_gpt_vendor_boot};" \
 	"name=recovery,size=32M,uuid=${uuid_gpt_recovery};" \
-	"name=cache,size=256M,uuid=${uuid_gpt_cache};" \
+	"name=cache,size=224M,uuid=${uuid_gpt_cache};" \
 	"name=super,size=1792M,uuid=${uuid_gpt_super};" \
 	"name=userdata,size=12786M,uuid=${uuid_gpt_userdata};" \
 	"name=rootfs,size=-,uuid=" ROOT_UUID
diff --git a/include/configs/meson64_android.h b/include/configs/meson64_android.h
index 1266851196d2398a526954dd1d72ab7b9ef259ea..0c8a55b465eb244415d1747f20be3b379311cb71 100644
--- a/include/configs/meson64_android.h
+++ b/include/configs/meson64_android.h
@@ -236,6 +236,7 @@
 #define BOOTENV_DEV_SYSTEM(devtypeu, devtypel, instance) \
 	"bootcmd_system=" \
 		"echo Loading Android " BOOT_PARTITION " partition...;" \
+		"setenv vloadaddr 0x50080000;" \
 		"mmc dev ${mmcdev};" \
 		"setenv bootargs ${bootargs} androidboot.serialno=${serial#};" \
 		AB_SELECT_SLOT \
@@ -243,11 +244,16 @@
 		AVB_VERIFY_CHECK \
 		"part start mmc ${mmcdev} " BOOT_PARTITION "${slot_suffix} boot_start;" \
 		"part size mmc ${mmcdev} " BOOT_PARTITION "${slot_suffix} boot_size;" \
+		"part start mmc ${mmcdev} vendor_boot${slot_suffix} vendor_boot_start;" \
+		"part size  mmc ${mmcdev} vendor_boot${slot_suffix} vendor_boot_size;" \
 		"if mmc read ${loadaddr} ${boot_start} ${boot_size}; then " \
-			PREPARE_FDT \
-			"setenv bootargs \"${bootargs} " AB_BOOTARGS "\"  ; " \
-			"echo Running Android...;" \
-			BOOT_CMD \
+			"if mmc read $vloadaddr ${vendor_boot_start} ${vendor_boot_size}; then " \
+				"abootimg addr $loadaddr $vloadaddr;"\
+				PREPARE_FDT \
+				"setenv bootargs \"${bootargs} " AB_BOOTARGS "\"  ; " \
+				"echo Running Android...;" \
+				BOOT_CMD \
+			"fi;" \
 		"fi;" \
 		"echo Failed to boot Android...;\0"
 
@@ -300,7 +306,7 @@
 	"scriptaddr=0x08000000\0"                                     \
 	"kernel_addr_r=0x01080000\0"                                  \
 	"pxefile_addr_r=0x01080000\0"                                 \
-	"ramdisk_addr_r=0x13000000\0"                                 \
+	"ramdisk_addr_r=0x30000000\0"                                 \
 	"fdtfile=amlogic/" CONFIG_DEFAULT_DEVICE_TREE ".dtb\0"        \
 	BOOTENV