From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lukasz Majewski Date: Thu, 11 Dec 2014 10:43:49 +0100 Subject: [U-Boot] [PATCH 2/2] fastboot: add support for continue command In-Reply-To: <1418244184-1356-2-git-send-email-robherring2@gmail.com> References: <1418244184-1356-1-git-send-email-robherring2@gmail.com> <1418244184-1356-2-git-send-email-robherring2@gmail.com> Message-ID: <20141211104349.5df1575e@amdc2363> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Rob, > From: Rob Herring > > The fastboot continue command is defined to exit fastboot and continue > autoboot. This commit implements the continue command and the exiting > of fastboot only. Subsequent u-boot commands can be processed after > exiting fastboot. Autoboot should implement a boot script such as > "fastboot; mmc read <...>; bootm" to fully implement the fastboot > continue function. > > Signed-off-by: Rob Herring > --- > common/cmd_fastboot.c | 4 ++++ > drivers/usb/gadget/f_fastboot.c | 14 ++++++++++++++ > 2 files changed, 18 insertions(+) > > diff --git a/common/cmd_fastboot.c b/common/cmd_fastboot.c > index 909616d..b72f4f3 100644 > --- a/common/cmd_fastboot.c > +++ b/common/cmd_fastboot.c > @@ -15,17 +15,21 @@ static int do_fastboot(cmd_tbl_t *cmdtp, int > flag, int argc, char *const argv[]) { > int ret; > > + g_dnl_clear_detach(); > ret = g_dnl_register("usb_dnl_fastboot"); > if (ret) > return ret; > > while (1) { > + if (g_dnl_detach()) > + break; > if (ctrlc()) > break; > usb_gadget_handle_interrupts(); > } > > g_dnl_unregister(); > + g_dnl_clear_detach(); > return CMD_RET_SUCCESS; > } > > diff --git a/drivers/usb/gadget/f_fastboot.c > b/drivers/usb/gadget/f_fastboot.c index 71b62e5..310175a 100644 > --- a/drivers/usb/gadget/f_fastboot.c > +++ b/drivers/usb/gadget/f_fastboot.c > @@ -480,6 +480,17 @@ static void cb_boot(struct usb_ep *ep, struct > usb_request *req) fastboot_tx_write_str("OKAY"); > } > > +static void do_exit_on_complete(struct usb_ep *ep, struct > usb_request *req) +{ > + g_dnl_trigger_detach(); > +} > + > +static void cb_continue(struct usb_ep *ep, struct usb_request *req) > +{ > + fastboot_func->in_req->complete = do_exit_on_complete; > + fastboot_tx_write_str("OKAY"); > +} > + > #ifdef CONFIG_FASTBOOT_FLASH > static void cb_flash(struct usb_ep *ep, struct usb_request *req) > { > @@ -520,6 +531,9 @@ static const struct cmd_dispatch_info > cmd_dispatch_info[] = { }, { > .cmd = "boot", > .cb = cb_boot, > + }, { > + .cmd = "continue", > + .cb = cb_continue, > }, > #ifdef CONFIG_FASTBOOT_FLASH > { Acked-by: Lukasz Majewski Tested-by: Lukasz Majewski (Test HW: Trats2 board) I will add this patch to u-boot-dfu tree. -- Best regards, Lukasz Majewski Samsung R&D Institute Poland (SRPOL) | Linux Platform Group