diff --git a/drivers/mmc/aml_emmc_partition.c b/drivers/mmc/aml_emmc_partition.c
index 30fe16c..b32fbb6 100644
--- a/drivers/mmc/aml_emmc_partition.c
+++ b/drivers/mmc/aml_emmc_partition.c
@@ -501,7 +501,8 @@
 	apt_info("ept->partitions %p\n", ept->partitions);
 	partition = ept->partitions;
 	apt_info("partition %p\n", partition);
-	for (i=0; i<MAX_PART_COUNT; i++) {
+	int limit  = min(inh->count + dtb->count, (unsigned int)MAX_PART_COUNT);
+	for (i=0; i < limit; i++) {
 		apt_info("i %d, ept->count %d\n", i, ept->count);
 		dst = &partition[ept->count];
 		src = (i < inh->count) ? &inh->partitions[i]:&dtb->partitions[i-inh->count];
@@ -1224,17 +1225,20 @@
 	return 0;
 }
 
-void trans_ept_to_diskpart(struct _iptbl *ept, disk_partition_t *disk_part) {
+void trans_ept_to_diskpart(struct _iptbl *ept, disk_partition_t *disk_part,
+			   u64 mmc_cap)
+{
 	struct partitions *part = ept->partitions;
 	int count = ept->count;
 	int i;
 	for (i = 0; i < count - 1; i++) {
 		disk_part[i].start = part[i + 1].offset >> 9;
-		strcpy((char *)disk_part[i].name, part[i+1].name);
-		strcpy((char *)disk_part[i].type_guid, part[i+1].name);
+		strcpy((char *)disk_part[i].name, part[i + 1].name);
+		strcpy((char *)disk_part[i].type_guid, part[i + 1].name);
 		gen_rand_uuid_str(disk_part[i].uuid, UUID_STR_FORMAT_STD);
 		disk_part[i].bootable = 0;
-		if ( i == (count - 2))
+		if (i == (count - 2) &&
+		    part[i + 1].offset + part[i + 1].size == mmc_cap)
 			disk_part[i].size = (part[i + 1].size - 34 * 512) >> 9;
 		else
 			disk_part[i].size = (part[i + 1].size) >> 9;
@@ -1278,7 +1282,7 @@
 							dev_desc));
 	if (disk_partition == NULL)
 		return -ENOMEM;
-	trans_ept_to_diskpart(p_iptbl_ept, disk_partition);
+	trans_ept_to_diskpart(p_iptbl_ept, disk_partition, mmc->capacity);
 	#if (CONFIG_ZIRCON_BOOT_IMAGE)
 		update_zircon_part_uuid(disk_partition, dcount);
 	#endif
