
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>" );