[U-Boot] [PATCH v2 2/4] fastboot: call board_usb_init() to enable usb

Dileep Katta
2015-03-12T21:12:30Z

g_dnl_gadget_register() fails for dra7xx dwc3 gadget when running
cmd_fastboot. Calling board_usb_init() to fix this.
fastboot command is now added with an optional controller index argument
with default value as 0, to facilitate configurable controller index.

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
Signed-off-by: Dileep Katta <dileep.katta@linaro.org>
---
Changes in v2:
- Changed fastboot command to facilitate passing controller index
- Added board_usb_cleanup()
This patch considers the following change by Inha Song, without which
the build will be broken on BeagleBone Black platform
https://patchwork.ozlabs.org/patch/430303/

common/cmd_fastboot.c | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/common/cmd_fastboot.c b/common/cmd_fastboot.c
index 346ab80..9ca4a2f 100644
--- a/common/cmd_fastboot.c
+++ b/common/cmd_fastboot.c
@@ -10,11 +10,19 @@
#include <common.h>
#include <command.h>
#include <g_dnl.h>
+#include <usb.h>

static int do_fastboot(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
{
int ret;
+ int controller_index = 0;

+ if (argc == 2) {
+ char *usb_controller = argv[1];
+ controller_index = simple_strtoul(usb_controller, NULL, 0);
+ }
+
+ board_usb_init(controller_index, USB_INIT_DEVICE);
g_dnl_clear_detach();
ret = g_dnl_register("usb_dnl_fastboot");
if (ret)
@@ -36,12 +44,13 @@ static int do_fastboot(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])

g_dnl_unregister();
g_dnl_clear_detach();
+ board_usb_cleanup(controller_index, USB_INIT_DEVICE);
return CMD_RET_SUCCESS;
}

U_BOOT_CMD(
- fastboot, 1, 0, do_fastboot,
+ fastboot, 2, 0, do_fastboot,
"use USB Fastboot protocol",
- "\n"
- " - run as a fastboot usb device"
+ "[<USB_controller>]\n"
+ " - run as a fastboot usb device via <USB_controller>"
);
--
1.8.3.2