summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWinter Wang <wente.wang@nxp.com>2016-11-10 13:37:04 +0800
committerWinter Wang <wente.wang@nxp.com>2016-11-15 13:39:50 +0800
commit95afd19ca88891e0ad1661c5994816e5237bf7d5 (patch)
tree4785560186ee57dd78b411083d9e14f770b574cb
parent350529a315a77c1c62fd7e69e9d114281162db80 (diff)
downloadu-boot-imx-95afd19ca88891e0ad1661c5994816e5237bf7d5.zip
u-boot-imx-95afd19ca88891e0ad1661c5994816e5237bf7d5.tar.gz
u-boot-imx-95afd19ca88891e0ad1661c5994816e5237bf7d5.tar.bz2
MA-8984-1 bcb: use partition name instead of part_index
use partition name instead of part_index in rw_block get partition from the ptable loaded by fastboot Signed-off-by: Winter Wang <wente.wang@nxp.com>
-rw-r--r--drivers/usb/gadget/bcb.c25
-rw-r--r--drivers/usb/gadget/f_fastboot.c6
2 files changed, 15 insertions, 16 deletions
diff --git a/drivers/usb/gadget/bcb.c b/drivers/usb/gadget/bcb.c
index f6ccf91..b000a8f 100644
--- a/drivers/usb/gadget/bcb.c
+++ b/drivers/usb/gadget/bcb.c
@@ -10,29 +10,23 @@
#include <linux/types.h>
#include <common.h>
#include <g_dnl.h>
+#include <fsl_fastboot.h>
static unsigned int g_mmc_id;
void set_mmc_id(unsigned int id)
{
g_mmc_id = id;
}
#define ALIGN_BYTES 64 /*armv7 cache line need 64 bytes aligned */
-static ulong get_block_size(char *ifname, int dev, int part)
+static ulong get_block_size(char *ifname, int dev)
{
block_dev_desc_t *dev_desc = NULL;
- disk_partition_t part_info;
dev_desc = get_dev(ifname, dev);
if (dev_desc == NULL) {
printf("Block device %s %d not supported\n", ifname, dev);
return 0;
}
-
- if (get_partition_info(dev_desc, part, &part_info)) {
- printf("Cannot find partition %d\n", part);
- return 0;
- }
-
- return part_info.blksz;
+ return dev_desc->blksz;
}
static int do_write(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
@@ -124,8 +118,7 @@ int rw_block(bool bread, char **ppblock,
if (!bread && (pblock_write == NULL))
return -1;
- blk_size = get_block_size("mmc", g_mmc_id,
- CONFIG_ANDROID_MISC_PARTITION_MMC);
+ blk_size = get_block_size("mmc", g_mmc_id);
if (blk_size == 0) {
printf("rw_block, get_block_size return 0\n");
return -1;
@@ -135,9 +128,15 @@ int rw_block(bool bread, char **ppblock,
blk_end = (offset + size)/blk_size;
block_cnt = 1 + (blk_end - blk_begin);
+ /* get misc part index from gpt table created by fastboot */
+ struct fastboot_ptentry *ptentry = fastboot_flash_find_ptn(FASTBOOT_PARTITION_MISC);
+ if (ptentry == NULL) {
+ printf("rw_block, cannot get the partion info for %s\n",
+ FASTBOOT_PARTITION_MISC);
+ return -1;
+ }
- sprintf(devpart_str, "0x%x:0x%x", g_mmc_id,
- CONFIG_ANDROID_MISC_PARTITION_MMC);
+ sprintf(devpart_str, "0x%x:0x%x", g_mmc_id, ptentry->partition_index);
sprintf(block_begin_str, "0x%x", blk_begin);
sprintf(cnt_str, "0x%x", block_cnt);
diff --git a/drivers/usb/gadget/f_fastboot.c b/drivers/usb/gadget/f_fastboot.c
index f694940..f6694dd 100644
--- a/drivers/usb/gadget/f_fastboot.c
+++ b/drivers/usb/gadget/f_fastboot.c
@@ -1647,14 +1647,14 @@ void fastboot_setup(void)
/*get the fastboot dev*/
_fastboot_setup_dev();
+ /*load partitions information for the fastboot dev*/
+ _fastboot_load_partitions();
+
/*check if we need to setup recovery*/
#ifdef CONFIG_ANDROID_RECOVERY
check_recovery_mode();
#endif
- /*load partitions information for the fastboot dev*/
- _fastboot_load_partitions();
-
parameters_setup();
}