diff options
author | ji.luo <ji.luo@nxp.com> | 2017-09-12 16:56:22 +0800 |
---|---|---|
committer | ji.luo <ji.luo@nxp.com> | 2017-11-22 10:35:48 +0800 |
commit | 62199edbd08394e883f29b88e381850705351b7a (patch) | |
tree | a50c718eec08fd24dbeb491f330e5de471e29c5a | |
parent | 31831aa85180f2237f1b95630843c3c6ac64f45c (diff) |
MA-10338-2 Add support for some fastboot getvar command
Add support for fastboot getvar command:
fastboot getvar erase-block-size
fastboot getvar logical-block-size
Change-Id: Id1410d46307e67342e5489a26a96725e1d6a259e
Signed-off-by: ji.luo <ji.luo@nxp.com>
-rwxr-xr-x | drivers/usb/gadget/f_fastboot.c | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/drivers/usb/gadget/f_fastboot.c b/drivers/usb/gadget/f_fastboot.c index a92c5c26dd..c2c13a7c10 100755 --- a/drivers/usb/gadget/f_fastboot.c +++ b/drivers/usb/gadget/f_fastboot.c @@ -62,7 +62,7 @@ #ifdef CONFIG_FASTBOOT_LOCK #include "fastboot_lock_unlock.h" #endif -#define FASTBOOT_VAR_NUM (24 + 2 * (MAX_PTN)) +#define FASTBOOT_VAR_NUM (26 + 2 * (MAX_PTN)) #define FASTBOOT_VAR_YES "yes" #define FASTBOOT_VAR_NO "no" @@ -2159,6 +2159,9 @@ static int get_single_var(char *cmd, char *response) char *str = cmd; size_t chars_left; const char *s; + char string_buffer[12]; + int mmc_no = 0; + struct blk_desc *dev_desc; chars_left = FASTBOOT_RESPONSE_LEN - strlen(response) - 1; @@ -2205,6 +2208,16 @@ static int get_single_var(char *cmd, char *response) sprintf(str_num, "0x%08x", CONFIG_FASTBOOT_BUF_SIZE); strncat(response, str_num, chars_left); + } else if (!strcmp_l1("erase-block-size", cmd)) { + mmc_no = fastboot_devinfo.dev_id; + dev_desc = blk_get_dev("mmc", mmc_no); + sprintf(string_buffer, "0x%08x", dev_desc->blksz); + strncat(response, string_buffer, chars_left); + } else if (!strcmp_l1("logical-block-size", cmd)) { + mmc_no = fastboot_devinfo.dev_id; + dev_desc = blk_get_dev("mmc", mmc_no); + sprintf(string_buffer, "0x%08x", dev_desc->blksz); + strncat(response, string_buffer, chars_left); } else if (!strcmp_l1("serialno", cmd)) { s = get_serial(); if (s) @@ -2307,6 +2320,14 @@ static void cb_getvar(struct usb_ep *ep, struct usb_request *req) get_single_var("max-download-size",response[num]); num++; + strcat(response[num], "INFOerase-block-size:"); + get_single_var("erase-block-size",response[num]); + + num++; + strcat(response[num], "INFOlogical-block-size:"); + get_single_var("logical-block-size",response[num]); + + num++; strcat(response[num], "INFOunlocked:"); get_single_var("unlocked",response[num]); |