summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorji.luo <ji.luo@nxp.com>2017-09-12 16:56:22 +0800
committerji.luo <ji.luo@nxp.com>2017-11-22 10:35:48 +0800
commit62199edbd08394e883f29b88e381850705351b7a (patch)
treea50c718eec08fd24dbeb491f330e5de471e29c5a
parent31831aa85180f2237f1b95630843c3c6ac64f45c (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-xdrivers/usb/gadget/f_fastboot.c23
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]);