summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorYe.Li <B37916@freescale.com>2015-07-09 13:55:39 +0800
committerYe.Li <B37916@freescale.com>2015-07-13 15:11:34 +0800
commit7dc4e15242ee6bcf27513909d1b6b37b2493a3d4 (patch)
tree71c1e667c7cbb5a93522c4d72d71156852016942 /drivers
parent80088504c8151eb7a3d8283bce0ad645eeb636f2 (diff)
downloadu-boot-imx-7dc4e15242ee6bcf27513909d1b6b37b2493a3d4.zip
u-boot-imx-7dc4e15242ee6bcf27513909d1b6b37b2493a3d4.tar.gz
u-boot-imx-7dc4e15242ee6bcf27513909d1b6b37b2493a3d4.tar.bz2
MLK-11228-3 android: Add "data" partition in fastboot
Enable fastboot command "fastboot flash data" Custom may need to update data partition in fastboot mode. This patch enable flash data partition in emmc\sd. Signed-off-by: Zhang Sanshan <b51434@freescale.com> Signed-off-by: Ye.Li <B37916@freescale.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/usb/gadget/f_fastboot.c19
1 files changed, 13 insertions, 6 deletions
diff --git a/drivers/usb/gadget/f_fastboot.c b/drivers/usb/gadget/f_fastboot.c
index e59d038..002704f 100644
--- a/drivers/usb/gadget/f_fastboot.c
+++ b/drivers/usb/gadget/f_fastboot.c
@@ -160,7 +160,8 @@ enum {
PTN_KERNEL_INDEX,
PTN_URAMDISK_INDEX,
PTN_SYSTEM_INDEX,
- PTN_RECOVERY_INDEX
+ PTN_RECOVERY_INDEX,
+ PTN_DATA_INDEX
};
static unsigned int download_bytes_unpadded;
@@ -810,8 +811,10 @@ static void process_flash_sata(const char *cmdbuf, char *response)
#if defined(CONFIG_FASTBOOT_STORAGE_MMC)
static int is_sparse_partition(struct fastboot_ptentry *ptn)
{
- if (ptn && !strncmp(ptn->name,
- FASTBOOT_PARTITION_SYSTEM, strlen(FASTBOOT_PARTITION_SYSTEM))) {
+ if (ptn && (!strncmp(ptn->name,
+ FASTBOOT_PARTITION_SYSTEM, strlen(FASTBOOT_PARTITION_SYSTEM))
+ || !strncmp(ptn->name,
+ FASTBOOT_PARTITION_DATA, strlen(FASTBOOT_PARTITION_DATA)))) {
printf("support sparse flash partition for %s\n", ptn->name);
return 1;
} else
@@ -1128,7 +1131,7 @@ static int _fastboot_parts_load_from_ptable(void)
struct mmc *mmc;
block_dev_desc_t *dev_desc;
- struct fastboot_ptentry ptable[PTN_RECOVERY_INDEX + 1];
+ struct fastboot_ptentry ptable[PTN_DATA_INDEX + 1];
/* sata case in env */
if (fastboot_devinfo.type == DEV_SATA) {
@@ -1175,7 +1178,7 @@ static int _fastboot_parts_load_from_ptable(void)
}
memset((char *)ptable, 0,
- sizeof(struct fastboot_ptentry) * (PTN_RECOVERY_INDEX + 1));
+ sizeof(struct fastboot_ptentry) * (PTN_DATA_INDEX + 1));
/* MBR */
strcpy(ptable[PTN_MBR_INDEX].name, "mbr");
ptable[PTN_MBR_INDEX].start = ANDROID_MBR_OFFSET / dev_desc->blksz;
@@ -1201,8 +1204,12 @@ static int _fastboot_parts_load_from_ptable(void)
CONFIG_ANDROID_SYSTEM_PARTITION_MMC,
user_partition,
FASTBOOT_PARTITION_SYSTEM, dev_desc, ptable);
+ _fastboot_parts_add_ptable_entry(PTN_DATA_INDEX,
+ CONFIG_ANDROID_DATA_PARTITION_MMC,
+ user_partition,
+ FASTBOOT_PARTITION_DATA, dev_desc, ptable);
- for (i = 0; i <= PTN_RECOVERY_INDEX; i++)
+ for (i = 0; i <= PTN_DATA_INDEX; i++)
fastboot_flash_add_ptn(&ptable[i]);
return 0;